{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "Crochet: Use Twisted anywhere!\n==============================\n\nCrochet is an MIT-licensed library that makes it easier to use Twisted from\nregular blocking code. Some use cases include:\n\n* Easily use Twisted from a blocking framework like Django or Flask.\n* Write a library that provides a blocking API, but uses Twisted for its\n implementation.\n* Port blocking code to Twisted more easily, by keeping a backwards\n compatibility layer.\n* Allow normal Twisted programs that use threads to interact with Twisted more\n cleanly from their threaded parts. For example, this can be useful when using\n Twisted as a `WSGI container`_.\n\n.. _WSGI container: https://twistedmatrix.com/documents/current/web/howto/web-in-60/wsgi.html\n\nCrochet is maintained by Itamar Turner-Trauring.\n\n **Note:** Crochet development is pretty slow these days because mostly it Just Works. PyPI shows about 20,000 downloads a month, so existing users seem happy: https://pypistats.org/packages/crochet\n\nYou can install Crochet by running::\n\n $ pip install crochet\n\nDownloads are available on `PyPI`_.\n\nDocumentation can be found on `Read The Docs`_.\n\nBugs and feature requests should be filed at the project `Github page`_.\n\n.. _Read the Docs: https://crochet.readthedocs.org/\n.. _Github page: https://github.com/itamarst/crochet/\n.. _PyPI: https://pypi.python.org/pypi/crochet\n\n\nAPI and features\n================\n\n.. image:: https://travis-ci.org/itamarst/crochet.png?branch=master\n :target: http://travis-ci.org/itamarst/crochet\n :alt: Build Status\n\nCrochet supports Python 2.7, 3.4, 3.5, 3.6, and 3.7 as well as PyPy.\n\nCrochet provides the following basic APIs:\n\n* Allow blocking code to call into Twisted and block until results are available\n or a timeout is hit, using the ``crochet.wait_for`` decorator.\n* A lower-level API (``crochet.run_in_reactor``) allows blocking code to run\n code \"in the background\" in the Twisted thread, with the ability to repeatedly\n check if it's done.\n\nCrochet will do the following on your behalf in order to enable these APIs:\n\n* Transparently start Twisted's reactor in a thread it manages.\n* Shut down the reactor automatically when the process' main thread finishes.\n* Hook up Twisted's log system to the Python standard library ``logging``\n framework. Unlike Twisted's built-in ``logging`` bridge, this includes\n support for blocking `Handler` instances.\n\n\nWhat's New\n==========\n\n1.10.0\n^^^^^^\n\nNew features:\n\n* Added support for Python 3.7. Thanks to Jeremy Cline for the patch.\n\n1.9.0\n^^^^^\n\nNew features:\n\n* The underlying callable wrapped ``@run_in_reactor`` and ``@wait_for`` is now available via the more standard ``__wrapped__`` attribute.\n\nBackwards incompatibility (in tests):\n\n* This was actually introduced in 1.8.0: ``wrapped_function`` may not always be available on decorated callables.\n You should use ``__wrapped__`` instead.\n\nBug fixes:\n\n* Fixed regression in 1.8.0 where bound method couldn't be wrapped.\n Thanks to 2mf for the bug report.\n\n1.8.0\n^^^^^\n\nNew features:\n\n* Signatures on decorated functions now match the original functions.\n Thanks to Mikhail Terekhov for the original patch.\n* Documentation improvements, including an API reference.\n\nBug fixes:\n\n* Switched to EPoll reactor for logging thread.\n Anecdotal evidence suggests this fixes some issues on AWS Lambda, but it's not clear why.\n Thanks to Rolando Espinoza for the patch.\n* It's now possible to call ``@run_in_reactor`` and ``@wait_for`` above a ``@classmethod``.\n Thanks to vak for the bug report.\n\n1.7.0\n^^^^^\n\nBug fixes:\n\n* If the Python ``logging.Handler`` throws an exception Crochet no longer goes into a death spiral.\n Thanks to Michael Schlenker for the bug report.\n\nRemoved features:\n\n* Versions of Twisted < 16.0 are no longer supported (i.e. no longer tested in CI.)\n\n1.6.0\n^^^^^\n\nNew features:\n\n* Added support for Python 3.6.\n\n1.5.0\n^^^^^\n\nNew features:\n\n* Added support for Python 3.5.\n\nRemoved features:\n\n* Python 2.6, Python 3.3, and versions of Twisted < 15.0 are no longer supported.\n\n1.4.0\n^^^^^\n\nNew features:\n\n* Added support for Python 3.4.\n\nDocumentation:\n\n* Added a section on known issues and workarounds.\n\nBug fixes:\n\n* Main thread detection (used to determine when Crochet should shutdown) is now less fragile.\n This means Crochet now supports more environments, e.g. uWSGI.\n Thanks to Ben Picolo for the patch.\n\n1.3.0\n^^^^^\n\nBug fixes:\n\n* It is now possible to call ``EventualResult.wait()`` (or functions\n wrapped in ``wait_for``) at import time if another thread holds the\n import lock. Thanks to Ken Struys for the patch.\n\n1.2.0\n^^^^^\nNew features:\n\n* ``crochet.wait_for`` implements the timeout/cancellation pattern documented\n in previous versions of Crochet. ``crochet.wait_for_reactor`` and\n ``EventualResult.wait(timeout=None)`` are now deprecated, since lacking\n timeouts they could potentially block forever.\n* Functions wrapped with ``wait_for`` and ``run_in_reactor`` can now be accessed\n via the ``wrapped_function`` attribute, to ease unit testing of the underlying\n Twisted code.\n\nAPI changes:\n\n* It is no longer possible to call ``EventualResult.wait()`` (or functions\n wrapped with ``wait_for``) at import time, since this can lead to deadlocks\n or prevent other threads from importing. Thanks to Tom Prince for the bug\n report.\n\nBug fixes:\n\n* ``warnings`` are no longer erroneously turned into Twisted log messages.\n* The reactor is now only imported when ``crochet.setup()`` or\n ``crochet.no_setup()`` are called, allowing daemonization if only ``crochet``\n is imported (http://tm.tl/7105). Thanks to Daniel Nephin for the bug report.\n\nDocumentation:\n\n* Improved motivation, added contact info and news to the documentation.\n* Better example of using Crochet from a normal Twisted application.\n\n1.1.0\n^^^^^\nBug fixes:\n\n* ``EventualResult.wait()`` can now be used safely from multiple threads,\n thanks to Gavin Panella for reporting the bug.\n* Fixed reentrancy deadlock in the logging code caused by\n http://bugs.python.org/issue14976, thanks to Rod Morehead for reporting the\n bug.\n* Crochet now installs on Python 3.3 again, thanks to Ben Cordero.\n* Crochet should now work on Windows, thanks to Konstantinos Koukopoulos.\n* Crochet tests can now run without adding its absolute path to PYTHONPATH or\n installing it first.\n\nDocumentation:\n\n* ``EventualResult.original_failure`` is now documented.\n\n1.0.0\n^^^^^\nDocumentation:\n\n* Added section on use cases and alternatives. Thanks to Tobias Oberstein for\n the suggestion.\n\nBug fixes:\n\n* Twisted does not have to be pre-installed to run ``setup.py``, thanks to\n Paul Weaver for bug report and Chris Scutcher for patch.\n* Importing Crochet does not have side-effects (installing reactor event)\n any more.\n* Blocking calls are interrupted earlier in the shutdown process, to reduce\n scope for deadlocks. Thanks to rmorehead for bug report.\n\n0.9.0\n^^^^^\nNew features:\n\n* Expanded and much improved documentation, including a new section with\n design suggestions.\n* New decorator ``@wait_for_reactor`` added, a simpler alternative to\n ``@run_in_reactor``.\n* Refactored ``@run_in_reactor``, making it a bit more responsive.\n* Blocking operations which would otherwise never finish due to reactor having\n stopped (``EventualResult.wait()`` or ``@wait_for_reactor`` decorated call)\n will be interrupted with a ``ReactorStopped`` exception. Thanks to rmorehead\n for the bug report.\n\nBug fixes:\n\n* ``@run_in_reactor`` decorated functions (or rather, their generated wrapper)\n are interrupted by Ctrl-C.\n* On POSIX platforms, a workaround is installed to ensure processes started by\n `reactor.spawnProcess` have their exit noticed. See `Twisted ticket 6378`_\n for more details about the underlying issue.\n\n.. _Twisted ticket 6378: http://tm.tl/6738\n\n0.8.1\n^^^^^\n* ``EventualResult.wait()`` now raises error if called in the reactor thread,\n thanks to David Buchmann.\n* Unittests are now included in the release tarball.\n* Allow Ctrl-C to interrupt ``EventualResult.wait(timeout=None)``.\n\n0.7.0\n^^^^^\n* Improved documentation.\n\n0.6.0\n^^^^^\n* Renamed ``DeferredResult`` to ``EventualResult``, to reduce confusion with\n Twisted's ``Deferred`` class. The old name still works, but is deprecated.\n* Deprecated ``@in_reactor``, replaced with ``@run_in_reactor`` which doesn't\n change the arguments to the wrapped function. The deprecated API still works,\n however.\n* Unhandled exceptions in ``EventualResult`` objects are logged.\n* Added more examples.\n* ``setup.py sdist`` should work now.\n\n0.5.0\n^^^^^\n* Initial release.\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/itamarst/crochet", "keywords": "twisted threading", "license": "MIT", "maintainer": "Itamar Turner-Trauring", "maintainer_email": "itamar@itamarst.org", "name": "crochet", "package_url": "https://pypi.org/project/crochet/", "platform": "", "project_url": "https://pypi.org/project/crochet/", "project_urls": { "Homepage": "https://github.com/itamarst/crochet" }, "release_url": "https://pypi.org/project/crochet/1.10.0/", "requires_dist": [ "Twisted (>=15.0)", "wrapt" ], "requires_python": "", "summary": "Use Twisted anywhere!", "version": "1.10.0" }, "last_serial": 5308850, "releases": { "0.5.0": [ { "comment_text": "", "digests": { "md5": "76dddf24e11310f00b8041bdead8cfd8", "sha256": "1baeabcefa663fc4f088749bd148dc05595526a94f0c5aee54827215dee968c4" }, "downloads": -1, "filename": "crochet-0.5.0.tar.gz", "has_sig": false, "md5_digest": "76dddf24e11310f00b8041bdead8cfd8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12307, "upload_time": "2013-04-09T14:36:36", "url": "https://files.pythonhosted.org/packages/c6/cc/55b5aca5ba4a411edec5d95e6fbcc89df8854d846d5b1de6470c87104bf5/crochet-0.5.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "64db9b999590371294cf88feb65cf00b", "sha256": "79f061191784c0cf29282ec2115da418fd78b56ac510015a884f3092a5410ac3" }, "downloads": -1, "filename": "crochet-0.7.0.tar.gz", "has_sig": false, "md5_digest": "64db9b999590371294cf88feb65cf00b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11931, "upload_time": "2013-05-24T13:45:58", "url": "https://files.pythonhosted.org/packages/a5/de/f4fa7b621fecb3c4da8cf9b66382f0c99102cbfe8e44aa6a9babb1874ed6/crochet-0.7.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "95a261994eb8e80f09da87122baad34f", "sha256": "80ce82fe822982a6001bf76b452a36fadd39e7086ff2b50f1c0f8ed70bc29319" }, "downloads": -1, "filename": "crochet-0.8.1.tar.gz", "has_sig": false, "md5_digest": "95a261994eb8e80f09da87122baad34f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17206, "upload_time": "2013-08-28T14:43:28", "url": "https://files.pythonhosted.org/packages/a1/39/598d59ad6b4e4c0d3dc7ce85b08b66c789aae7bdce0c02b4d35cbc85d3c4/crochet-0.8.1.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "7be85238e7d455565cdd48426aaf1e43", "sha256": "6ed3f34720cec8dae57fea7a3b12c07467beac1b0b129078c87f957373d682d3" }, "downloads": -1, "filename": "crochet-0.9.0.tar.gz", "has_sig": false, "md5_digest": "7be85238e7d455565cdd48426aaf1e43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29153, "upload_time": "2013-10-07T23:39:15", "url": "https://files.pythonhosted.org/packages/55/95/e198266b51bd4768f22f745625ad61c413099c281a3a9a614be131220cc2/crochet-0.9.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "d6325ce80ce7144ee2307b5d2019f6d1", "sha256": "3acefc43bfe94e91951de8496860f22577672966b20769af88feffbda4eb26f6" }, "downloads": -1, "filename": "crochet-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d6325ce80ce7144ee2307b5d2019f6d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31244, "upload_time": "2013-10-19T15:33:44", "url": "https://files.pythonhosted.org/packages/fb/0d/9537e4c5c36969f0ff3b6cc8f9d3e524c1977b18aef67a1f1aa91230401a/crochet-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "4b5e3fc42b1bda2fa2b463755165891a", "sha256": "5d5221a84d958ba4f25babc43c9bf5950904e5b16d0207bb46d96b0ad2a65759" }, "downloads": -1, "filename": "crochet-1.1.0.tar.gz", "has_sig": false, "md5_digest": "4b5e3fc42b1bda2fa2b463755165891a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32441, "upload_time": "2014-03-14T23:13:27", "url": "https://files.pythonhosted.org/packages/d2/7d/eeb274531c661e767875d35b1260c59a5096e4fe46dde16bd4ee787799a1/crochet-1.1.0.tar.gz" } ], "1.10.0": [ { "comment_text": "", "digests": { "md5": "a42454fdc6efc0bb22d574c7138cb0f7", "sha256": "20da8f68cbc92bee0c8f0e9e0cad9ee8c6c5c90c8a2deb06983a77d9a68fcd8a" }, "downloads": -1, "filename": "crochet-1.10.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a42454fdc6efc0bb22d574c7138cb0f7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27928, "upload_time": "2019-05-23T18:56:42", "url": "https://files.pythonhosted.org/packages/eb/8d/cdb5e6acae3574bb70d6e5db0ada41db3919f5ae0b786e32197d0d6d9884/crochet-1.10.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "176730eaedf994c11c84f8216dd8f876", "sha256": "de0d1c9acfe8200b7ec8cf53ce5878fd20531d55c01199a9ae27936c45ef3c79" }, "downloads": -1, "filename": "crochet-1.10.0.tar.gz", "has_sig": false, "md5_digest": "176730eaedf994c11c84f8216dd8f876", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55538, "upload_time": "2019-05-23T18:56:43", "url": "https://files.pythonhosted.org/packages/fe/53/a5da4485840f83164b582b24a96ec5ebe7497f36db382170f22d4f765af1/crochet-1.10.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "d3681f0968d91d9730cded944519e532", "sha256": "603a450b016792d77cb0432da66b7c0cabba09c59ba8186a8e570f515997db49" }, "downloads": -1, "filename": "crochet-1.2.0.tar.gz", "has_sig": false, "md5_digest": "d3681f0968d91d9730cded944519e532", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33691, "upload_time": "2014-04-14T14:17:28", "url": "https://files.pythonhosted.org/packages/0a/3d/c0146f0bc9fe6193ddbfb2d6c66fc605304a510fde77dce118ef8ee1c370/crochet-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "0913bf2009743cc47b6bdf4e07eb9e89", "sha256": "3f9d51d8258332f886ec40b7776bc403911d0f82a870cf342bb8b24f135541dd" }, "downloads": -1, "filename": "crochet-1.3.0.tar.gz", "has_sig": false, "md5_digest": "0913bf2009743cc47b6bdf4e07eb9e89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44300, "upload_time": "2014-05-31T20:00:35", "url": "https://files.pythonhosted.org/packages/3b/b7/e305fe83de5250e00fe28b7dd17ae04f50ff358eee4a3841551d0f0f33b6/crochet-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "3980cc6ffc7957f91f178cb0156a45f2", "sha256": "d670919334cc95d1edc02327fcb49911a14bf023723cd476c35c96d9dd6f7863" }, "downloads": -1, "filename": "crochet-1.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3980cc6ffc7957f91f178cb0156a45f2", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 28687, "upload_time": "2015-05-07T00:57:25", "url": "https://files.pythonhosted.org/packages/e6/81/2105b723aacde9e113b7397c53ac3b98ebbc61dc19c249d9bd9a65581d59/crochet-1.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a652f7c4f7773ccc3e5a369600054113", "sha256": "51ab1c03bf4317b4a6e2b8bfd15da37674b3494f8f420eacde78e272280ae598" }, "downloads": -1, "filename": "crochet-1.4.0.tar.gz", "has_sig": false, "md5_digest": "a652f7c4f7773ccc3e5a369600054113", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45183, "upload_time": "2015-05-07T00:57:21", "url": "https://files.pythonhosted.org/packages/08/db/1a7b688e68e472f292a92717a2dbc14dda00b47339b99672259dad92a30c/crochet-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "30e304e2784194d5514ee4be71ccbe9d", "sha256": "73b9a56fd4844458067de9ce46d7d6cc84d7315aeeb8c48b3a29af0b26b23b57" }, "downloads": -1, "filename": "crochet-1.5.0.tar.gz", "has_sig": false, "md5_digest": "30e304e2784194d5514ee4be71ccbe9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52950, "upload_time": "2016-04-13T20:06:30", "url": "https://files.pythonhosted.org/packages/2f/13/e8f1652bc6f7e5863c058800056e52662b0e2c2349eaea43b1d10781639b/crochet-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "9d90af5c02eec984419e3faf48784baf", "sha256": "fb8a092baa11d06b68ba916917d1790e429ae70492fc6e6fa485584b62a573ac" }, "downloads": -1, "filename": "crochet-1.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9d90af5c02eec984419e3faf48784baf", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 29741, "upload_time": "2017-01-02T19:41:02", "url": "https://files.pythonhosted.org/packages/3b/9b/894f7769f21d5972d6ad31ce57003e8254d99b8e0010f15da7873ad7d109/crochet-1.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca5f8a30b8ad3c21145b029b9cf7c1b4", "sha256": "cea94be0dec01877f1b187bf83017f556999c23e0909b8187e862b380451732d" }, "downloads": -1, "filename": "crochet-1.6.0.tar.gz", "has_sig": false, "md5_digest": "ca5f8a30b8ad3c21145b029b9cf7c1b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53047, "upload_time": "2017-01-02T19:40:59", "url": "https://files.pythonhosted.org/packages/d8/25/97bdfed382ce9087e0d8b4aa0f097774fd8c53c1a76e2310613808c9d8ba/crochet-1.6.0.tar.gz" } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "35a63880577d12bb480b4870762cf5d2", "sha256": "6f6e24e641bd17362c63879fbda491b2debd894525cf35b30fb91ade180810f6" }, "downloads": -1, "filename": "crochet-1.7.0-py2-none-any.whl", "has_sig": false, "md5_digest": "35a63880577d12bb480b4870762cf5d2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 30605, "upload_time": "2017-06-18T22:07:58", "url": "https://files.pythonhosted.org/packages/e6/93/d0859a40b2cc3e56e960f6dd8ef77bf1405345b88a74238ab1149c3137c5/crochet-1.7.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e49ae0db127d7639b0c4a178923e3f2", "sha256": "c12ee5ec10dae72239bb44655a32b784af32e60bcc0ceb3847c8b53a2ab67f86" }, "downloads": -1, "filename": "crochet-1.7.0.tar.gz", "has_sig": false, "md5_digest": "6e49ae0db127d7639b0c4a178923e3f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53607, "upload_time": "2017-06-18T22:08:00", "url": "https://files.pythonhosted.org/packages/0d/6b/e46c7d88fdeaf751c691e3a45866670edf157afbdcc809118e6ccbc353e8/crochet-1.7.0.tar.gz" } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "31b971cc4af5c096674223ab91a1df65", "sha256": "3e4f46af40066a05a1344ecc8f3be6e85c8cfd74579598190ddc665d7d730b22" }, "downloads": -1, "filename": "crochet-1.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "31b971cc4af5c096674223ab91a1df65", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 31616, "upload_time": "2017-08-09T20:34:09", "url": "https://files.pythonhosted.org/packages/8a/01/e4a1afb1385781fe316978cf25bcceb7715ed1a12f0651954595c783dda1/crochet-1.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff9dad5098254820be11a0199c4c9442", "sha256": "b4d8694bf358ab306bc93d6fe15e992828c350ffcabac25314008758c4427b0b" }, "downloads": -1, "filename": "crochet-1.8.0.tar.gz", "has_sig": false, "md5_digest": "ff9dad5098254820be11a0199c4c9442", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55109, "upload_time": "2017-08-09T20:34:11", "url": "https://files.pythonhosted.org/packages/96/f7/3602bb475290be63c820900e6d926694ae7524631cdc50c833f9b239e159/crochet-1.8.0.tar.gz" } ], "1.9.0": [ { "comment_text": "", "digests": { "md5": "b310949a800572625715be70d24a7268", "sha256": "066c01d6ec11c39cc53032e48adaf1668120d6623132009664b6b4721236551f" }, "downloads": -1, "filename": "crochet-1.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b310949a800572625715be70d24a7268", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 31920, "upload_time": "2017-08-17T18:54:59", "url": "https://files.pythonhosted.org/packages/f1/19/14d1cbda5e1e11977f31932ae0c155cc819bd67eb53fd9097b7570b0768a/crochet-1.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e39017545a6ff56afb6ed8dac3016c1", "sha256": "58c05f141b989c7425d374bb8c8c32b6bc5b6bf2ac69d8b40c28dd40a85a6286" }, "downloads": -1, "filename": "crochet-1.9.0.tar.gz", "has_sig": false, "md5_digest": "6e39017545a6ff56afb6ed8dac3016c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55524, "upload_time": "2017-08-17T18:55:01", "url": "https://files.pythonhosted.org/packages/c0/0a/fc670b5a38783f7a5eae6a924798d1e5a9e25ced923333f58f12ae6d73ca/crochet-1.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a42454fdc6efc0bb22d574c7138cb0f7", "sha256": "20da8f68cbc92bee0c8f0e9e0cad9ee8c6c5c90c8a2deb06983a77d9a68fcd8a" }, "downloads": -1, "filename": "crochet-1.10.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a42454fdc6efc0bb22d574c7138cb0f7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27928, "upload_time": "2019-05-23T18:56:42", "url": "https://files.pythonhosted.org/packages/eb/8d/cdb5e6acae3574bb70d6e5db0ada41db3919f5ae0b786e32197d0d6d9884/crochet-1.10.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "176730eaedf994c11c84f8216dd8f876", "sha256": "de0d1c9acfe8200b7ec8cf53ce5878fd20531d55c01199a9ae27936c45ef3c79" }, "downloads": -1, "filename": "crochet-1.10.0.tar.gz", "has_sig": false, "md5_digest": "176730eaedf994c11c84f8216dd8f876", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55538, "upload_time": "2019-05-23T18:56:43", "url": "https://files.pythonhosted.org/packages/fe/53/a5da4485840f83164b582b24a96ec5ebe7497f36db382170f22d4f765af1/crochet-1.10.0.tar.gz" } ] }