{ "info": { "author": "Code Team", "author_email": "saborisov@sberned.ru", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Topic :: Internet :: WWW/HTTP" ], "description": "TCrudge - simple async CRUDL based on Tornado and Peewee ORM (Peewee\nAsync)\n\n|Documentation Status| |Build Status| |Code Climate| |Issue Count|\n|Coverage Status|\n\nFull documentation (http://tcrudge.readthedocs.io/en/latest/)\n\nWhat is it?\n===========\n\nSimple configurable framework to create CRUDL (Create, Read, Update,\nDelete, List) for models. TCrudge is under heavy development - tons of\nbugs are expected. You can use it in production, but API can be broken\nat any moment.\n\nWhy?\n====\n\nTornado is fast. Peewee is great. REST is wonderful.\n\nDependencies\n============\n\n- Tornado (https://github.com/tornadoweb/tornado)\n- Peewee (https://github.com/coleifer/peewee)\n- Peewee-async (https://github.com/05bit/peewee-async)\n\nInstallation\n============\n\ntcrudge is distributed via pypi: https://pypi.python.org/pypi/tcrudge/\n\n::\n\n pip install tcrudge\n\nYou can manually install latest version via GitHub:\n\n::\n\n pip install git+https://github.com/CodeTeam/tcrudge.git\n\nHow to?\n=======\n\nDescribe models using Peewee ORM. Subclass ``tcrudge.ApiListHandler``\nand ``tcrudge.ApiItemHandler``. Connect handlers with models using\nmodel\\_cls handler attribute. Add urls to tornado.Application url\ndispatcher.\n\nFor detailed example see tests (also, tests are available in Docker\ncontainer with py.test).\n\nYou can run tests in docker container only. You'll need docker and\ndocker-compose.\n\n1. Go to project root directory\n2. Run docker-compose up, it builts and runs containers.\n3. Go to tcrudge container bash: docker exec -ti tcrudge\\_tcrudge\\_1\n bash\n4. Run: DATABASE\\_URL=postgresql://user:dbpass@pg/test pytest\n\nFeatures?\n=========\n\n1. DELETE request on item is disabled by default. To enable it implement\n \\_delete method in your model.\n2. Models are fat. \\_create, \\_update, \\_delete methods are supposed to\n provide different logic on CRUD operations\n3. Django-style filtering in list request: ``__gt``, ``__gte``,\n ``__lt``, ``__lte``, ``__in``, ``__isnull``, ``__like``, ``__ilike``,\n ``__ne`` are supported. Use\n ``/?model_field__=`` for complex or\n ``/?model_field=`` for simple filtering.\n4. Django-style order by: use ``/?order_by=,`` etc\n5. Serialization is provided by Peewee:\n ``playhouse.shortcuts.model_to_dict``. ``recurse``, ``exclude`` and\n ``max_depth`` params are implemented in base class for better\n experience. If you want to serialize recurse foreign keys, do not\n forget to modify ``get_queryset`` method (see Peewee docs for\n details, use ``.join()`` and ``.select()``)\n6. Validation is provided out-of-the box via jsonschema. Just set input\n schemas for base methods (e.g. post\\_schema\\_input,\n get\\_schema\\_input etc). Request query is validated for *GET* and\n *HEAD*. Request body is validated for *POST*, *PUT* and *DELETE*.\n7. Pagination is activated by default for lists. Use ``default_limit``\n and ``max_limit`` for customization. Pagination params are set\n through headers (X-Limit, X-Offset) or query:\n ``/?limit=100&offset=5``. Total amount of items is not returned by\n default. HEAD request should be sent or total param set to 1:\n ``/?total=1``\n8. List handler supports default filtering and ordering. Use\n ``default_filter`` and ``default_order_by`` class properties.\n\nExample\n=======\n\n.. code:: python\n\n import asyncio\n\n import peewee\n import peewee_async\n from playhouse.db_url import parse\n from tornado import web\n from tornado.ioloop import IOLoop\n\n from tcrudge.handlers import ApiListHandler, ApiItemHandler\n from tcrudge.models import BaseModel\n\n # Configure Tornado to use asyncio\n IOLoop.configure('tornado.platform.asyncio.AsyncIOMainLoop')\n\n # Create database\n DATABASE_URL = 'postgresql://user:dbpass@pg/test'\n\n db_param = parse(DATABASE_URL)\n\n db = peewee_async.PooledPostgresqlDatabase(**db_param)\n\n\n # CRUDL Model\n class Company(BaseModel):\n name = peewee.TextField()\n active = peewee.BooleanField()\n\n class Meta:\n database = db\n\n\n # CL Handler\n class CompanyDetailHandler(ApiItemHandler):\n model_cls = Company\n\n\n # RUD Handler\n class CompanyListHandler(ApiListHandler):\n model_cls = Company\n default_filter = {'active': True}\n\n\n app_handlers = [\n ('^/api/v1/companies/', CompanyListHandler),\n ('^/api/v1/companies/([^/]+)/', CompanyDetailHandler)\n ]\n\n application = web.Application(app_handlers)\n\n # ORM\n application.objects = peewee_async.Manager(db)\n\n with application.objects.allow_sync():\n # Creates table, if not exists\n Company.create_table(True)\n\n application.listen(8080, '0.0.0.0')\n loop = asyncio.get_event_loop()\n # Start application\n loop.run_forever()\n\n\u0421ontributors\n============\n\n- [Borisov Sergey] (https://github.com/juntatalor)\n- [Shalamov Maxim] (https://github.com/mvshalamov)\n- [Nikolaev Alexander] (https://github.com/wokli)\n- [Krasavina Alina] (https://github.com/thaelathy)\n- [Ivanov Denis] (https://github.com/steinerr)\n\n.. |Documentation Status| image:: https://readthedocs.org/projects/tcrudge/badge/?version=latest\n :target: http://tcrudge.readthedocs.io/en/latest/?badge=latest\n.. |Build Status| image:: https://travis-ci.org/CodeTeam/tcrudge.svg?branch=master\n :target: https://travis-ci.org/CodeTeam/tcrudge\n.. |Code Climate| image:: https://codeclimate.com/github/CodeTeam/tcrudge/badges/gpa.svg\n :target: https://codeclimate.com/github/CodeTeam/tcrudge\n.. |Issue Count| image:: https://codeclimate.com/github/CodeTeam/tcrudge/badges/issue_count.svg\n :target: https://codeclimate.com/github/CodeTeam/tcrudge\n.. |Coverage Status| image:: https://coveralls.io/repos/github/CodeTeam/tcrudge/badge.svg?branch=master\n :target: https://coveralls.io/github/CodeTeam/tcrudge?branch=master\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/CodeTeam/tcrudge", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "tcrudge", "package_url": "https://pypi.org/project/tcrudge/", "platform": "", "project_url": "https://pypi.org/project/tcrudge/", "project_urls": { "Homepage": "https://github.com/CodeTeam/tcrudge" }, "release_url": "https://pypi.org/project/tcrudge/0.9.11/", "requires_dist": [ "peewee (==2.8.3)", "aiopg (==0.10.0)", "jsonschema (==2.5.1)", "msgpack-python (==0.4.8)", "peewee-async (==0.5.5)", "psycopg2 (==2.6.2)", "tornado (==4.4.2)", "coverage (==4.2); extra == 'tests'", "py (==1.4.31); extra == 'tests'", "pytest (==3.0.2); extra == 'tests'", "pytest-cov (==2.3.1); extra == 'tests'", "pytest-env (==0.6.0); extra == 'tests'", "pytest-tornado (==0.4.5); extra == 'tests'" ], "requires_python": "", "summary": "Tornado RESTful API with Peewee", "version": "0.9.11" }, "last_serial": 3114172, "releases": { "0.6.1": [ { "comment_text": "", "digests": { "md5": "ad1b31bf98d19b9ca1b80f18984cce93", "sha256": "983574a47f7073a1a4f8309db0bf8289516efc671598235eabd22033545161ab" }, "downloads": -1, "filename": "tcrudge-0.6.1-py3.5.egg", "has_sig": false, "md5_digest": "ad1b31bf98d19b9ca1b80f18984cce93", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 22002, "upload_time": "2016-11-16T15:54:57", "url": "https://files.pythonhosted.org/packages/fb/de/4c181b2af6babcbbdef8048cb6ca67f1ad3d6840f097cab8d41dd2964227/tcrudge-0.6.1-py3.5.egg" } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "c039a7187b8bf2d7e9fde9a86592bf5f", "sha256": "66b1b078f419871dacaf6d208a5f444a98a46304f742834c7100a51950dba46a" }, "downloads": -1, "filename": "tcrudge-0.8.4-py3-none-any.whl", "has_sig": false, "md5_digest": "c039a7187b8bf2d7e9fde9a86592bf5f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34195, "upload_time": "2017-01-07T17:55:19", "url": "https://files.pythonhosted.org/packages/75/7b/fc3ff56c5a9191d1e7fd9975239fbc3c5353457b6b0083506881641016f0/tcrudge-0.8.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "206d4d70a07fda0630f274e2fc674513", "sha256": "005223d7f0ad541b2b9dc1e74cf9a128b9658a0b45f92104ed831eeed3c54c6f" }, "downloads": -1, "filename": "tcrudge-0.8.4.tar.gz", "has_sig": false, "md5_digest": "206d4d70a07fda0630f274e2fc674513", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28210, "upload_time": "2017-01-07T17:55:21", "url": "https://files.pythonhosted.org/packages/83/6d/f7cf695a0fff9da89233d43f6c363d3ab3f18e2c54b430a1e4370f691bee/tcrudge-0.8.4.tar.gz" } ], "0.8.6": [ { "comment_text": "", "digests": { "md5": "6c76de6913e5a7250d9a8a0ec3f4c4ea", "sha256": "371a61cafbbfd1fe2b852a3d0ff3f664058f9c85da9c0da453fa686e1e61ef6f" }, "downloads": -1, "filename": "tcrudge-0.8.6-py3-none-any.whl", "has_sig": false, "md5_digest": "6c76de6913e5a7250d9a8a0ec3f4c4ea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34382, "upload_time": "2017-01-07T19:41:05", "url": "https://files.pythonhosted.org/packages/34/6e/a0f4e1c0985317fea49031cc058cfc3850be9150c7edd4b42c4d3b6966a8/tcrudge-0.8.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8af72b055380965abfae62080be3868d", "sha256": "83db90b78fd3f114cf9d5ef32ed9d4a7818fe9e0385b086b40b1b8e7053ea5e0" }, "downloads": -1, "filename": "tcrudge-0.8.6.tar.gz", "has_sig": false, "md5_digest": "8af72b055380965abfae62080be3868d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28240, "upload_time": "2017-01-07T19:41:06", "url": "https://files.pythonhosted.org/packages/82/4e/31b70390058175e852ced783e49461e96db5486e17ffd4999e37c04e67b8/tcrudge-0.8.6.tar.gz" } ], "0.8.7": [ { "comment_text": "", "digests": { "md5": "00e982635b94e4d9a9ade9556cb6ff71", "sha256": "67afb3734527cea9e9486965519b42527e1764c1fa448d7cac373d5e1628d98f" }, "downloads": -1, "filename": "tcrudge-0.8.7-py3-none-any.whl", "has_sig": false, "md5_digest": "00e982635b94e4d9a9ade9556cb6ff71", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34405, "upload_time": "2017-01-07T19:52:16", "url": "https://files.pythonhosted.org/packages/23/80/3752573f7ef66aa2c098408fba9c251bc3b3c45b4cf5bea1ca58c0616290/tcrudge-0.8.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11d7c90f8e8d595df9b9efa6998c0a55", "sha256": "afc2e3c25396e40aad1651085ae45a60d19dfee4dc11db828e4c1eba6d4082c3" }, "downloads": -1, "filename": "tcrudge-0.8.7.tar.gz", "has_sig": false, "md5_digest": "11d7c90f8e8d595df9b9efa6998c0a55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28255, "upload_time": "2017-01-07T19:52:18", "url": "https://files.pythonhosted.org/packages/72/df/fe25dce03354778b0c1545be32a9f5fae69807421bccd880d6cf3589ae3a/tcrudge-0.8.7.tar.gz" } ], "0.8.8": [ { "comment_text": "", "digests": { "md5": "753546a9907809cdc53be42f413bd8cd", "sha256": "ea9a2045856b32603c38d661e30cfcfb8fcf792f74c175471801d7e09b34f233" }, "downloads": -1, "filename": "tcrudge-0.8.8-py3-none-any.whl", "has_sig": false, "md5_digest": "753546a9907809cdc53be42f413bd8cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34410, "upload_time": "2017-01-07T20:02:23", "url": "https://files.pythonhosted.org/packages/6c/86/0c3e195e6bf689be76c88e2e792db519f0c3ec9d323bc8d2e12c68e9dd91/tcrudge-0.8.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be654d19e947685ad5aa66a95da6559d", "sha256": "8f43208adaf1903ab49f3c3efceac918fbeffead87388454b1709fa264726984" }, "downloads": -1, "filename": "tcrudge-0.8.8.tar.gz", "has_sig": false, "md5_digest": "be654d19e947685ad5aa66a95da6559d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28271, "upload_time": "2017-01-07T20:02:25", "url": "https://files.pythonhosted.org/packages/51/7e/7bc082da3428d70b57991e2e732f1649c4879b5ecd70c89863c6de9924d4/tcrudge-0.8.8.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "265cf57ff069c8939e9b02ba21f44708", "sha256": "7bc6c38df4b5d8b2b3ec76d521cd818681b1737dd6d435e07b146f57ea0ede7b" }, "downloads": -1, "filename": "tcrudge-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "265cf57ff069c8939e9b02ba21f44708", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 40514, "upload_time": "2017-01-07T20:32:33", "url": "https://files.pythonhosted.org/packages/d2/ab/4251b4bf457464df02f8e743c6345772a4b37c606371021e7f303c7593a4/tcrudge-0.9.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1eec3bc2f1c094036ad22c4e9b54656", "sha256": "7dd663898605c9eb26eb75158b4a2cb897db09e5d59177cae54d66dc1b429f55" }, "downloads": -1, "filename": "tcrudge-0.9.0.tar.gz", "has_sig": false, "md5_digest": "b1eec3bc2f1c094036ad22c4e9b54656", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33602, "upload_time": "2017-01-07T20:32:35", "url": "https://files.pythonhosted.org/packages/69/f5/8ad7a2b7e99614e41b641592937d7055f4aeb62e6ebef9841517b5c08e04/tcrudge-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "e496634d2f63f2442d312ee9b45ea5c8", "sha256": "0d0a0328f06dfbb8999a7a1cf1b2ec4a7103c3375f8d30e6b5ecc5c17bc253ee" }, "downloads": -1, "filename": "tcrudge-0.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e496634d2f63f2442d312ee9b45ea5c8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 40583, "upload_time": "2017-01-18T13:15:32", "url": "https://files.pythonhosted.org/packages/c2/ec/332e82c775389e1036abac89a16b4b725521cba07b78cda59d201e6ee742/tcrudge-0.9.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14c9be9cb12baec7606b3e4aa8a90791", "sha256": "03cecfd1665328875f4db495ad35dc0561a886abc85872b63e999f977bab8e29" }, "downloads": -1, "filename": "tcrudge-0.9.1.tar.gz", "has_sig": false, "md5_digest": "14c9be9cb12baec7606b3e4aa8a90791", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33706, "upload_time": "2017-01-18T13:15:34", "url": "https://files.pythonhosted.org/packages/78/21/2138d0ab471388abf6842817afa1a8f999b5960087600fd8830eead12168/tcrudge-0.9.1.tar.gz" } ], "0.9.10": [ { "comment_text": "", "digests": { "md5": "181778175b2906de6e49c5aa19822cdc", "sha256": "393fd08565615e96a43f69a5625b81b20fd4b0e600695303df0ffc9618a38d76" }, "downloads": -1, "filename": "tcrudge-0.9.10-py3-none-any.whl", "has_sig": false, "md5_digest": "181778175b2906de6e49c5aa19822cdc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 41409, "upload_time": "2017-08-21T16:46:05", "url": "https://files.pythonhosted.org/packages/e0/0b/1eabb39b23fa29a6f7010fe6f7d75c159cb8df5ebfef784f3131193ca006/tcrudge-0.9.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f0a557f7bb731e6573e559c99b23776b", "sha256": "6fbcecce61beb70faf3aeac39fb49f267c01587077f771729b85db00e7438c00" }, "downloads": -1, "filename": "tcrudge-0.9.10.tar.gz", "has_sig": false, "md5_digest": "f0a557f7bb731e6573e559c99b23776b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34255, "upload_time": "2017-08-21T16:46:08", "url": "https://files.pythonhosted.org/packages/a8/8f/cb570adb51e66a626b4a6b7d980bc4f4f39b7deb0af0972d009197495ae4/tcrudge-0.9.10.tar.gz" } ], "0.9.11": [ { "comment_text": "", "digests": { "md5": "5ca01aa0854538a482213be33226da5b", "sha256": "c2883631934b84bfcb2da555506ec069744fbb05b58c68b4a0685598ec219de9" }, "downloads": -1, "filename": "tcrudge-0.9.11-py3-none-any.whl", "has_sig": false, "md5_digest": "5ca01aa0854538a482213be33226da5b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 41415, "upload_time": "2017-08-22T09:23:54", "url": "https://files.pythonhosted.org/packages/ac/ef/f94f25cb171fcd6ad4d66032420358e35400745a116a33d98a4c687ed99a/tcrudge-0.9.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bbb5601246f7e5cc5ac41d5cc159e61f", "sha256": "79d207fca14645bbeccf93909b83ef82ab3c063cd977799c8dcf99778e5aac01" }, "downloads": -1, "filename": "tcrudge-0.9.11.tar.gz", "has_sig": false, "md5_digest": "bbb5601246f7e5cc5ac41d5cc159e61f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34254, "upload_time": "2017-08-22T09:23:56", "url": "https://files.pythonhosted.org/packages/8e/f1/7ee27257d45ad0246a79456d40869254c283be956e2eec348fc530fea874/tcrudge-0.9.11.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "cf3842b28f52dedd6270452f00b92833", "sha256": "c697b8714276e7bdd19c96f53899dab74a4342caa13bb196c042a0da0a1d5b39" }, "downloads": -1, "filename": "tcrudge-0.9.3-py3-none-any.whl", "has_sig": false, "md5_digest": "cf3842b28f52dedd6270452f00b92833", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 40577, "upload_time": "2017-02-01T09:36:36", "url": "https://files.pythonhosted.org/packages/50/b1/da8f38bcce476ffbfd2cdd3639478171e99fe9bc5c398ff80101e48d75bf/tcrudge-0.9.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4b4b747e29b35732b73531e7a27a06a", "sha256": "0c089300a1de78d67566cac5332cdccb3f158b6045f5e56f7c5d42754bf2f727" }, "downloads": -1, "filename": "tcrudge-0.9.3.tar.gz", "has_sig": false, "md5_digest": "c4b4b747e29b35732b73531e7a27a06a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33752, "upload_time": "2017-02-01T09:36:38", "url": "https://files.pythonhosted.org/packages/4a/55/45bbafb6838d6f711b8912dc57697aaca4476d4a797c44791a73ab4fe856/tcrudge-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "187ddb1494be415ed1f3559d6b44c55e", "sha256": "3b9c0231eba033cca4ebb242672c6528822010f0b12765927102ecb5814f7352" }, "downloads": -1, "filename": "tcrudge-0.9.4-py3-none-any.whl", "has_sig": false, "md5_digest": "187ddb1494be415ed1f3559d6b44c55e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 40814, "upload_time": "2017-02-10T09:33:31", "url": "https://files.pythonhosted.org/packages/91/5c/5a6203be25ff37ffd50feaa5f123e2b6834f834b10f08812bb11c5ffe075/tcrudge-0.9.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a809d4defa6e8eaefd225e9d19f59feb", "sha256": "3fa00ab06a0041b18087d5a578ef0fd2f9d8a55187f40b31422fad95f7c6f757" }, "downloads": -1, "filename": "tcrudge-0.9.4.tar.gz", "has_sig": false, "md5_digest": "a809d4defa6e8eaefd225e9d19f59feb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33994, "upload_time": "2017-02-10T09:33:32", "url": "https://files.pythonhosted.org/packages/38/41/dc878da657223959def91ee2c3354fa331dc2e1d2245183c4f23b3fe31bf/tcrudge-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "28ecab44458ed1836c6f923dff73feb9", "sha256": "9d6e848c32b617f822c36bd45f63f176089c98ac671854dae6eefa32a3f544b4" }, "downloads": -1, "filename": "tcrudge-0.9.5.macosx-10.12-intel.tar.gz", "has_sig": false, "md5_digest": "28ecab44458ed1836c6f923dff73feb9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31084, "upload_time": "2017-02-17T11:54:56", "url": "https://files.pythonhosted.org/packages/b5/03/069ac1bfe47f841b3003cb3edca3bf165c9abf44bbec42abe79239cd340e/tcrudge-0.9.5.macosx-10.12-intel.tar.gz" }, { "comment_text": "", "digests": { "md5": "e4d7707f25c84e3d7d55a1f65c0b1f4f", "sha256": "d697411675f68b0841e3c9f72b53f6bea175bcb787675af015016d8d5379ea92" }, "downloads": -1, "filename": "tcrudge-0.9.5-py3-none-any.whl", "has_sig": false, "md5_digest": "e4d7707f25c84e3d7d55a1f65c0b1f4f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 40635, "upload_time": "2017-02-17T11:54:54", "url": "https://files.pythonhosted.org/packages/44/20/5223bb8e38143c2bc8154705b4a85a929889f4ccd5f484e5db91d6b95a40/tcrudge-0.9.5-py3-none-any.whl" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "d0f15c326876c74fd3d74a73054f3dbe", "sha256": "2d677fe6fcd53ff78ae452bc14d8660d939de6a9b67da9576ab598b265df52f3" }, "downloads": -1, "filename": "tcrudge-0.9.6-py3-none-any.whl", "has_sig": false, "md5_digest": "d0f15c326876c74fd3d74a73054f3dbe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 40793, "upload_time": "2017-03-02T09:22:58", "url": "https://files.pythonhosted.org/packages/7f/85/166a5b30f820bafc913b6535ffa766e29f132857f9ced289e195f152c753/tcrudge-0.9.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ccdb51448e254a3865f6d2002259db16", "sha256": "ccea3d00e7fd5dc1f7612f272ab322ce970b4c66dfe503339a3189c90591a0f6" }, "downloads": -1, "filename": "tcrudge-0.9.6.tar.gz", "has_sig": false, "md5_digest": "ccdb51448e254a3865f6d2002259db16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33765, "upload_time": "2017-03-02T09:23:00", "url": "https://files.pythonhosted.org/packages/ff/ae/6948f4a90be30685fd4cbaa600a1cca5911f34e8512b2872e77f4f5ac450/tcrudge-0.9.6.tar.gz" } ], "0.9.7": [ { "comment_text": "", "digests": { "md5": "bb530dc5195f81689a73996d3f2ff96d", "sha256": "33056a3c26f790ea67922498941f5484bb2311c06936d45f395b117e2ff4f7d5" }, "downloads": -1, "filename": "tcrudge-0.9.7-py3-none-any.whl", "has_sig": false, "md5_digest": "bb530dc5195f81689a73996d3f2ff96d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 40873, "upload_time": "2017-05-11T11:48:16", "url": "https://files.pythonhosted.org/packages/3d/82/f519aa82849329c703070658e89ab0a9d1821d7a05564ae16c000f4d9014/tcrudge-0.9.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe8e6729bd7398ed640a134be3232eec", "sha256": "c52ccb35312e428aa7dacb43c750f83f52ea14e9437a871f097bcecb16ccadb4" }, "downloads": -1, "filename": "tcrudge-0.9.7.tar.gz", "has_sig": false, "md5_digest": "fe8e6729bd7398ed640a134be3232eec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33960, "upload_time": "2017-05-11T11:48:18", "url": "https://files.pythonhosted.org/packages/6b/e8/32f87833d587608064e95e7d38b8ed72da6781b4da172eb2a93604d6981b/tcrudge-0.9.7.tar.gz" } ], "0.9.8": [ { "comment_text": "", "digests": { "md5": "28a1a8106621aebf3b70672d68d00996", "sha256": "3ee4674e8149a0b99028d6370a973089398391ffd422dec0d5354a435618de37" }, "downloads": -1, "filename": "tcrudge-0.9.8-py3-none-any.whl", "has_sig": false, "md5_digest": "28a1a8106621aebf3b70672d68d00996", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 41374, "upload_time": "2017-08-21T12:03:36", "url": "https://files.pythonhosted.org/packages/18/8a/f1cbabe3c8eee8711cdcee9b7de592941b7af8db9f43fa02fe39fd98a0d5/tcrudge-0.9.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0be70551036033e8da5365d661b851ff", "sha256": "a003a9b54be55a47393269d0bd9e668e4b60f7ad81ef8a45f1928970e30f61e2" }, "downloads": -1, "filename": "tcrudge-0.9.8.tar.gz", "has_sig": false, "md5_digest": "0be70551036033e8da5365d661b851ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34257, "upload_time": "2017-08-21T12:03:39", "url": "https://files.pythonhosted.org/packages/af/91/e521891d28d543e493cd13ae847532659d36984ced647c32a8b4ee1a1c07/tcrudge-0.9.8.tar.gz" } ], "0.9.9": [ { "comment_text": "", "digests": { "md5": "5848c363d4c9bb4910b2b271bfc708ef", "sha256": "72fb387cf4fc9862dccd6494e82f74dd9898e3344da2e458a69622d541487c94" }, "downloads": -1, "filename": "tcrudge-0.9.9-py3-none-any.whl", "has_sig": false, "md5_digest": "5848c363d4c9bb4910b2b271bfc708ef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 41383, "upload_time": "2017-08-21T12:27:51", "url": "https://files.pythonhosted.org/packages/24/01/42f1840fd397c2a4b1f8caab53b060f01ad0f53aadc40585e5c308b07124/tcrudge-0.9.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b0517f48e3a0a7e8acec1ae08c818cd4", "sha256": "20b9b97908e4c5598026a42f1f90f1ac0d61d3704b642e68e6154e65a3835496" }, "downloads": -1, "filename": "tcrudge-0.9.9.tar.gz", "has_sig": false, "md5_digest": "b0517f48e3a0a7e8acec1ae08c818cd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34283, "upload_time": "2017-08-21T12:27:54", "url": "https://files.pythonhosted.org/packages/d5/f6/2c0e344fd63edd976e9c3ad94b74cab4267141f69c394909184443f73c8b/tcrudge-0.9.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5ca01aa0854538a482213be33226da5b", "sha256": "c2883631934b84bfcb2da555506ec069744fbb05b58c68b4a0685598ec219de9" }, "downloads": -1, "filename": "tcrudge-0.9.11-py3-none-any.whl", "has_sig": false, "md5_digest": "5ca01aa0854538a482213be33226da5b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 41415, "upload_time": "2017-08-22T09:23:54", "url": "https://files.pythonhosted.org/packages/ac/ef/f94f25cb171fcd6ad4d66032420358e35400745a116a33d98a4c687ed99a/tcrudge-0.9.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bbb5601246f7e5cc5ac41d5cc159e61f", "sha256": "79d207fca14645bbeccf93909b83ef82ab3c063cd977799c8dcf99778e5aac01" }, "downloads": -1, "filename": "tcrudge-0.9.11.tar.gz", "has_sig": false, "md5_digest": "bbb5601246f7e5cc5ac41d5cc159e61f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34254, "upload_time": "2017-08-22T09:23:56", "url": "https://files.pythonhosted.org/packages/8e/f1/7ee27257d45ad0246a79456d40869254c283be956e2eec348fc530fea874/tcrudge-0.9.11.tar.gz" } ] }