{ "info": { "author": "Tomas Aparicio", "author_email": "tomas+python@aparicio.me", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "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", "Topic :: Software Development", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "paco |Build Status| |PyPI| |Coverage Status| |Documentation Status| |Stability| |Quality| |Versions|\n====================================================================================================\n\nSmall and idiomatic utility library for coroutine-driven asynchronous generic programming in Python +3.4.\n\nBuilt on top of `asyncio`_, ``paco`` provides missing capabilities from Python `stdlib`\nin order to write asynchronous cooperative multitasking in a nice-ish way.\nAlso, paco aims to port some of `functools`_ and `itertools`_ standard functions to the asynchronous world.\n\n``paco`` can be your utility belt to deal with asynchronous, I/O-bound, non-blocking concurrent code in a cleaner and idiomatic way.\n\nFeatures\n--------\n\n- Simple and idiomatic API, extending Python ``stdlib`` with async coroutines gotchas.\n- Built-in configurable control-flow concurrency support (throttle).\n- No fancy abstractions: it just works with the plain asynchronous coroutines.\n- Useful iterables, decorators, functors and convenient helpers.\n- Coroutine-based functional helpers: ``compose``, ``throttle``, ``partial``, ``timeout``, ``times``, ``until``, ``race``...\n- Asynchronous coroutines port of Python built-in functions: `filter`, `map`, `dropwhile`, `filterfalse`, `reduce`...\n- Supports asynchronous iterables and generators (`PEP0525`_)\n- Concurrent iterables and higher-order functions.\n- Better ``asyncio.gather()`` and ``asyncio.wait()`` with optional concurrency control and ordered results.\n- Works with both `async/await`_ and `yield from`_ coroutines syntax.\n- Reliable coroutine timeout limit handler via context manager.\n- Designed for intensive I/O bound concurrent non-blocking tasks.\n- Good interoperability with ``asyncio`` and Python ``stdlib`` functions.\n- `Composable pipelines`_ of functors via ``|`` operator overloading.\n- Small and dependency free.\n- Compatible with Python +3.4.\n\nInstallation\n------------\n\nUsing ``pip`` package manager:\n\n.. code-block:: bash\n\n pip install --upgrade paco\n\nOr install the latest sources from Github:\n\n.. code-block:: bash\n\n pip install -e git+git://github.com/h2non/paco.git#egg=paco\n\n\nAPI\n---\n\n- paco.ConcurrentExecutor_\n- paco.apply_\n- paco.compose_\n- paco.concurrent_\n- paco.constant_\n- paco.curry_\n- paco.defer_\n- paco.dropwhile_\n- paco.each_\n- paco.every_\n- paco.filter_\n- paco.filterfalse_\n- paco.flat_map_\n- paco.gather_\n- paco.identity_\n- paco.interval_\n- paco.map_\n- paco.once_\n- paco.partial_\n- paco.race_\n- paco.reduce_\n- paco.repeat_\n- paco.run_\n- paco.series_\n- paco.some_\n- paco.throttle_\n- paco.thunk_\n- paco.timeout_\n- paco.TimeoutLimit_\n- paco.times_\n- paco.until_\n- paco.wait_\n- paco.whilst_\n- paco.wraps_\n\n\n.. _paco.ConcurrentExecutor: http://paco.readthedocs.io/en/latest/api.html#paco.ConcurrentExecutor\n.. _paco.apply: http://paco.readthedocs.io/en/latest/api.html#paco.apply\n.. _paco.compose: http://paco.readthedocs.io/en/latest/api.html#paco.compose\n.. _paco.concurrent: http://paco.readthedocs.io/en/latest/api.html#paco.concurrent\n.. _paco.constant: http://paco.readthedocs.io/en/latest/api.html#paco.constant\n.. _paco.curry: http://paco.readthedocs.io/en/latest/api.html#paco.curry\n.. _paco.defer: http://paco.readthedocs.io/en/latest/api.html#paco.defer\n.. _paco.dropwhile: http://paco.readthedocs.io/en/latest/api.html#paco.dropwhile\n.. _paco.each: http://paco.readthedocs.io/en/latest/api.html#paco.each\n.. _paco.every: http://paco.readthedocs.io/en/latest/api.html#paco.every\n.. _paco.filter: http://paco.readthedocs.io/en/latest/api.html#paco.filter\n.. _paco.filterfalse: http://paco.readthedocs.io/en/latest/api.html#paco.filterfalse\n.. _paco.flat_map: http://paco.readthedocs.io/en/latest/api.html#paco.flat_map\n.. _paco.gather: http://paco.readthedocs.io/en/latest/api.html#paco.gather\n.. _paco.identity: http://paco.readthedocs.io/en/latest/api.html#paco.identity\n.. _paco.interval: http://paco.readthedocs.io/en/latest/api.html#paco.interval\n.. _paco.map: http://paco.readthedocs.io/en/latest/api.html#paco.map\n.. _paco.once: http://paco.readthedocs.io/en/latest/api.html#paco.once\n.. _paco.partial: http://paco.readthedocs.io/en/latest/api.html#paco.partial\n.. _paco.race: http://paco.readthedocs.io/en/latest/api.html#paco.race\n.. _paco.reduce: http://paco.readthedocs.io/en/latest/api.html#paco.reduce\n.. _paco.repeat: http://paco.readthedocs.io/en/latest/api.html#paco.repeat\n.. _paco.run: http://paco.readthedocs.io/en/latest/api.html#paco.run\n.. _paco.series: http://paco.readthedocs.io/en/latest/api.html#paco.series\n.. _paco.some: http://paco.readthedocs.io/en/latest/api.html#paco.some\n.. _paco.throttle: http://paco.readthedocs.io/en/latest/api.html#paco.throttle\n.. _paco.thunk: http://paco.readthedocs.io/en/latest/api.html#paco.thunk\n.. _paco.timeout: http://paco.readthedocs.io/en/latest/api.html#paco.timeout\n.. _paco.TimeoutLimit: http://paco.readthedocs.io/en/latest/api.html#paco.TimeoutLimit\n.. _paco.times: http://paco.readthedocs.io/en/latest/api.html#paco.times\n.. _paco.until: http://paco.readthedocs.io/en/latest/api.html#paco.until\n.. _paco.wait: http://paco.readthedocs.io/en/latest/api.html#paco.wait\n.. _paco.whilst: http://paco.readthedocs.io/en/latest/api.html#paco.whilst\n.. _paco.wraps: http://paco.readthedocs.io/en/latest/api.html#paco.wraps\n\n\nExamples\n^^^^^^^^\n\nAsynchronously and concurrently execute multiple HTTP requests.\n\n.. code-block:: python\n\n import paco\n import aiohttp\n\n async def fetch(url):\n async with aiohttp.ClientSession() as session:\n async with session.get(url) as res:\n return res\n\n async def fetch_urls():\n urls = [\n 'https://www.google.com',\n 'https://www.yahoo.com',\n 'https://www.bing.com',\n 'https://www.baidu.com',\n 'https://duckduckgo.com',\n ]\n\n # Map concurrent executor with concurrent limit of 3\n responses = await paco.map(fetch, urls, limit=3)\n\n for res in responses:\n print('Status:', res.status)\n\n # Run in event loop\n paco.run(fetch_urls())\n\n\n\nConcurrent pipeline-style composition of transform functors over an iterable object.\n\n.. code-block:: python\n\n import paco\n\n async def filterer(x):\n return x < 8\n\n async def mapper(x):\n return x * 2\n\n async def drop(x):\n return x < 10\n\n async def reducer(acc, x):\n return acc + x\n\n async def task(numbers):\n return await (numbers\n | paco.filter(filterer)\n | paco.map(mapper)\n | paco.dropwhile(drop)\n | paco.reduce(reducer, initializer=0))\n\n # Run in event loop\n number = paco.run(task((1, 2, 3, 4, 5, 6, 7, 8, 9, 10)))\n print('Number:', number) # => 36\n\nLicense\n-------\n\nMIT - Tomas Aparicio\n\n.. _asynchronous: http://python.org\n.. _asyncio: https://docs.python.org/3.5/library/asyncio.html\n.. _Python: http://python.org\n.. _annotated API reference: https://h2non.github.io/paco\n.. _async/await: https://www.python.org/dev/peps/pep-0492/\n.. _yield from: https://www.python.org/dev/peps/pep-0380/\n.. _Composable pipelines: #examples\n.. _itertools: https://docs.python.org/3/library/itertools.html\n.. _functools: https://docs.python.org/3/library/functools.html\n.. _PEP0525: https://www.python.org/dev/peps/pep-0525/\n\n.. |Build Status| image:: https://travis-ci.org/h2non/paco.svg?branch=master\n :target: https://travis-ci.org/h2non/paco\n.. |PyPI| image:: https://img.shields.io/pypi/v/paco.svg?maxAge=2592000?style=flat-square\n :target: https://pypi.python.org/pypi/paco\n.. |Coverage Status| image:: https://coveralls.io/repos/github/h2non/paco/badge.svg?branch=master\n :target: https://coveralls.io/github/h2non/paco?branch=master\n.. |Documentation Status| image:: https://img.shields.io/badge/docs-latest-green.svg?style=flat\n :target: http://paco.readthedocs.io/en/latest/?badge=latest\n.. |Quality| image:: https://codeclimate.com/github/h2non/paco/badges/gpa.svg\n :target: https://codeclimate.com/github/h2non/paco\n.. |Stability| image:: https://img.shields.io/pypi/status/paco.svg\n :target: https://pypi.python.org/pypi/paco\n.. |Versions| image:: https://img.shields.io/pypi/pyversions/paco.svg\n :target: https://pypi.python.org/pypi/paco\n\n\n\nHistory\n=======\n\nv0.2.3 / 2018-10-23\n-------------------\n\n * Merge pull request #42 from dylanjw/fix_syntax_error\n * Use getattr to avoid async keyword\n\n0.2.2 / 2018-10-09\n------------------\n\n * Merge pull request #40 from thatmattbone/master\n * add loop param to paco.interval()\n * fix(setup): use space based indentation\n * fix(travis): use cpython 3.7-dev release\n * refactor(errors): use \"paco\" prefix in exception messages\n * chore(History): add version changes\n\nv0.2.1 / 2018-03-21\n-------------------\n\n* fix(#37): allow overload function signatures with variadic arguments\n* refactor(timeout_test): remove print statement\n* fix(docs): bad link to API reference\n* refactor(docs): remove codesponsor\n\nv0.2.0 / 2017-10-21\n-------------------\n\n* refactor(api): API breaking change that modifies behavior by raising any legit exception generated by a coroutine.\n* feat(examples): add examples file\n* feat(v2): v2 pre-release, propagate raise exception if return_exceptions is False\n* refactor(tests): add map error exception assertion test\n* Merge branch 'master' of https://github.com/h2non/paco\n* refactor(tests): add map error exception assertion test\n* feat(docs): add sponsor banner\n* feat(docs): add sponsor banner\n* feat(LICENSE): update copyright year\n* Update setup.py\n\nv0.1.11 / 2017-01-28\n--------------------\n\n* feat(api): add ``paco.interval`` function.\n\nv0.1.10 / 2017-01-11\n--------------------\n\n* fix(each.py,map.py): fixed `return_exceptions` kwarg\n* fix(setup.py): add author email\n* fix(Makefile): remove package file\n\nv0.1.9 / 2017-01-06\n-------------------\n\n* feat(api): add identity function\n* feat(#31): add thunk function\n* feat(package): add wheel package distribution\n* refactor(wraps): simplify implementation\n* fix(History): remove indentation\n\nv0.1.8 / 2016-12-29\n-------------------\n\n* feat(requirements): force upgrade setuptools\n* feat(#29): support async iterable and generators\n* fix(docs): link to examples\n* chore(travis): use Python 3.6 stable release\n\n0.1.7 / 2016-12-18\n------------------\n\n* feat(#26): add curry function.\n\n0.1.6 / 2016-12-11\n------------------\n\n* feat(pipe): isolate pipe operator overload code\n* refactor: decorator and util functions\n* feat(#11): timeout limit context manager.\n* refactor(core): several minor refactors\n* fix(docs): comment out latex sphinx settings\n* fix(docs): use current package version\n* Documentation examples improvements (#27)\n* feat(history): update\n* feat: add pool length magic method\n\n0.1.5 (2016-12-04)\n------------------\n\n* fix(#25): allow empty iterables in iterators functions, such as ``map``, ``filter``, ``reduce``.\n\n0.1.4 (2016-11-28)\n------------------\n\n* fix(#24): explicitly pass loop instance to ``asyncio.wait``.\n\n0.1.3 (2016-10-27)\n------------------\n\n* feat(#17): add ``flat_map`` function.\n* feat(#18): add pipeline-style operator overloading composition.\n\n0.1.2 (2016-10-25)\n------------------\n\n* fix(setup.py): fix pip installation.\n* refactor(api): minor refactors in several functions and tests.\n\n0.1.1 (2016-10-24)\n------------------\n\n* refactor(name): use new project name.\n\n0.1.0 (2016-10-23)\n------------------\n\n* First version (beta)\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/h2non/paco", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "paco", "package_url": "https://pypi.org/project/paco/", "platform": "", "project_url": "https://pypi.org/project/paco/", "project_urls": { "Homepage": "https://github.com/h2non/paco" }, "release_url": "https://pypi.org/project/paco/0.2.3/", "requires_dist": null, "requires_python": "", "summary": "Small utility library for coroutine-based asynchronous generic programming", "version": "0.2.3" }, "last_serial": 4405497, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "7e6577ef3229284d090dbef96cdc8989", "sha256": "44f4c6c0992a1b205855be81db2f9fad153f14a2b0857cc6f4603e40151524c9" }, "downloads": -1, "filename": "paco-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7e6577ef3229284d090dbef96cdc8989", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18590, "upload_time": "2016-10-23T23:55:43", "url": "https://files.pythonhosted.org/packages/93/b8/f8d26111ef7e716c0979eed5d68d7048405a40c55abbbc2690ed23233493/paco-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "52d3b530062241c1687882c4786b95b0", "sha256": "7cf4bb76e301759e62a712a3365fa16f1d0b286070a9c740328ba6b2d72ba1da" }, "downloads": -1, "filename": "paco-0.1.1.tar.gz", "has_sig": false, "md5_digest": "52d3b530062241c1687882c4786b95b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17170, "upload_time": "2016-10-24T00:04:56", "url": "https://files.pythonhosted.org/packages/07/70/0b918111a27c65ddd96ed3a87af854eed977617984169a4cef81bfa0dcb7/paco-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "7305d707e8152a6600110e7b83911e17", "sha256": "56d8c7e22c69be14387c4b2d2108256d27f46a998eaa4f6d4b2f08275579ef02" }, "downloads": -1, "filename": "paco-0.1.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7305d707e8152a6600110e7b83911e17", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 44701, "upload_time": "2017-01-11T09:50:33", "url": "https://files.pythonhosted.org/packages/fb/f5/30b86ce1b35a6b8fc9866e6f0e0db233dd267f8faad42bf5c6e18422e72a/paco-0.1.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b934c2fcfd09aba536aa45e8ac0e520", "sha256": "a8d6a1dc215ffdcee7a3f5f8cef7ca70160310f185d9f2cb508efea7ea0827d2" }, "downloads": -1, "filename": "paco-0.1.10.tar.gz", "has_sig": false, "md5_digest": "8b934c2fcfd09aba536aa45e8ac0e520", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25269, "upload_time": "2017-01-11T09:50:30", "url": "https://files.pythonhosted.org/packages/ce/4d/f8fd7ced8d7d810f58543fa59bd807ba60c4a41567c995b969eb92c28553/paco-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "e7a5a908c2d09599b18b55c79874cc5a", "sha256": "bf4266915467f51d86ae71f446f2bd812cd6f913a798a09dfad6e1c8de4db362" }, "downloads": -1, "filename": "paco-0.1.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e7a5a908c2d09599b18b55c79874cc5a", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 45675, "upload_time": "2017-01-28T17:53:05", "url": "https://files.pythonhosted.org/packages/6f/20/c1a8dfb69722c96b286f821d11617d38641419e38f851f512c564e175dfe/paco-0.1.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25f7339b17cdb83aa22f9c84ad0a848d", "sha256": "565a81da830de037f8737d8363d36e7710a1ec26d0d6cf11c94be5ca9a1e5130" }, "downloads": -1, "filename": "paco-0.1.11.tar.gz", "has_sig": false, "md5_digest": "25f7339b17cdb83aa22f9c84ad0a848d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25838, "upload_time": "2017-01-28T17:53:02", "url": "https://files.pythonhosted.org/packages/ad/37/830312dfccc380f79de931a985abd9357e211a553ac582f5cae680590447/paco-0.1.11.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "bdb9940782212301782112b6615f231f", "sha256": "fd51d808847e536b544b5135649ab3fd9186f81dcc6f0c730e77a36704980e2f" }, "downloads": -1, "filename": "paco-0.1.2.tar.gz", "has_sig": false, "md5_digest": "bdb9940782212301782112b6615f231f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18493, "upload_time": "2016-10-25T08:43:45", "url": "https://files.pythonhosted.org/packages/a8/14/9f4da618e2dc4310f25b28f9c94b636122327b13b658e77699baf94a0dbb/paco-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "c40f81845b23c72bb29ffe9228ca672e", "sha256": "65a2904c1729849dd9e4ce524d7f28f51ea51f211b74425b3a5db48913e01aae" }, "downloads": -1, "filename": "paco-0.1.3.tar.gz", "has_sig": false, "md5_digest": "c40f81845b23c72bb29ffe9228ca672e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20113, "upload_time": "2016-10-27T21:24:41", "url": "https://files.pythonhosted.org/packages/54/62/aa53c0611dbe5c83ccad02cc7917cec61f025fffc544849036df15531ccc/paco-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "7abf79ee93f58bc3e8fd00989dc46430", "sha256": "ab295ae36651d8f6b25108cd2badae79734a3d654fd9c10c75bbf814bc8b93c6" }, "downloads": -1, "filename": "paco-0.1.4.tar.gz", "has_sig": false, "md5_digest": "7abf79ee93f58bc3e8fd00989dc46430", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20213, "upload_time": "2016-11-29T21:44:26", "url": "https://files.pythonhosted.org/packages/bc/50/55f94a435652ff25fc1842da33dc6f42de6925b649c1d617986791b441f6/paco-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "4979753ae8a9945e92f7e6a828d1f0a2", "sha256": "593812738d7eaff855f287b5ef6f65cbbc5ee150cf4a0e6532a8c0f83f31dd77" }, "downloads": -1, "filename": "paco-0.1.5.tar.gz", "has_sig": false, "md5_digest": "4979753ae8a9945e92f7e6a828d1f0a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20620, "upload_time": "2016-12-04T00:48:18", "url": "https://files.pythonhosted.org/packages/ce/33/6e90364f195caa1b6d6cad59cdc7107673ab250113485b0ff13fecf56c75/paco-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "3bba459a37e7f9650bcb53b26ed0e1b4", "sha256": "c59bcd813f43ee0fa4519c974a3345ac444d28ae429de91356e82b7fe9e78f7d" }, "downloads": -1, "filename": "paco-0.1.6.tar.gz", "has_sig": false, "md5_digest": "3bba459a37e7f9650bcb53b26ed0e1b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22009, "upload_time": "2016-12-11T15:42:36", "url": "https://files.pythonhosted.org/packages/75/8c/29b1b69fbc67409297b9fd5b17f69a0526a65f0b34db790481b1694c68b2/paco-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "08dbe41ae89416ea995d65bccd5a355d", "sha256": "f8d8f2436d35d58ba0f15334f810af3af486de871aa02a24240845d8e79de4d3" }, "downloads": -1, "filename": "paco-0.1.7.tar.gz", "has_sig": false, "md5_digest": "08dbe41ae89416ea995d65bccd5a355d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23497, "upload_time": "2016-12-18T00:28:27", "url": "https://files.pythonhosted.org/packages/ac/db/3ac7cc403e703a82ae17f79ca2ed9322b51fa0889cc307249057d2b83b0e/paco-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "13bdb25916e42492424635439a3c07f4", "sha256": "cb23e8198d39c6d87901c95700a60fbdc8d211c1c4554e0a5eabeb82b238106f" }, "downloads": -1, "filename": "paco-0.1.8.tar.gz", "has_sig": false, "md5_digest": "13bdb25916e42492424635439a3c07f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24470, "upload_time": "2016-12-29T18:47:54", "url": "https://files.pythonhosted.org/packages/21/f7/12117b7799b65a89c14371821d755bd86e569bd75374f6276b405207fd3d/paco-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "92037891e92ca5c9e6fa86b4dec93ef1", "sha256": "a24187bc99745168c88804ad10cec0be53da1daa933df9245edf0baee6ab3531" }, "downloads": -1, "filename": "paco-0.1.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "92037891e92ca5c9e6fa86b4dec93ef1", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 44523, "upload_time": "2017-01-06T22:39:39", "url": "https://files.pythonhosted.org/packages/a4/75/8788aaf29c83269471caf1de3d1dc67ceeb02cb2ef1d80a4d365c67ef2d0/paco-0.1.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a53aa89dc45d78277131ec7b17e73a2a", "sha256": "ac8e4b80af403fd690ac644b59821e81a517782c069f558635c66dc5edfbc634" }, "downloads": -1, "filename": "paco-0.1.9.tar.gz", "has_sig": false, "md5_digest": "a53aa89dc45d78277131ec7b17e73a2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25070, "upload_time": "2017-01-06T22:37:44", "url": "https://files.pythonhosted.org/packages/b3/42/cbae46b311d7b1f8e86ff012e8a8d26331623ea2fb32ff0adf275c9147e4/paco-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2cfbaabde4f43915332389cc790d78c7", "sha256": "b0592948e2974ce7e589b17bd5616845967d11c53742f62413aca3c393b55a0c" }, "downloads": -1, "filename": "paco-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2cfbaabde4f43915332389cc790d78c7", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 46563, "upload_time": "2017-10-22T10:04:07", "url": "https://files.pythonhosted.org/packages/91/2f/f53b4d1aecbe4166b2fb9694c5dfdcdf771b7e1d6de00dbac5697efffc26/paco-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3832f1ba4242931303d57fe4ac52015", "sha256": "ba8c4d6fc9638eeff65864d4e48bcbc67dd1eab6a0e7b8ff538a976be8965730" }, "downloads": -1, "filename": "paco-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a3832f1ba4242931303d57fe4ac52015", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26536, "upload_time": "2017-10-22T10:04:04", "url": "https://files.pythonhosted.org/packages/b0/ef/bcc369317b3c3e15df07f8017213cd0392af0d9a09b3d692f4fc53c81834/paco-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "d42f980c7b68097df1d4abdd5e8d1bc2", "sha256": "3d90dd28c797f8366cd73097e527476701f48c9cfc75e84b512adad5e06e9e3d" }, "downloads": -1, "filename": "paco-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d42f980c7b68097df1d4abdd5e8d1bc2", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 46500, "upload_time": "2018-03-21T23:18:45", "url": "https://files.pythonhosted.org/packages/df/2e/e14d457a6e38cba4524e72e791a3e1da27367be7dc3a6ce4289d79438df0/paco-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b160b43ed6899d69a2d942888623d9b", "sha256": "55bcd795be19a1d05fe0ff33f2f8389fbd16d67890caadf8ea36cdcede11e199" }, "downloads": -1, "filename": "paco-0.2.1.tar.gz", "has_sig": false, "md5_digest": "7b160b43ed6899d69a2d942888623d9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26034, "upload_time": "2018-03-21T23:18:41", "url": "https://files.pythonhosted.org/packages/e0/b7/ee2263f38038ff517aa18260b476bc288013633132d16ba3de87be41312c/paco-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "735b621645380d3cf16e311d0eeee92d", "sha256": "f465da57e1b2b55d5d42ec90121d2f1a67550852df19e9350091f99d696f4740" }, "downloads": -1, "filename": "paco-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "735b621645380d3cf16e311d0eeee92d", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 46801, "upload_time": "2018-10-09T20:13:39", "url": "https://files.pythonhosted.org/packages/96/bd/fce561240401d5a5195926d68fe3887aa925a52ebc7149c8729de677e547/paco-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5e1c7d61ca9440babedc72f65bebc2e0", "sha256": "a7cc59fd2f15b7ee84b0b588a6a8c2326d41b6aea910d7f2edefdddbd4325f8c" }, "downloads": -1, "filename": "paco-0.2.2.tar.gz", "has_sig": false, "md5_digest": "5e1c7d61ca9440babedc72f65bebc2e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26246, "upload_time": "2018-10-09T20:13:34", "url": "https://files.pythonhosted.org/packages/28/f4/1fa525cf2c8cb0d61957876613078a3231d52aeeccba5709f84a35a58840/paco-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "c55755a99c542857d4637720ae2aad83", "sha256": "89c588c6c48c5dc0d7ed04c883727cb9826fcd3796e6b1f8cac139619a203536" }, "downloads": -1, "filename": "paco-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c55755a99c542857d4637720ae2aad83", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 46917, "upload_time": "2018-10-23T08:27:27", "url": "https://files.pythonhosted.org/packages/62/a7/fe444d558d2d914876ba9142e5c3c9be1fdba7fc47a477a4c8f231d371e8/paco-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04f4ae3897d644ded10c2c51bdb9f9ee", "sha256": "f28b656b523f59a4628f9ca07444b975c5a7ffca79a3eda1bb34a773b7d55d37" }, "downloads": -1, "filename": "paco-0.2.3.tar.gz", "has_sig": false, "md5_digest": "04f4ae3897d644ded10c2c51bdb9f9ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26333, "upload_time": "2018-10-23T08:27:23", "url": "https://files.pythonhosted.org/packages/4f/c8/01e366a57f0e1249cfe59c0a76431e67cbedb871c4a108bf840df5506bdb/paco-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c55755a99c542857d4637720ae2aad83", "sha256": "89c588c6c48c5dc0d7ed04c883727cb9826fcd3796e6b1f8cac139619a203536" }, "downloads": -1, "filename": "paco-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c55755a99c542857d4637720ae2aad83", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 46917, "upload_time": "2018-10-23T08:27:27", "url": "https://files.pythonhosted.org/packages/62/a7/fe444d558d2d914876ba9142e5c3c9be1fdba7fc47a477a4c8f231d371e8/paco-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04f4ae3897d644ded10c2c51bdb9f9ee", "sha256": "f28b656b523f59a4628f9ca07444b975c5a7ffca79a3eda1bb34a773b7d55d37" }, "downloads": -1, "filename": "paco-0.2.3.tar.gz", "has_sig": false, "md5_digest": "04f4ae3897d644ded10c2c51bdb9f9ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26333, "upload_time": "2018-10-23T08:27:23", "url": "https://files.pythonhosted.org/packages/4f/c8/01e366a57f0e1249cfe59c0a76431e67cbedb871c4a108bf840df5506bdb/paco-0.2.3.tar.gz" } ] }