{ "info": { "author": "romanjoffee", "author_email": "roman.jugai@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "|build-status| |coverage-status| |pypi-reference| |pypi-downloads|\n\nSageCreator\n===========\n\n| SageCreator is a package meant to simplify cluster setup for Machine Learning in AWS.\n| It does all the heavy lifting to get cluster up and running in a matter of minutes on any of the AWS instance type(s).\n| It uses **spot instances** by default which can significantly reduce total cost of running the cluster.\n| If spot instances are not available or the specified spot instance price is too low, it falls back to **on-demand** instances.\n|\n| You can access **Jupyter notebook** that can run your code against provisioned server(s). See `Jupyter access`_ for more info.\n\nInstallation\n------------\n\nInstall and update using `pip`_:\n\n.. code-block:: text\n\n $ pip install sagecreator\n\nPython 3 is required and it is highly recommended to install and run the package in `virtualenv`_.\nSupported in Python >= 3.5.0.\n\n.. _pip: https://pip.pypa.io/en/stable/quickstart/\n\n.. _virtualenv: https://virtualenv.pypa.io/en/stable/\n\n\nPrerequisites\n-------------\n\n**AWS Account**\n\nTo provision the cluster you need an `AWS Account`_ and an IAM user with:\n\n- Access Key ID\n- Secret Access Key\n\nUser should either be in **Administrators** group as described in `IAM user`_ tutorial, or create a `custom IAM policy`_\n\nExecution\n---------\n\nAfter the installation, configure the tool by specifying configuration parameters:\n\n.. code-block:: text\n\n $ sage configure\n Access key id: \n Secret access key: \n Company: \n Owner: \n Key pair name: (Optional - if NOT provided it will be created with a new private key)\n Private key file: (required only if Key pair name was provided)\n\n| **Company**, **Owner**, **Service** are required - those are used as tags for each instance in the cluster.\n| **Key pair name**, **Private key file** are optional - if provided, given 'key pair name' / 'private key file' will be used to provision the cluster.\n\n---------\n\n| Provision the cluster.\n| Provision step can take up to 20 minutes depending on the network connection, cluster size, and instance type.\n\n.. code-block:: text\n\n $ sage provision\n Service: \n Instance type [t3.small]: (Optional, defaults to t3.small)\n Spot instance price [0.1]: (Optional, defaults to $0.1 per instance)\n Cluster size [1]: (Optional, defaults to 1 node)\n\n.. image:: https://s3.amazonaws.com/romanjoffee/github/sagecreator/provision1080.gif\n\n| **Important**:\n| The tool provides NO guarantee that the instance(s) will be provisioned at specified **Spot instance price**.\n| If specified price is lower than the current AWS spot instance price then **On-demand** instance(s) will be provisioned instead.\n| Thus, it is up to the user to ensure that specified price is high enough for the request to be fulfilled.\n\n---------\n\n| Display path of the cluster configuration file.\n| Though not necessary it is possible to manually edit that file with customizations prior to running **provision** step.\n\n.. code-block:: text\n\n $ sage pwd\n\n---------\n\n| Terminate cluster. This operation terminates all cluster nodes matching tags tuple of **Company**, **Owner**, **Service**.\n\n.. code-block:: text\n\n $ sage terminate\n Service: \n\n.. _Jupyter access:\n\nJupyter access\n--------------\n\n| Once provisioning step is done and the cluster is up you can access jupyter notebook in your browser at http://localhost:9000.\n| We have provided a sample notebook to execute. It trains the model on Fashion MNIST dataset using CNN in Keras.\n\nUnder the hood\n--------------\n\n| The logic that orchestrates the cluster is written in `Ansible`_\n\n.. _custom IAM policy:\n\nCustom IAM policy\n-----------------\n\nAlternatively, instead of assigning user to **Administrators** group which has access to all AWS services (as described in `IAM user`_), you can create separate Group named **Provisioners** with more restrictive policy:\n\n.. code-block:: text\n\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": \"ec2:*\",\n \"Effect\": \"Allow\",\n \"Resource\": \"*\"\n },\n {\n \"Action\": \"rds:*\",\n \"Effect\": \"Allow\",\n \"Resource\": \"*\"\n },\n {\n \"Action\": \"route53:*\",\n \"Effect\": \"Allow\",\n \"Resource\": \"*\"\n }\n ]\n }\n\nThen assign the user to the **Provisioners** group which has access to a subset of AWS services that are sufficient to orchestrate the cluster.\n\n\nSSH access\n----------\n\n| If **Key pair name** / **Private key file** were NOT provided when configuring the cluster then default key pair is created and a new private key is stored locally.\n| In order to ``ssh`` into the servers point ``ssh`` to the correct (private key) file:\n\n.. code-block:: text\n\n $ ssh -i ubuntu@\n\nwhere *path to private key file* is ``../venv/lib/python3.X/site-packages/sagebase/.ssh/pkey.pem``\n\n\n.. |build-status| image:: https://travis-ci.com/romanjoffee/sagecreator.svg?branch=master\n :target: https://travis-ci.com/romanjoffee/sagecreator\n\n.. |coverage-status| image:: https://codecov.io/gh/romanjoffee/sagecreator/branch/master/graphs/badge.svg\n :target: https://codecov.io/gh/romanjoffee/sagecreator/branch/master\n\n.. |pypi-reference| image:: https://badge.fury.io/py/sagecreator.svg\n :target: https://badge.fury.io/py/sagecreator\n\n.. |pypi-downloads| image:: https://pepy.tech/badge/sagecreator\n :target: https://pepy.tech/project/sagecreator\n\n.. _`AWS Account`: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#sign-up-for-aws\n\n.. _`IAM User`: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html#create-an-iam-user\n\n.. _`Ansible`: https://www.ansible.com\n\n\n", "description_content_type": "text/x-rst; charset=UTF-8", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/romanjoffee/sagecreator", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "sagecreator", "package_url": "https://pypi.org/project/sagecreator/", "platform": "", "project_url": "https://pypi.org/project/sagecreator/", "project_urls": { "Homepage": "https://github.com/romanjoffee/sagecreator" }, "release_url": "https://pypi.org/project/sagecreator/0.1.1.6/", "requires_dist": [ "ansible (==2.7.8)", "boto (==2.49.0)", "boto3 (==1.9.82)", "botocore (==1.12.82)", "click (==7.0)", "pyyaml (==5.1)" ], "requires_python": "", "summary": "Package to orchestrate architecture in AWS", "version": "0.1.1.6" }, "last_serial": 5226003, "releases": { "0.0.31": [ { "comment_text": "", "digests": { "md5": "4e6a5c3078921691417f757a046aac83", "sha256": "de2289c7a4fb14d12299fdc1ba78ffd756ae6e6c47d5567c78a274fcc9ae6b2f" }, "downloads": -1, "filename": "sagecreator-0.0.31-py3-none-any.whl", "has_sig": false, "md5_digest": "4e6a5c3078921691417f757a046aac83", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 52440, "upload_time": "2019-02-22T13:40:39", "url": "https://files.pythonhosted.org/packages/3d/eb/a696ede152d73b4f64bb9c7eea1b962e986da40b7d900a28a049e228c24b/sagecreator-0.0.31-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ba1cd40b3a6870c3cf1a954fdd3e3fd", "sha256": "fb522aad3b7392d5ac620128d38cf83ad88c88ba962c6b49fe1eb7c107fee10c" }, "downloads": -1, "filename": "sagecreator-0.0.31.tar.gz", "has_sig": false, "md5_digest": "2ba1cd40b3a6870c3cf1a954fdd3e3fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42237, "upload_time": "2019-02-22T13:40:41", "url": "https://files.pythonhosted.org/packages/76/3e/3f9d16cbfd9658b87c08a70aae1cfe86601dad17a08bd67d1ab6a9cb3584/sagecreator-0.0.31.tar.gz" } ], "0.0.32": [ { "comment_text": "", "digests": { "md5": "caf39e30acbeac9ed9a53edf2d09b942", "sha256": "53b6822d4c784d724b1a7e27973e037fdb0ab13ede9756d9d977fa05c51a4797" }, "downloads": -1, "filename": "sagecreator-0.0.32-py3-none-any.whl", "has_sig": false, "md5_digest": "caf39e30acbeac9ed9a53edf2d09b942", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54942, "upload_time": "2019-02-28T23:37:02", "url": "https://files.pythonhosted.org/packages/87/73/5f9a5c188741f3e204474a04f204c8e5298b96e67bc89c3236493cfca995/sagecreator-0.0.32-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6875d6a7355abfd886a80aa686891a66", "sha256": "524088a2acacbc70aedeffb36d3c775a175f5e917597d16a2ecc19411a3e9cbb" }, "downloads": -1, "filename": "sagecreator-0.0.32.tar.gz", "has_sig": false, "md5_digest": "6875d6a7355abfd886a80aa686891a66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45521, "upload_time": "2019-02-28T23:37:04", "url": "https://files.pythonhosted.org/packages/50/06/46696002b5e626ada22afca020e831954bc57b0a56373d30b178a3f96d00/sagecreator-0.0.32.tar.gz" } ], "0.0.33": [ { "comment_text": "", "digests": { "md5": "72a516437d9fce5fa157dc17546f02cd", "sha256": "e7cebfe93024e65ea0c84cfcdcf6d79806a5749317fd0af4c902119411cd37b3" }, "downloads": -1, "filename": "sagecreator-0.0.33-py3-none-any.whl", "has_sig": false, "md5_digest": "72a516437d9fce5fa157dc17546f02cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 55114, "upload_time": "2019-03-01T00:06:21", "url": "https://files.pythonhosted.org/packages/61/43/61cc502156af94c42982271fe2b1607bc784d0c5ce068ddb341c52ed38aa/sagecreator-0.0.33-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "30d8ca8a41be3926bbde24f92c988875", "sha256": "42274fad1d6c3f6dab352d37b0379f1f7e26e204fc81a804f162ee9f7cadd148" }, "downloads": -1, "filename": "sagecreator-0.0.33.tar.gz", "has_sig": false, "md5_digest": "30d8ca8a41be3926bbde24f92c988875", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45700, "upload_time": "2019-03-01T00:06:23", "url": "https://files.pythonhosted.org/packages/66/15/8b4776a459a9d5744b551d7bf0349357839ef597c64e268012b206713a84/sagecreator-0.0.33.tar.gz" } ], "0.0.34": [ { "comment_text": "", "digests": { "md5": "27dc4940f985abf9e1e701a1f34d6cea", "sha256": "a7250ddd5b8fcf01577967775feb1dd0a9502548517cfafd77d658471e4439c9" }, "downloads": -1, "filename": "sagecreator-0.0.34-py3-none-any.whl", "has_sig": false, "md5_digest": "27dc4940f985abf9e1e701a1f34d6cea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 55284, "upload_time": "2019-03-08T15:48:57", "url": "https://files.pythonhosted.org/packages/09/12/bb56b5ae9961f440737e4cc89c13d104b43ff07dcc9356374d3d9513d84a/sagecreator-0.0.34-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0662f80b5431d4e603a9ef01fb332744", "sha256": "e91d5496489e1c189eac89ad418a6dc4f668e1d978513c87a9ce9e9cbfd32c4e" }, "downloads": -1, "filename": "sagecreator-0.0.34.tar.gz", "has_sig": false, "md5_digest": "0662f80b5431d4e603a9ef01fb332744", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45924, "upload_time": "2019-03-08T15:48:59", "url": "https://files.pythonhosted.org/packages/f8/66/dc9e15cfb6c9f020b7cfc0f1413aec7965941f10893a5d0e85cc4a8d4c6b/sagecreator-0.0.34.tar.gz" } ], "0.0.35": [ { "comment_text": "", "digests": { "md5": "7c3213a477df00426a60520d9b704009", "sha256": "5c42eacfd02a6d5d9cf509e44a0f7ae813cb3f1797f4f3ffd8d47c2debe56640" }, "downloads": -1, "filename": "sagecreator-0.0.35-py3-none-any.whl", "has_sig": false, "md5_digest": "7c3213a477df00426a60520d9b704009", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 55587, "upload_time": "2019-03-08T16:37:07", "url": "https://files.pythonhosted.org/packages/8d/95/6e9b8082dceb69e0fb978646c2b61e4f8da718f08b2200c2111d1a274039/sagecreator-0.0.35-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "831ea02f01c4ddc16054b33de72a1d5b", "sha256": "59dd732b609dc7eafe29a8b81cbe493d8f65dfbf7cc913f6d96d5b7b3d7d4dd7" }, "downloads": -1, "filename": "sagecreator-0.0.35.tar.gz", "has_sig": false, "md5_digest": "831ea02f01c4ddc16054b33de72a1d5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46537, "upload_time": "2019-03-08T16:37:09", "url": "https://files.pythonhosted.org/packages/1e/80/24c7d638c6c20031468b2154e4e6cfc92924ae725e26a02ab5a315e26312/sagecreator-0.0.35.tar.gz" } ], "0.0.36": [ { "comment_text": "", "digests": { "md5": "6141ff58150daa7e816f2eb43e57e4b4", "sha256": "845ecacf0593a5ac8053d2325b20ceacf24ba063bebbb44a0491d289b353658f" }, "downloads": -1, "filename": "sagecreator-0.0.36-py3-none-any.whl", "has_sig": false, "md5_digest": "6141ff58150daa7e816f2eb43e57e4b4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 55937, "upload_time": "2019-03-13T00:40:06", "url": "https://files.pythonhosted.org/packages/a3/51/d16e56e77edebd64ca6f1e945e864eb060edddee85f489215760c8a56cbb/sagecreator-0.0.36-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb08fa3f0181aaaa83775f53a24d9557", "sha256": "12e8042994999e0f3068fcac0da8d96d8c85de543aa7b8c39ee5c02fde9b381e" }, "downloads": -1, "filename": "sagecreator-0.0.36.tar.gz", "has_sig": false, "md5_digest": "fb08fa3f0181aaaa83775f53a24d9557", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47094, "upload_time": "2019-03-13T00:40:08", "url": "https://files.pythonhosted.org/packages/ce/79/363757851fc1c9ac3b86a35c03bce07d0a2c6f170116ca8abab9822e88ff/sagecreator-0.0.36.tar.gz" } ], "0.0.37": [ { "comment_text": "", "digests": { "md5": "a4824b075121f74a2cdbab811fb52ebc", "sha256": "0ba500c0bf1e71f13dcb33fa2a3e824b41ed53c4966457cf545a7af935293639" }, "downloads": -1, "filename": "sagecreator-0.0.37-py3-none-any.whl", "has_sig": false, "md5_digest": "a4824b075121f74a2cdbab811fb52ebc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 55487, "upload_time": "2019-03-14T16:33:34", "url": "https://files.pythonhosted.org/packages/b3/5a/8ae9c8054bc52f93029ad8d126398a332e7a8d12ba9dc28d94e1c971396b/sagecreator-0.0.37-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b44aeeb3c7d7f34f407e73c0e0123cc", "sha256": "131c24d81b4004c0a0cd76e45ad208d265155d8c8836bd9c516eca4e188a6d48" }, "downloads": -1, "filename": "sagecreator-0.0.37.tar.gz", "has_sig": false, "md5_digest": "6b44aeeb3c7d7f34f407e73c0e0123cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47593, "upload_time": "2019-03-14T16:33:36", "url": "https://files.pythonhosted.org/packages/5b/8f/a9a81a4f02967c6ed42dc3628c8f3f8c89581b483401d72322d21bf3d506/sagecreator-0.0.37.tar.gz" } ], "0.0.38": [ { "comment_text": "", "digests": { "md5": "c591c56a37f8bbc9b56df23fe9c0ceca", "sha256": "c8e29ab3ae717504c43d1180c25f18bcd0e06ea0bd90536b1b245cd11dbc26f9" }, "downloads": -1, "filename": "sagecreator-0.0.38-py3-none-any.whl", "has_sig": false, "md5_digest": "c591c56a37f8bbc9b56df23fe9c0ceca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51044, "upload_time": "2019-03-14T17:25:25", "url": "https://files.pythonhosted.org/packages/f2/b9/a1e8d1f4a8a8ffac999cdb187d490f0f45134e7c5892cf66cbb1f951bbf3/sagecreator-0.0.38-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0758c0027b3bfbf83deb3cdf35d40af6", "sha256": "ba6874815ec9fd61818d9225d15b15e93d68aaeb36e53be4a62f37f0797b6fa8" }, "downloads": -1, "filename": "sagecreator-0.0.38.tar.gz", "has_sig": false, "md5_digest": "0758c0027b3bfbf83deb3cdf35d40af6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44036, "upload_time": "2019-03-14T17:25:27", "url": "https://files.pythonhosted.org/packages/60/6f/606b741c391c41097e1995f8ccbb765b72ef59ce88825367684586d46fde/sagecreator-0.0.38.tar.gz" } ], "0.0.39": [ { "comment_text": "", "digests": { "md5": "5e674faa8205f61483a2f817a81e893b", "sha256": "3b4cbc933687524af58bdf1de8340ab4380067f915aa170609c3f6eac4db6c17" }, "downloads": -1, "filename": "sagecreator-0.0.39-py3-none-any.whl", "has_sig": false, "md5_digest": "5e674faa8205f61483a2f817a81e893b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51069, "upload_time": "2019-03-14T18:16:55", "url": "https://files.pythonhosted.org/packages/81/30/a6c1f26e0dac394c0789abd125bc57fd04a4d5ea3fecc946d7310e73a82a/sagecreator-0.0.39-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2baa38fd9eb837412701505514ba05bc", "sha256": "110fe0e89283b7398b5e2cda21075e77fa6370cbfb8b52e9fb7785c11fbd685a" }, "downloads": -1, "filename": "sagecreator-0.0.39.tar.gz", "has_sig": false, "md5_digest": "2baa38fd9eb837412701505514ba05bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44021, "upload_time": "2019-03-14T18:16:57", "url": "https://files.pythonhosted.org/packages/63/c1/77251952b46451da6fa5ba2360c1d34fe0ccad9045942a46ba4784bcf788/sagecreator-0.0.39.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "5ac35eefa2961ca3a50426d673037e81", "sha256": "6a9d1ea06e9c6579c6047581d43148fd129b8f32624c723149a06d383a180563" }, "downloads": -1, "filename": "sagecreator-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5ac35eefa2961ca3a50426d673037e81", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51064, "upload_time": "2019-03-14T18:46:45", "url": "https://files.pythonhosted.org/packages/9c/a6/639a11b629ffc4581e1215fa0ecb520a4e0a1660cc01914b96328d5a6dfc/sagecreator-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "505ca5e8006679d3427ebda21e7014b0", "sha256": "ab135bc28451a85ec12ea21bca9ccf4fb15103502c6e5257478d08d5dbee6059" }, "downloads": -1, "filename": "sagecreator-0.1.1.tar.gz", "has_sig": false, "md5_digest": "505ca5e8006679d3427ebda21e7014b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44058, "upload_time": "2019-03-14T18:46:47", "url": "https://files.pythonhosted.org/packages/85/c3/b9eef0507eb15d986a63a40cc0855ac54f70cdaeb3eedb7e26a123a9e7a7/sagecreator-0.1.1.tar.gz" } ], "0.1.1.2": [ { "comment_text": "", "digests": { "md5": "ebf7772e7d8e6f371874357ab46e6e12", "sha256": "92f341f2ac6898623f1008dbbd08821002b31ccf8819226e9f9eaf12dd03b00d" }, "downloads": -1, "filename": "sagecreator-0.1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ebf7772e7d8e6f371874357ab46e6e12", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51166, "upload_time": "2019-03-19T00:52:37", "url": "https://files.pythonhosted.org/packages/c4/e3/4d40bb56736dd7c5ec1a547747adf8fcad4cc4a193120f383284475296ce/sagecreator-0.1.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "701a5a7c41b6f7a65739b8d6a1a76a9e", "sha256": "e824e5a33e16522020e85e39176eb885eb199605c872145600a9955ac5f25f56" }, "downloads": -1, "filename": "sagecreator-0.1.1.2.tar.gz", "has_sig": false, "md5_digest": "701a5a7c41b6f7a65739b8d6a1a76a9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44227, "upload_time": "2019-03-19T00:52:39", "url": "https://files.pythonhosted.org/packages/55/0e/dcfcc127bd75fa87ab68af1b1287e68fab284049a2aa6d77f3c756092ef8/sagecreator-0.1.1.2.tar.gz" } ], "0.1.1.3": [ { "comment_text": "", "digests": { "md5": "5a5bcc4fdf91de556f6ab47883c0c87f", "sha256": "d1baeafa2672d9813b1a581c461a2e865512f7af25e206037f1df047db2395b4" }, "downloads": -1, "filename": "sagecreator-0.1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5a5bcc4fdf91de556f6ab47883c0c87f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51172, "upload_time": "2019-03-21T17:11:03", "url": "https://files.pythonhosted.org/packages/e8/f2/95fbbd2832b6ef40b7f9773f564c8c0ce07d2d06d1b9c5e94eed78bf187d/sagecreator-0.1.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c4a52c282d62301e997c607ff791a9f", "sha256": "81e973f52a8f90577e574fd3b806b66d2d8e81eabd4a7e476deeee2fc8a39abb" }, "downloads": -1, "filename": "sagecreator-0.1.1.3.tar.gz", "has_sig": false, "md5_digest": "3c4a52c282d62301e997c607ff791a9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44244, "upload_time": "2019-03-21T17:11:05", "url": "https://files.pythonhosted.org/packages/79/e8/0a8f3c95119eb8c1d5c0841ceb82ff0b8ee8b36503971df4fcef7bb5305b/sagecreator-0.1.1.3.tar.gz" } ], "0.1.1.4": [ { "comment_text": "", "digests": { "md5": "78066a82073920505ee6fa05d23da8ed", "sha256": "fa6f0fc18d41fc2359e5f222e23afac6aa8553e73ec630a5f9f7881565857f35" }, "downloads": -1, "filename": "sagecreator-0.1.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "78066a82073920505ee6fa05d23da8ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54685, "upload_time": "2019-05-04T15:30:09", "url": "https://files.pythonhosted.org/packages/e1/b1/901be5c6e0723d216a73caca3ddca6c1d93ba300e9a14b70e0ff54ab020a/sagecreator-0.1.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c34f66ebc2bccf16821d8e42eb9f6974", "sha256": "320f2b37a799b09ecd3a0800a39b6aeb29f00790a8670723ca853496b41352f0" }, "downloads": -1, "filename": "sagecreator-0.1.1.4.tar.gz", "has_sig": false, "md5_digest": "c34f66ebc2bccf16821d8e42eb9f6974", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46539, "upload_time": "2019-05-04T15:30:11", "url": "https://files.pythonhosted.org/packages/a8/c1/4424dd938982ae7e9287b7d4616ebaa47e3dd1f5fc40d3296c69349bc656/sagecreator-0.1.1.4.tar.gz" } ], "0.1.1.5": [ { "comment_text": "", "digests": { "md5": "ce90edce15afd8763a59ce19af08b4f5", "sha256": "19a7d22820e610e0dc873644d1b492fa9e8c709524af6bbee9282a68f68fa02e" }, "downloads": -1, "filename": "sagecreator-0.1.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "ce90edce15afd8763a59ce19af08b4f5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54067, "upload_time": "2019-05-04T15:48:03", "url": "https://files.pythonhosted.org/packages/b8/0f/713f6d3a88bc21c2bc8a06096ad99a4042f00392098c2d1dc06d8c0833ce/sagecreator-0.1.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3473700fbed3811792add2dfbc112eb7", "sha256": "256ded5b9ffc42bc9517fe96797d713a1f74ee86b8091822c008ba658410cade" }, "downloads": -1, "filename": "sagecreator-0.1.1.5.tar.gz", "has_sig": false, "md5_digest": "3473700fbed3811792add2dfbc112eb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46140, "upload_time": "2019-05-04T15:48:04", "url": "https://files.pythonhosted.org/packages/44/3a/45f8e119fab2d0b77cdd294540467cdad75843a3e443e10a0d3b5832e335/sagecreator-0.1.1.5.tar.gz" } ], "0.1.1.6": [ { "comment_text": "", "digests": { "md5": "dfd91543effc743383414f3e1cfd8670", "sha256": "2ff3d60612c2d91116fd722a5d9773639755b25cd1c83197597b708b13f74c73" }, "downloads": -1, "filename": "sagecreator-0.1.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "dfd91543effc743383414f3e1cfd8670", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54066, "upload_time": "2019-05-04T16:18:23", "url": "https://files.pythonhosted.org/packages/39/08/63ca720693f43404f91f042002ab6bf36b63931b1cb0ee5a4c66c5aadecd/sagecreator-0.1.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "93ab4f67beed10298c2c5b3d6c4bc538", "sha256": "6f9133cd4fc37f19f62a4f77bc87513ba364a56549c9cadd873f2ff3e618ba37" }, "downloads": -1, "filename": "sagecreator-0.1.1.6.tar.gz", "has_sig": false, "md5_digest": "93ab4f67beed10298c2c5b3d6c4bc538", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46133, "upload_time": "2019-05-04T16:18:24", "url": "https://files.pythonhosted.org/packages/d0/43/a22809aef1927ed2fb7172cd48d54934609b7dd118971b16f65277e0c6e2/sagecreator-0.1.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dfd91543effc743383414f3e1cfd8670", "sha256": "2ff3d60612c2d91116fd722a5d9773639755b25cd1c83197597b708b13f74c73" }, "downloads": -1, "filename": "sagecreator-0.1.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "dfd91543effc743383414f3e1cfd8670", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54066, "upload_time": "2019-05-04T16:18:23", "url": "https://files.pythonhosted.org/packages/39/08/63ca720693f43404f91f042002ab6bf36b63931b1cb0ee5a4c66c5aadecd/sagecreator-0.1.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "93ab4f67beed10298c2c5b3d6c4bc538", "sha256": "6f9133cd4fc37f19f62a4f77bc87513ba364a56549c9cadd873f2ff3e618ba37" }, "downloads": -1, "filename": "sagecreator-0.1.1.6.tar.gz", "has_sig": false, "md5_digest": "93ab4f67beed10298c2c5b3d6c4bc538", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46133, "upload_time": "2019-05-04T16:18:24", "url": "https://files.pythonhosted.org/packages/d0/43/a22809aef1927ed2fb7172cd48d54934609b7dd118971b16f65277e0c6e2/sagecreator-0.1.1.6.tar.gz" } ] }