{ "info": { "author": "Subhash Bhushan C", "author_email": "subhash@team8solutions.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS/2", "Operating System :: POSIX :: Linux", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "********************************************************\nProtean: The Clean Architecture, MultiPurpose Framework\n********************************************************\n\nProtean helps you build software on architecture stacks that need to survive in the ever changing technology landscape.\n\n.. image:: https://travis-ci.org/proteanhq/protean.svg?branch=master\n :target: https://travis-ci.org/proteanhq/protean\n :alt: Build Status\n.. image:: https://codecov.io/gh/proteanhq/protean/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/proteanhq/protean\n :alt: Coverage\n.. image:: https://pyup.io/repos/github/proteanhq/protean/shield.svg\n :target: https://pyup.io/repos/github/proteanhq/protean/\n :alt: Updates\n\nInstallation\n############\n\n::\n\n pip install protean\n\nDocumentation\n#############\n\nOnline docs are available at: https://protean.readthedocs.io/en/latest/\n\nHow to Contribute\n#################\n\n1. Check for open issues or open a fresh issue to start a discussion\n around a feature idea or a bug.\n2. Fork [the repository](https://github.com/proteanhq/protean) on\n GitHub to start making your changes to the **master** branch (or\n branch off of it).\n3. Write a test which shows that the bug was fixed or that the feature\n works as expected.\n4. Send a pull request and bug the maintainer until it gets merged and\n published. :) Make sure to add yourself to\n [AUTHORS](https://github.com/proteanhq/protean/blob/master/AUTHORS.rst).\n\nOn shoulders of giants...\n#########################\n\nProtean is not built in a vacuum. Principles and philosophies that Protean espouses are contributions from multiple sources, especially the Open Source Community. It not only refers to well-published architectural ideas and design patterns but also heavily draws inspiration from concrete implementations.\n\nSpecifically, Protean is majorly influenced by the venerable Django Framework, and that reflects in many aspects of its underlying constructs and documentation. Thank you, Django, and the Python community, for showing what's possible.\n\n\nRelease History\n===============\n\n0.3.1 (2019-10-15)\n------------------\n\n* Auto Traverse Domain Modules and load elements\n\n0.3 (2019-10-09)\n----------------\n\n* Add a `defaults` method as part of Container objects when assigned defaults in one field based on another\n* Add support for Command Handlers\n* Avoid raising `ValidationError` when loading data from data stores\n* Add support for Elasticsearch as a repository\n* Add support for using Redis as a broker with RQ background workers\n\n0.2 ((2019-09-16)\n-----------------\n\n* New Request Object elements introduced to package information from API/views\n* A base Container class introduced for all Protean data objects for uniformity in behavior\n* Support for specifying Data Type of auto-generated Identities (String, Integer or UUID)\n* Enhancements and fixes for Unit of Work functionality to work well with SQLAlchemy type database plugins\n* Unit of Work transactions now control event publishing and release events to the stream only on a successful commit\n* A Simplified element registration process to the domain\n* Validation bugfixes in Aggregates, Entities and Value Objects\n* Fully functional and configurable logs throughout Protean codebase\n* Test case restructuring for clarity and isolation of configurations\n\n0.1 (2019-07-25)\n----------------\n\n* Full revamp of Protean codebase to adhere to DDD principles\n* Add `Domain` Composition root, with support for the definition of multiple domains in a project\n* Support for Domain Layer elements: Aggregates, Entities, Value Objects, Domain Services, and Domain Events\n* Support for Application Layer elements: Application Services, Data Transfer Objects, Repositories, Subscribers and Serializers\n* Support annotations to register elements with Domain\n* Complete revamping of Repository layer, and introduction of an underlying DAO layer\n* Add Unit of Work capabilities to support ACID transactions\n* Collapse SQLAlchemy and Flask implementations in Protean itself temporarily, until API stabilizes\n* Rename `success` flag on Response to `is_successful`\n* Rename `message` attribute in Response object to `errors` with a uniform structure in all error cases\n\n0.0.11 (2019-04-23)\n-------------------\n\n* Rename Repository abstract methods to be public (Ex. `_create_object` \u2192 `create`)\n* Add `delete_all()` method to Entity to support Repository cleanup\n* Add support for `raw` queries on Entity repositories\n* Remove requirement for explicit Model definitions for Entities\n* Move Model options into Entity `Meta` class\n* Support for `pre_save` and `post_save` entity callbacks\n* Replace `Pagination` with `ResultSet` because it is at Entity and Use Case level\n* Replace `page` and `per_page` with `limit` and `offset`\n* Add Command utility to generate Protean project template\n* Provide command line utilities for `--version` and `test`\n* Bugfix: Handled quotes and escape properly in string values in Dictionary repository\n* Add documentation for Overriding Entity Lifecycle methods\n* Add ability to mark tests as slow and run slow tests in travis\n\n0.0.10 (2019-04-05)\n-------------------\n\n* Support for chained `update` and `delete` methods on Queryset\n* Support for `update_all` method for mass updates on objects\n* Support for `delete_all` method for mass deletion of objects\n* Rename databases configuration key in Config file from ``REPOSITORIES`` to ``DATABASES``\n* Fully expand the Provider class in configuration file, to avoid assuming a Provider class name\n* Split ``Adapter`` class into ``Provider`` and ``Repository``, separating the concern of managing the database connection from performing CRUD operations on Entity data\n* Expose configured databases as ``providers`` global variable\n* Allow fetching new connection on demand of a new repository object via ``get_connection`` in ``providers``\n* Rename ``Lookup`` class to ``BaseLookup``\n* Associate Lookups with Concrete Provider classes\n* Provide option to fully bake a model class in case it needs to be decorated for a specific database, via the ``get_model`` method in concrete Provider class\n* Add support for Entity Namespacing\n* Refactor Repository Factory for better consistency of registry\n\n0.0.9 (2019-03-08)\n------------------\n\n* Minor fixes for issues found while migrating SQLAlchemy plugin to 0.0.8 version\n* `delete` method should query by value of `id_field` instead of hardcoded `id`\n\n0.0.8 (2019-02-27)\n------------------\n\n* Introduction of `find_by()` method for Entities\n* Introduction of `save()` method for Entities\n* Support for Query Operators (>, >=, <, <=)\n* Support for Conjunction Operators (AND, OR) in queries\n* Change Fields to be full-fledged Descriptors to control getting/setting values\n* Introduction of Support for References and Associations (HasOne and HasMany)\n* Remove Pylint from static code analysis and use Flake8\n\n0.0.7 (2019-01-16)\n------------------\n\n* Rename `Repository` to `Adapter`\n* Rename `Schema` to `Model`\n* Enhance Entity class to perform CRUD methods instead of relying on a separate Repo Factory\n\n0.0.6 (2018-12-14)\n------------------\n\n* Repository rewritten from the ground up\n* First base version for overall Protean functionality\n\n0.0.5 (2018-07-21)\n------------------\n\n* Add Context Class\n\n0.0.4 (2018-07-20)\n------------------\n\n* Add UseCase Utility Classes\n* Add Repository Abstract Classes\n\n0.0.3 (2018-07-20)\n------------------\n\n* Add `bleach` as a setup requirement\n* Add GeoPoint and Decimal Data Types to Entities\n\n0.0.2 (2018-07-19)\n------------------\n\n* Entity Base Class\n\n0.0.1 (2018-07-15)\n------------------\n\n* First release on PyPI.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/proteanhq/protean", "keywords": "", "license": "BSD 3-Clause License", "maintainer": "", "maintainer_email": "", "name": "protean", "package_url": "https://pypi.org/project/protean/", "platform": "", "project_url": "https://pypi.org/project/protean/", "project_urls": { "Homepage": "https://github.com/proteanhq/protean" }, "release_url": "https://pypi.org/project/protean/0.3.2/", "requires_dist": [ "click (==7.0)", "cookiecutter (==1.6.0)", "elasticsearch-dsl (==7.0.0)", "flask (==1.0.3)", "inflect (==2.1.0)", "marshmallow (==3.0.0rc8)", "psycopg2 (==2.8.3)", "python-dateutil (==2.8.0)", "rq (==1.1.0)", "sqlalchemy (==1.3.4)", "werkzeug (==0.15.4)" ], "requires_python": "", "summary": "Protean Application Framework", "version": "0.3.2" }, "last_serial": 5992996, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "02eba494d61917dfdd92833030ff8102", "sha256": "fd183c1917fdef03ee910866365cd6f5efb9eaa23247a6bb2ee778d946caed2a" }, "downloads": -1, "filename": "protean-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "02eba494d61917dfdd92833030ff8102", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2936, "upload_time": "2018-07-18T14:22:55", "url": "https://files.pythonhosted.org/packages/53/b9/c9c33338d099b66d9d6d0915523bc180ae5978a5bc339cf06d72fd02ab87/protean-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "366e1ef97128ace8fab582aae6e81038", "sha256": "77555cb3e0381f395f8c382176757fd6a107b9dc35c5f206332e478a2cfc9aba" }, "downloads": -1, "filename": "protean-0.0.1.tar.gz", "has_sig": false, "md5_digest": "366e1ef97128ace8fab582aae6e81038", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10394, "upload_time": "2018-07-18T14:22:57", "url": "https://files.pythonhosted.org/packages/49/3c/e05d2c6bc918965e2c4452abfda10cd4509563e7eefcabc06e0cd71518c1/protean-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "158cc1e0a7adc2d1024f77788cc1f8a5", "sha256": "d99567cc0493f6a66ce474af3a7094af667b1e90fc3789a13ab212aec8c4e5b0" }, "downloads": -1, "filename": "protean-0.0.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "158cc1e0a7adc2d1024f77788cc1f8a5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 59272, "upload_time": "2019-04-06T03:50:12", "url": "https://files.pythonhosted.org/packages/25/f9/41b96d4b092b6236bc9fefbcfcfb3b578113bf2131dbeace165d05c24f84/protean-0.0.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ce557d00bdf20f763db9e1273bee22ce", "sha256": "5816dbbf7d9d844af44cb2bea86838ab3c7373f645476db4b17088795100c057" }, "downloads": -1, "filename": "protean-0.0.10.tar.gz", "has_sig": false, "md5_digest": "ce557d00bdf20f763db9e1273bee22ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 188360, "upload_time": "2019-04-06T03:50:15", "url": "https://files.pythonhosted.org/packages/0c/51/95ed7e56564ba0d74ff34c95bdb180b453336a947a203707f32f9cd723b6/protean-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "c45e3d6b754844c5f835537a87560378", "sha256": "06861273e26dfb51943ba56e415876235256ec2b11ef65447b8a7f34d8025a3f" }, "downloads": -1, "filename": "protean-0.0.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c45e3d6b754844c5f835537a87560378", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 62314, "upload_time": "2019-04-24T13:56:44", "url": "https://files.pythonhosted.org/packages/b4/5d/83484ab9d24d31ddf30e4b4800cd121c49060ea86964810a8528d1ee7ed1/protean-0.0.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d36a8fa8c7789d9a8558cebb0045c4a", "sha256": "bd1321730613d7f3f251177cb85cb727bdbec16450b758bca21a90374c50a50e" }, "downloads": -1, "filename": "protean-0.0.11.tar.gz", "has_sig": false, "md5_digest": "2d36a8fa8c7789d9a8558cebb0045c4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 195126, "upload_time": "2019-04-24T13:56:46", "url": "https://files.pythonhosted.org/packages/42/c9/85799dcbf5ecd37c740d70052628e56b87ff6081ccb5d7a033e41a61eb22/protean-0.0.11.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "063f667f08c55e05dd341fb80112cb24", "sha256": "3a99a597cab1a39eb0d2d7269ba0af252386736923a34239337aeab459db6b96" }, "downloads": -1, "filename": "protean-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "063f667f08c55e05dd341fb80112cb24", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5007, "upload_time": "2018-07-20T01:47:41", "url": "https://files.pythonhosted.org/packages/e6/2a/a63942ade6cb4610c73d041c0930348fab6c566ae91ab522a8708b46e701/protean-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62eef76e4c7a7cdfdd21f8de9b15e7e0", "sha256": "104671596a3eac63e57259b0bc535c25545b9254126caae04f2b06e458009629" }, "downloads": -1, "filename": "protean-0.0.2.tar.gz", "has_sig": false, "md5_digest": "62eef76e4c7a7cdfdd21f8de9b15e7e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18725, "upload_time": "2018-07-20T01:47:42", "url": "https://files.pythonhosted.org/packages/76/bb/bbe1fc9e118c12bac6c245477b9c6f70ba12afb890f03ffdd2ec0426652c/protean-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "7b1a1e40337269d51519e65aa5c31dcb", "sha256": "128890410a4baf863a1078c55e6ad8ca036a3e6af06a5ec91658095997745cc0" }, "downloads": -1, "filename": "protean-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b1a1e40337269d51519e65aa5c31dcb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5240, "upload_time": "2018-07-20T05:45:56", "url": "https://files.pythonhosted.org/packages/c0/de/945d6d7653b48072c5138d4523262721935dda064c114e29a7a35a11778e/protean-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa53bb9800b64188719b283f1fd83563", "sha256": "741e64360915b78ae562ee27d807e4ea6b42c4c442f64af5264095e8455ef543" }, "downloads": -1, "filename": "protean-0.0.3.tar.gz", "has_sig": false, "md5_digest": "fa53bb9800b64188719b283f1fd83563", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19073, "upload_time": "2018-07-20T05:45:58", "url": "https://files.pythonhosted.org/packages/dc/70/9deb77ad03ee7014e8e2d4540ae13c54778bcd66dca3accfce05ba4ffa6c/protean-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "8ec88a04f06f0c0855f80cf03b1b13cd", "sha256": "5589ea2b85b411a937c221932ee6c24be367ccad0ea3b34d710975997da01591" }, "downloads": -1, "filename": "protean-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8ec88a04f06f0c0855f80cf03b1b13cd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9275, "upload_time": "2018-07-20T08:33:08", "url": "https://files.pythonhosted.org/packages/61/20/d8f46c010461fadf18fed12fb839a0ec1605646d0ce9e41ea3dfe6f22418/protean-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2c08760c4f59333f58fa491704cb55c4", "sha256": "17da01a648884e7e729e037a05daca7d2d17b44fcd340a824a0d2cdb70096102" }, "downloads": -1, "filename": "protean-0.0.4.tar.gz", "has_sig": false, "md5_digest": "2c08760c4f59333f58fa491704cb55c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22835, "upload_time": "2018-07-20T08:33:09", "url": "https://files.pythonhosted.org/packages/60/76/fa97ed397fbe488541010c2f20150bbc5ff092506016135fd6ffb49c151b/protean-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "039a4d92fda0247cacbf54dc8dd8938c", "sha256": "8ef6495831c2498b97a5766b59717bf133e8c8d75840920f65473d05dea7f719" }, "downloads": -1, "filename": "protean-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "039a4d92fda0247cacbf54dc8dd8938c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11293, "upload_time": "2018-08-02T05:12:10", "url": "https://files.pythonhosted.org/packages/bf/3e/14f413e56cf9dd5f857a879ec591694697ec744c0ceb367d2c82e3af020d/protean-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ea8892792a09cedd24cc1d5d21c4c30", "sha256": "ecdca947330374801e61bc0e07fe27b53af4a22b3ac4ff83ec71f5ee9e2a82ff" }, "downloads": -1, "filename": "protean-0.0.5.tar.gz", "has_sig": false, "md5_digest": "4ea8892792a09cedd24cc1d5d21c4c30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25030, "upload_time": "2018-08-02T05:12:11", "url": "https://files.pythonhosted.org/packages/17/79/49d0c3f49899afbaa77f138e672f441f83df67b3c3bdd1577c9f93d21ee3/protean-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "5ec46b74f2bece7c97eb04e64f8ae663", "sha256": "a578b69cfe816f81f6a4802efd7225e1391193ab9fd7b2690bde7608e3b13bfb" }, "downloads": -1, "filename": "protean-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5ec46b74f2bece7c97eb04e64f8ae663", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 42133, "upload_time": "2018-12-14T12:03:20", "url": "https://files.pythonhosted.org/packages/d2/1f/9d51092ed785b66372fd8b5573ca06b81262d68321feb3c77474ffc5f796/protean-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70d5025dffc40272acbacf56bc1fdebf", "sha256": "9f74118001ee0c8425f4e05a73abf8f109b9254f983c0f714846e428f43b2be6" }, "downloads": -1, "filename": "protean-0.0.6.tar.gz", "has_sig": false, "md5_digest": "70d5025dffc40272acbacf56bc1fdebf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68563, "upload_time": "2018-12-14T09:53:19", "url": "https://files.pythonhosted.org/packages/f0/1a/544c741646c7f2f987309e7687373f640a05080d9662a5aec665e6333864/protean-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "6498febd4553eb39a3302a0fa0c99941", "sha256": "0c05c970e1a0c6b1b23ebd6570143cfa1ffac5c06d454cb0b48c986d61a13b7c" }, "downloads": -1, "filename": "protean-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6498febd4553eb39a3302a0fa0c99941", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 41712, "upload_time": "2019-01-16T18:43:36", "url": "https://files.pythonhosted.org/packages/49/95/c26731d66e456a21c4db34d7c3153d76fdd9e4a21a663a31bc276dca6ca7/protean-0.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab645435bb7cd0932ae8d8f236ee0cc3", "sha256": "0eba83d6a6f211b0cccf335b5a2c1a00152c2364dd5ffb14f696527c5dbb848a" }, "downloads": -1, "filename": "protean-0.0.7.tar.gz", "has_sig": false, "md5_digest": "ab645435bb7cd0932ae8d8f236ee0cc3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 159463, "upload_time": "2019-01-16T18:43:38", "url": "https://files.pythonhosted.org/packages/83/af/8cc10f26d31609de5068cda7607a3c4edc6826c54d9cc1465b4cbcaaaa68/protean-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "4c24d5809a0aad3808c55b9d0e924493", "sha256": "2b860e2e568c53897b7c4d92e69c2b3ad38056b285f47e2aaf65e395c3cc6cbb" }, "downloads": -1, "filename": "protean-0.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4c24d5809a0aad3808c55b9d0e924493", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 54225, "upload_time": "2019-02-28T02:31:53", "url": "https://files.pythonhosted.org/packages/8f/f1/4ec9ad7bd105efe072575cd25e8b4b3853a80195e838452b44fda9b2f248/protean-0.0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "602e1caa07ed8bd2fe2e1be57a7f46e3", "sha256": "8164bdefffb821cb7f2dc17a5ac01c09cf7dfd9828c9dc568764e32f44d6f6fb" }, "downloads": -1, "filename": "protean-0.0.8.tar.gz", "has_sig": false, "md5_digest": "602e1caa07ed8bd2fe2e1be57a7f46e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 176859, "upload_time": "2019-02-28T02:31:55", "url": "https://files.pythonhosted.org/packages/3c/43/9288256518f3e180943f36af97ea4056de1d2df0f2cecf6ac7b2667acb6d/protean-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "42d1c0fe29aef49f1a0d10be3efd0733", "sha256": "788adb5e004cc362c9318a0ad4ccc1f96154bede8cd65e170e032a9fc38b98cc" }, "downloads": -1, "filename": "protean-0.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "42d1c0fe29aef49f1a0d10be3efd0733", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 54779, "upload_time": "2019-03-08T14:53:17", "url": "https://files.pythonhosted.org/packages/98/ad/ba149bb9ce10d740f89a498a8cffa0199b2a22eea4467abbc0573c163a0e/protean-0.0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3d201499ee563f302f2c56c57326fb1", "sha256": "683ed6778daf5b822c32128d48a4318dbcb69598021cb5d1e2a7a85cfa0eae83" }, "downloads": -1, "filename": "protean-0.0.9.tar.gz", "has_sig": false, "md5_digest": "f3d201499ee563f302f2c56c57326fb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 177980, "upload_time": "2019-03-08T14:53:19", "url": "https://files.pythonhosted.org/packages/29/41/7816bd86ffee66f289777705c686c5c435c3e81ca30a21f85d208280b159/protean-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "ea142897305372dbfae9bdaa83b231db", "sha256": "a43def0c91dbec705f47381523d6141d74dd30f685787881cc84adca40ac6a03" }, "downloads": -1, "filename": "protean-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ea142897305372dbfae9bdaa83b231db", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 99214, "upload_time": "2019-07-25T23:30:10", "url": "https://files.pythonhosted.org/packages/09/c1/9a84b63c0b8646864b413cbabea42e7d1be249b8d6e496db2939a551e812/protean-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d2445564676a72553f09ec646db4aeb7", "sha256": "6147a251d016c65f3c526e7d02d389d20e371d37b2fc8ab6f860ed45bea71490" }, "downloads": -1, "filename": "protean-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d2445564676a72553f09ec646db4aeb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 242357, "upload_time": "2019-07-25T23:30:12", "url": "https://files.pythonhosted.org/packages/9d/a4/a919b7d588396436d314ba27b655b04f7d2432f2f99acb87eb0e4097e324/protean-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "038ad2b9ded86444e84d45512c329066", "sha256": "f8e5f3e944bc6d4e982df5177475a7abd9c061743bb2ac2037d41bc8132516c2" }, "downloads": -1, "filename": "protean-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "038ad2b9ded86444e84d45512c329066", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 95624, "upload_time": "2019-09-16T20:33:36", "url": "https://files.pythonhosted.org/packages/72/48/a45fe037c9ca4faf6d64fa9fe7cfd5c5e50793a03446b1781f51f843bce2/protean-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e1f9b1b711f6c9ab7b594fc337d4f61", "sha256": "d2b7649de76bc8cdb915e9f719342b3ad278c86c7ace0838ede9674e048b28ff" }, "downloads": -1, "filename": "protean-0.2.0.tar.gz", "has_sig": false, "md5_digest": "6e1f9b1b711f6c9ab7b594fc337d4f61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 262931, "upload_time": "2019-09-16T20:33:38", "url": "https://files.pythonhosted.org/packages/f0/2f/26e56e0b36c7d5ebf746d8d238c3b89f1e7d94ae14a929b4fb39d150e396/protean-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "79529f17af524f4e5815b650c46b5eff", "sha256": "ed39d9db67876d0c1bcc0d983c4358f389cedce867be967711f1ef8cbb6ecd0d" }, "downloads": -1, "filename": "protean-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "79529f17af524f4e5815b650c46b5eff", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 103722, "upload_time": "2019-10-10T23:58:53", "url": "https://files.pythonhosted.org/packages/6b/49/ebac1ef17e51e7085ddd832ec36692929e44a0e670f65f0dd39382c5f78a/protean-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1da9b414b443c3a5ce0e82cc60fcd55", "sha256": "f58d54dacf1fe9c69f48f278a0c5775593fcfd18a656edfbf853a0b469896db4" }, "downloads": -1, "filename": "protean-0.3.0.tar.gz", "has_sig": false, "md5_digest": "a1da9b414b443c3a5ce0e82cc60fcd55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 290332, "upload_time": "2019-10-10T23:58:55", "url": "https://files.pythonhosted.org/packages/a4/7a/9e4f1f33adab3c9d8b18ec14a8799aa292977797781b1883d74aedf86ce0/protean-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "a5685e696b2ea2779edf2c585ab353b6", "sha256": "29426cf0d87bf2fadc9c302bd7754a39f6c494a8df801ce2b0bae43a13dbf7d5" }, "downloads": -1, "filename": "protean-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a5685e696b2ea2779edf2c585ab353b6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 104259, "upload_time": "2019-10-15T18:23:04", "url": "https://files.pythonhosted.org/packages/03/d7/8ee764d7ad77587efa19a98da03a17b53a58f98457de7346866455927c76/protean-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9598c242a685025c46f74f619391a21e", "sha256": "5c60c3cdcb22b5b5c3c4c2b13b9ea23c352783c646358c0d780c9c8545843d2d" }, "downloads": -1, "filename": "protean-0.3.1.tar.gz", "has_sig": false, "md5_digest": "9598c242a685025c46f74f619391a21e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 290652, "upload_time": "2019-10-15T18:23:07", "url": "https://files.pythonhosted.org/packages/0a/b0/be85a4c690bddf00cc4cb18588c9b39bf96bb9b00fe55dd01b8810513057/protean-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "cd72f47d1686e645f80c02ba45cd675c", "sha256": "4e61f2774cdc8f91328e479b827e3241fd8bea5f653324136a6ab9a4703f8af9" }, "downloads": -1, "filename": "protean-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cd72f47d1686e645f80c02ba45cd675c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 104243, "upload_time": "2019-10-18T00:40:52", "url": "https://files.pythonhosted.org/packages/a9/af/be20ee666cde010853d0c4f0e7a48b09eb379a75f6b2c304cc288b4468de/protean-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8683c21a9c79d7b57ae0c9d263adf1f7", "sha256": "d9d4493b691600d343965754d0015ccf66ce094e6cc579c3504fa689af67f417" }, "downloads": -1, "filename": "protean-0.3.2.tar.gz", "has_sig": false, "md5_digest": "8683c21a9c79d7b57ae0c9d263adf1f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 290642, "upload_time": "2019-10-18T00:40:54", "url": "https://files.pythonhosted.org/packages/4d/d9/b0bbc83bc8a52fd318fa6df86ffa892c44765d8f3701b176c9ef8ecb8080/protean-0.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cd72f47d1686e645f80c02ba45cd675c", "sha256": "4e61f2774cdc8f91328e479b827e3241fd8bea5f653324136a6ab9a4703f8af9" }, "downloads": -1, "filename": "protean-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cd72f47d1686e645f80c02ba45cd675c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 104243, "upload_time": "2019-10-18T00:40:52", "url": "https://files.pythonhosted.org/packages/a9/af/be20ee666cde010853d0c4f0e7a48b09eb379a75f6b2c304cc288b4468de/protean-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8683c21a9c79d7b57ae0c9d263adf1f7", "sha256": "d9d4493b691600d343965754d0015ccf66ce094e6cc579c3504fa689af67f417" }, "downloads": -1, "filename": "protean-0.3.2.tar.gz", "has_sig": false, "md5_digest": "8683c21a9c79d7b57ae0c9d263adf1f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 290642, "upload_time": "2019-10-18T00:40:54", "url": "https://files.pythonhosted.org/packages/4d/d9/b0bbc83bc8a52fd318fa6df86ffa892c44765d8f3701b176c9ef8ecb8080/protean-0.3.2.tar.gz" } ] }