{
"info": {
"author": "Syrus Akbary",
"author_email": "me@syrusakbary.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Software Development :: Libraries"
],
"description": "Promise\n=======\n\nThis is a implementation of Promises in Python. It is a super set of\nPromises/A+ designed to have readable, performant code and to provide\njust the extensions that are absolutely necessary for using promises in\nPython.\n\nIts fully compatible with the `Promises/A+\nspec `__\n\n|travis| |pypi| |coveralls|\n\nInstallation\n------------\n\n::\n\n $ pip install promise\n\nUsage\n-----\n\nThe example below shows how you can load the promise library. It then\ndemonstrates creating a promise from scratch. You simply call\n``Promise(fn)``. There is a complete specification for what is returned\nby this method in\n`Promises/A+ `__.\n\n.. code:: python\n\n from promise import Promise\n\n promise = Promise(\n lambda resolve, reject: resolve('RESOLVED!')\n )\n\nAPI\n---\n\nBefore all examples, you will need:\n\n.. code:: python\n\n from promise import Promise\n\nPromise(resolver)\n~~~~~~~~~~~~~~~~~\n\nThis creates and returns a new promise. ``resolver`` must be a function.\nThe ``resolver`` function is passed two arguments:\n\n1. ``resolve`` should be called with a single argument. If it is called\n with a non-promise value then the promise is fulfilled with that\n value. If it is called with a promise (A) then the returned promise\n takes on the state of that new promise (A).\n2. ``reject`` should be called with a single argument. The returned\n promise will be rejected with that argument.\n\nClass Methods\n~~~~~~~~~~~~~\n\nThese methods are invoked by calling ``Promise.methodName``.\n\nPromise.resolve(value)\n^^^^^^^^^^^^^^^^^^^^^^\n\nConverts values and foreign promises into Promises/A+ promises. If you\npass it a value then it returns a Promise for that value. If you pass it\nsomething that is close to a promise (such as a jQuery attempt at a\npromise) it returns a Promise that takes on the state of ``value``\n(rejected or fulfilled).\n\nPromise.reject(value)\n^^^^^^^^^^^^^^^^^^^^^\n\nReturns a rejected promise with the given value.\n\nPromise.all(list)\n^^^^^^^^^^^^^^^^^\n\nReturns a promise for a list. If it is called with a single argument\nthen this returns a promise for a copy of that list with any promises\nreplaced by their fulfilled values. e.g.\n\n.. code:: python\n\n p = Promise.all([Promise.resolve('a'), 'b', Promise.resolve('c')]) \\\n .then(lambda res: res == ['a', 'b', 'c'])\n\n assert p.get() is True\n\nPromise.cast(obj)\n^^^^^^^^^^^^^^^^^\n\nThis function wraps the ``obj`` act as a ``Promise`` if possible. Python\n``Future``\\ s are supported, with a callback to ``promise.done`` when\nresolved. Have the same effects as ``Promise.resolve(obj)``.\n\nPromise.for\\_dict(d)\n^^^^^^^^^^^^^^^^^^^^\n\nA special function that takes a dictionary of promises and turns them\ninto a promise for a dictionary of values. In other words, this turns an\ndictionary of promises for values into a promise for a dictionary of\nvalues.\n\nPromise.is\\_thenable(obj)\n^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThis function checks if the ``obj`` is a ``Promise``, or could be\n``cast``\\ ed.\n\nPromise.promisify(func)\n^^^^^^^^^^^^^^^^^^^^^^^\n\nThis function wraps the result of calling ``func`` in a ``Promise``\ninstance.\n\nInstance Methods\n~~~~~~~~~~~~~~~~\n\nThese methods are invoked on a promise instance by calling\n``myPromise.methodName``\n\npromise.then(did\\_fulfill, did\\_reject)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThis method follows the `Promises/A+\nspec `__. It explains\nthings very clearly so I recommend you read it.\n\nEither ``did_fulfill`` or ``did_reject`` will be called and they will\nnot be called more than once. They will be passed a single argument and\nwill always be called asynchronously (in the next turn of the event\nloop).\n\nIf the promise is fulfilled then ``did_fulfill`` is called. If the\npromise is rejected then ``did_reject`` is called.\n\nThe call to ``.then`` also returns a promise. If the handler that is\ncalled returns a promise, the promise returned by ``.then`` takes on the\nstate of that returned promise. If the handler that is called returns a\nvalue that is not a promise, the promise returned by ``.then`` will be\nfulfilled with that value. If the handler that is called throws an\nexception then the promise returned by ``.then`` is rejected with that\nexception.\n\npromise.catch(did\\_reject)\n^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSugar for ``promise.then(None, did_reject)``, to mirror ``catch`` in\nsynchronous code.\n\npromise.done(did\\_fulfill, did\\_reject)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThe same semantics as ``.then`` except that it does not return a promise\nand any exceptions are re-thrown so that they can be logged (crashing\nthe application in non-browser environments)\n\nContributing\n============\n\nAfter cloning this repo, ensure dependencies are installed by running:\n\n.. code:: sh\n\n pip install -e \".[test]\"\n\nAfter developing, the full test suite can be evaluated by running:\n\n.. code:: sh\n\n py.test tests --cov=promise --benchmark-skip # Use -v -s for verbose mode\n\nYou can also run the benchmarks with:\n\n.. code:: sh\n\n py.test tests --benchmark-only\n\nStatic type checking\n--------------------\n\nPython type annotations are very useful for making sure we use the\nlibary the way is intended.\n\nYou can run ``mypy`` static type checker:\n\n.. code:: sh\n\n pip install mypy\n mypy promise --ignore-missing-imports\n\nOr ``pyre``:\n\n.. code:: sh\n\n pip install pyre-check\n pyre --source-directory promise check\n\nNotes\n=====\n\nThis package is heavily insipired in\n`aplus `__.\n\nLicense\n-------\n\n`MIT\nLicense `__\n\n.. |travis| image:: https://img.shields.io/travis/syrusakbary/promise.svg?style=flat\n :target: https://travis-ci.org/syrusakbary/promise\n.. |pypi| image:: https://img.shields.io/pypi/v/promise.svg?style=flat\n :target: https://pypi.python.org/pypi/promise\n.. |coveralls| image:: https://coveralls.io/repos/syrusakbary/promise/badge.svg?branch=master&service=github\n :target: https://coveralls.io/github/syrusakbary/promise?branch=master\n",
"description_content_type": "",
"docs_url": null,
"download_url": "https://github.com/syrusakbary/promise/releases",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/syrusakbary/promise",
"keywords": "concurrent future deferred promise",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "promise",
"package_url": "https://pypi.org/project/promise/",
"platform": "",
"project_url": "https://pypi.org/project/promise/",
"project_urls": {
"Download": "https://github.com/syrusakbary/promise/releases",
"Homepage": "https://github.com/syrusakbary/promise"
},
"release_url": "https://pypi.org/project/promise/2.2.1/",
"requires_dist": null,
"requires_python": "",
"summary": "Promises/A+ implementation for Python",
"version": "2.2.1"
},
"last_serial": 4342037,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "142830cf2fa7f870ff1735e60a82abbd",
"sha256": "c2da3af5f1695077a8c130e5f05f308afae5030343925be2bdc9cffad995d678"
},
"downloads": -1,
"filename": "promise-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "142830cf2fa7f870ff1735e60a82abbd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16511,
"upload_time": "2009-11-26T02:34:35",
"url": "https://files.pythonhosted.org/packages/2c/be/f9e01d392107df0e35f88c1d3ca4d9994a84d962214fe155c72bebe1e851/promise-0.1.0.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "f62e80613e5447294d9e48f488be2a1d",
"sha256": "bd8c3ed58092547c19bf5d321a5a6eb574e8327ff7c9e7b30b463beb54f5cb84"
},
"downloads": -1,
"filename": "promise-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "f62e80613e5447294d9e48f488be2a1d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17804,
"upload_time": "2009-12-08T06:21:44",
"url": "https://files.pythonhosted.org/packages/96/22/7ab1480ca9de349c380a4fbdf1a1ebcbfe2adef5a6183a26a0a9d88b8c6c/promise-0.2.0.tar.gz"
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "7ba287ad9b1c93e8ee77090153cc5b0f",
"sha256": "edbc51aa90318c9157f980b715e614543c863b86add41be70885c649cceef343"
},
"downloads": -1,
"filename": "promise-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "7ba287ad9b1c93e8ee77090153cc5b0f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18523,
"upload_time": "2010-01-06T12:54:29",
"url": "https://files.pythonhosted.org/packages/f6/07/fcd91d39d6f80c4c9a314efa28dbff33c91ef9aaf94169bcee09aa70d50f/promise-0.2.1.tar.gz"
}
],
"0.2.2": [
{
"comment_text": "",
"digests": {
"md5": "31855fcb6771fb97afc999733b1c28b6",
"sha256": "1fb52a23bee47644819c4a11b0b7169474625c44629f9b76a04cf59e118f4f6c"
},
"downloads": -1,
"filename": "promise-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "31855fcb6771fb97afc999733b1c28b6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19765,
"upload_time": "2011-04-14T05:46:17",
"url": "https://files.pythonhosted.org/packages/13/ee/eb8413c7e46f2dc110454e366b3ccf39e6db765749c8daf01a625c33323f/promise-0.2.2.tar.gz"
}
],
"0.4": [
{
"comment_text": "",
"digests": {
"md5": "b9fd5db07c313aa7025339ee92664d8a",
"sha256": "29433ac4a9eb5815f40487b1eefd0ca3f0df0ca0ce279e422234eeda014aab8e"
},
"downloads": -1,
"filename": "promise-0.4.tar.gz",
"has_sig": false,
"md5_digest": "b9fd5db07c313aa7025339ee92664d8a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6824,
"upload_time": "2016-05-18T05:30:17",
"url": "https://files.pythonhosted.org/packages/54/4c/7f11cf1e670e537391ab304c160b8c5cdff756cc70bb5d8b1c2774a2117a/promise-0.4.tar.gz"
}
],
"0.4.1": [
{
"comment_text": "",
"digests": {
"md5": "740b807b11b7b21aaaee91340dc907f4",
"sha256": "75a8427f8d2f670067154acb08048fd2b52f4f5c836f15c07a2c073b8d4eb1d4"
},
"downloads": -1,
"filename": "promise-0.4.1.tar.gz",
"has_sig": false,
"md5_digest": "740b807b11b7b21aaaee91340dc907f4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6877,
"upload_time": "2016-06-01T05:11:08",
"url": "https://files.pythonhosted.org/packages/b0/04/f36592e57b0327175a37b55c2a22cc8f889839f3b61bc7e2da1970c82441/promise-0.4.1.tar.gz"
}
],
"0.4.2": [
{
"comment_text": "",
"digests": {
"md5": "8bd927abe12ebce1718b12c29345149d",
"sha256": "70646a304676fcd021b1b984c1dcc3953c5d569f2f9f52a0fcb2b44191ae29cc"
},
"downloads": -1,
"filename": "promise-0.4.2.tar.gz",
"has_sig": false,
"md5_digest": "8bd927abe12ebce1718b12c29345149d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7309,
"upload_time": "2016-06-21T08:37:58",
"url": "https://files.pythonhosted.org/packages/8b/e0/7da87005df50169833697637c1e8192f7a7ff72ffc39978833fde18c93da/promise-0.4.2.tar.gz"
}
],
"0.4.3": [
{
"comment_text": "",
"digests": {
"md5": "36424ff3cb29f4331dbd14eefb58d54b",
"sha256": "fb7b5e0c33b302959350baa58e84314443c2077477f21a9f49000787eb52300f"
},
"downloads": -1,
"filename": "promise-0.4.3.tar.gz",
"has_sig": false,
"md5_digest": "36424ff3cb29f4331dbd14eefb58d54b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7419,
"upload_time": "2016-10-12T05:54:42",
"url": "https://files.pythonhosted.org/packages/e6/d9/6e11b90ef27194ffa31f0979ee58e38bda062ddba57810c2b759d4e50d55/promise-0.4.3.tar.gz"
}
],
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "41848184c16b0c2315121da6b4966044",
"sha256": "0581192a57cfd46701def9bc620374f3efac7f299a91057e6f95ec8971d02fb3"
},
"downloads": -1,
"filename": "promise-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "41848184c16b0c2315121da6b4966044",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7810,
"upload_time": "2016-10-15T22:50:08",
"url": "https://files.pythonhosted.org/packages/a0/0b/c87a4f5db0207f727550890eac3d9c2df98c229aabe19867cf89ac27a491/promise-1.0.0.tar.gz"
}
],
"1.0.1": [
{
"comment_text": "",
"digests": {
"md5": "c285831b14dad740b4f574dff18ec765",
"sha256": "c18c66b506e7d896d80a87344d3fb3653a491cd1cb948abca705730044ee3824"
},
"downloads": -1,
"filename": "promise-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "c285831b14dad740b4f574dff18ec765",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7835,
"upload_time": "2016-12-02T05:00:38",
"url": "https://files.pythonhosted.org/packages/6a/66/e71ab1cfd7a218f811d0bac7f52e04ec7b78ed6b073a418658cd07584981/promise-1.0.1.tar.gz"
}
],
"2.0": [
{
"comment_text": "",
"digests": {
"md5": "fda4fd32e1f9c9aacbe988656df4df95",
"sha256": "58a0f7c94e240c356ab85811b5c710af2f84a8f793d9f2649481bf4a362d6e87"
},
"downloads": -1,
"filename": "promise-2.0.tar.gz",
"has_sig": false,
"md5_digest": "fda4fd32e1f9c9aacbe988656df4df95",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18497,
"upload_time": "2017-04-19T05:39:16",
"url": "https://files.pythonhosted.org/packages/9e/91/6969fe80207a9949a802759274e0c18ad47f2f52d79c1395656596d5182e/promise-2.0.tar.gz"
}
],
"2.0.1": [
{
"comment_text": "",
"digests": {
"md5": "40606222b53a3bfa6da3b5a1c45c08c0",
"sha256": "1b91019ef10a2fd202f3132eab99318dd222cbd1cc9ba49c463a942709711c1b"
},
"downloads": -1,
"filename": "promise-2.0.1.tar.gz",
"has_sig": false,
"md5_digest": "40606222b53a3bfa6da3b5a1c45c08c0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18516,
"upload_time": "2017-04-25T07:36:38",
"url": "https://files.pythonhosted.org/packages/f8/0e/36c2768278d827fbe8cd168f212bf33974fb54da14f92cc36041c0b642fe/promise-2.0.1.tar.gz"
}
],
"2.0.2": [
{
"comment_text": "",
"digests": {
"md5": "5e38264caaf6f409feb6b3ff4f729727",
"sha256": "f6ac7ec189bfb14ab8987f211db85fa8147fe13ca5d2a8c15926307d8948c082"
},
"downloads": -1,
"filename": "promise-2.0.2.tar.gz",
"has_sig": false,
"md5_digest": "5e38264caaf6f409feb6b3ff4f729727",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18461,
"upload_time": "2017-04-30T00:23:04",
"url": "https://files.pythonhosted.org/packages/62/a4/d979b8cbfef42b695a9c3851d3d918884fb0d2f84f6c43451311a2acb5bf/promise-2.0.2.tar.gz"
}
],
"2.0.dev20170313081902": [
{
"comment_text": "",
"digests": {
"md5": "5e5823253a32ace2ad826ddae3342799",
"sha256": "a8b5bc31e76aec07a97646215d672efe717fc0820e3c4a861f1c6f26f0f9f818"
},
"downloads": -1,
"filename": "promise-2.0.dev20170313081902.tar.gz",
"has_sig": false,
"md5_digest": "5e5823253a32ace2ad826ddae3342799",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17035,
"upload_time": "2017-03-13T08:20:34",
"url": "https://files.pythonhosted.org/packages/06/ed/d3dcd9afc10d5ff46df6948241e29ad362564ce3cfcaeff32cb6c19e7d9c/promise-2.0.dev20170313081902.tar.gz"
}
],
"2.0.dev20170313082331": [
{
"comment_text": "",
"digests": {
"md5": "bd13e695151c1dd9880da68c7e93eb94",
"sha256": "c6192b37ad5935e5f5adeb988468de03250ec4e01ea5b76a333ccdec20ac0be4"
},
"downloads": -1,
"filename": "promise-2.0.dev20170313082331.tar.gz",
"has_sig": false,
"md5_digest": "bd13e695151c1dd9880da68c7e93eb94",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18009,
"upload_time": "2017-03-13T08:23:41",
"url": "https://files.pythonhosted.org/packages/e7/ad/598016774da0036bbf39133c4378f6da123b5d90368664f0e3453253219b/promise-2.0.dev20170313082331.tar.gz"
}
],
"2.0.dev20170314074715": [
{
"comment_text": "",
"digests": {
"md5": "eaf3886c186b6573f377e60bc92e4c23",
"sha256": "b4895b5551eb760da1aa9883f90adf8aa2f1ec6dddb699a2d4408b31134263f4"
},
"downloads": -1,
"filename": "promise-2.0.dev20170314074715.tar.gz",
"has_sig": false,
"md5_digest": "eaf3886c186b6573f377e60bc92e4c23",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18082,
"upload_time": "2017-03-14T07:49:02",
"url": "https://files.pythonhosted.org/packages/26/44/cdf55fa2ff79f4de83bac1bdf976398523640e968c4680c409818c80d810/promise-2.0.dev20170314074715.tar.gz"
}
],
"2.0.dev20170317055346": [
{
"comment_text": "",
"digests": {
"md5": "cfe2956821c453101a187f7236ab21f9",
"sha256": "b67f749d0a045e0b47a21605d358db395fb8a0e1ef1540a80a7d596d27003a02"
},
"downloads": -1,
"filename": "promise-2.0.dev20170317055346.tar.gz",
"has_sig": false,
"md5_digest": "cfe2956821c453101a187f7236ab21f9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18215,
"upload_time": "2017-03-17T05:58:11",
"url": "https://files.pythonhosted.org/packages/9b/93/dd9a70b09243e67f4f1bc21ecc9ba500d816ff6fa6c26a59bbb6ac9206e3/promise-2.0.dev20170317055346.tar.gz"
}
],
"2.0b1": [
{
"comment_text": "",
"digests": {
"md5": "b12d882a43df70b1c382d2803fddb948",
"sha256": "cd2e5737e2aa556fdf25e330e61ca872cef965ee77e076126c1f2122344f23cf"
},
"downloads": -1,
"filename": "promise-2.0b1.tar.gz",
"has_sig": false,
"md5_digest": "b12d882a43df70b1c382d2803fddb948",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18300,
"upload_time": "2017-04-05T05:18:31",
"url": "https://files.pythonhosted.org/packages/8e/07/8b17db477d7d938c5d5cd60f263ccb0eab78620fb1175ff2781793242f6c/promise-2.0b1.tar.gz"
}
],
"2.0rc1": [
{
"comment_text": "",
"digests": {
"md5": "41d9c1f002fe5a74dfe6c63b9d7fe91f",
"sha256": "a500d6d5cb0240189986e87179df55ca1a0b57ed5e6ab4904fcee71b4f1bb574"
},
"downloads": -1,
"filename": "promise-2.0rc1.zip",
"has_sig": false,
"md5_digest": "41d9c1f002fe5a74dfe6c63b9d7fe91f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 24617,
"upload_time": "2017-04-12T08:40:33",
"url": "https://files.pythonhosted.org/packages/e7/67/f948c43e184915c6f7c61916e4c72e32abfcb0f9cdcafac2e70513baffd5/promise-2.0rc1.zip"
}
],
"2.0rc2": [
{
"comment_text": "",
"digests": {
"md5": "49caa613f58d4eb4dad31860301031d0",
"sha256": "09a385a3c030157f3c20f30b77ce146b550c15f31bd39582fc2ce7dfa2f92bf9"
},
"downloads": -1,
"filename": "promise-2.0rc2.tar.gz",
"has_sig": false,
"md5_digest": "49caa613f58d4eb4dad31860301031d0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18490,
"upload_time": "2017-04-13T05:48:32",
"url": "https://files.pythonhosted.org/packages/e6/3b/0414dbb7ad6f436fe7006c2460746e96a375ab56ee411fd748d50cbdd777/promise-2.0rc2.tar.gz"
}
],
"2.1": [
{
"comment_text": "",
"digests": {
"md5": "315216e7992fb9484abd38c104884dbc",
"sha256": "0bca4ed933e3d50e3d18fb54fc1432fa84b0564838cd093e824abcd718ab9304"
},
"downloads": -1,
"filename": "promise-2.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "315216e7992fb9484abd38c104884dbc",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 22061,
"upload_time": "2017-10-25T05:30:21",
"url": "https://files.pythonhosted.org/packages/34/16/a459aad0458910cb9e041400bb99d5176bdcc09f7188622f4d1478c4a625/promise-2.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2d0ebde0fd100ff5057e2768266890a0",
"sha256": "95506bac89df7a495e0b8c813fd782dd1ae590decb52f95248e316c6659ca49b"
},
"downloads": -1,
"filename": "promise-2.1.tar.gz",
"has_sig": false,
"md5_digest": "2d0ebde0fd100ff5057e2768266890a0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17974,
"upload_time": "2017-10-25T05:30:13",
"url": "https://files.pythonhosted.org/packages/e2/23/ff9e53fb9a00f89573646729e04a2c0933e845dcca758113f0281c396cdf/promise-2.1.tar.gz"
}
],
"2.1.dev20170724043809": [
{
"comment_text": "",
"digests": {
"md5": "6a92f0a95e9b980b0415be99c3c9bb4e",
"sha256": "18b65911b290b3ff42013c60721b8293371680fc660859a01a9a3e3012b24fbd"
},
"downloads": -1,
"filename": "promise-2.1.dev20170724043809.tar.gz",
"has_sig": false,
"md5_digest": "6a92f0a95e9b980b0415be99c3c9bb4e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18020,
"upload_time": "2017-07-24T04:38:19",
"url": "https://files.pythonhosted.org/packages/42/2b/36a50e483ad73b59b1851b0601cdac4b6a1a48a9f3940c3851930a5538fa/promise-2.1.dev20170724043809.tar.gz"
}
],
"2.2": [
{
"comment_text": "",
"digests": {
"md5": "fde3cfad6c09f0685b1efe2d38db2ab5",
"sha256": "97d9394113f175df5d792546cd7fa80f479e2de49521e62117412b58343f0a80"
},
"downloads": -1,
"filename": "promise-2.2-py2-none-any.whl",
"has_sig": false,
"md5_digest": "fde3cfad6c09f0685b1efe2d38db2ab5",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 24333,
"upload_time": "2018-10-04T22:00:15",
"url": "https://files.pythonhosted.org/packages/6e/ee/17e240c29e9aef2d0abf36c98453692659529cd9e7f0ae05c4caa30a12bb/promise-2.2-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "4f9581f1d2fb1d5029936ac9342c0e60",
"sha256": "ac2b643c4cbb8e74a04fb2620fffb1a031aa612da5bac2b35cebcd664dd1e60b"
},
"downloads": -1,
"filename": "promise-2.2.tar.gz",
"has_sig": false,
"md5_digest": "4f9581f1d2fb1d5029936ac9342c0e60",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19480,
"upload_time": "2018-10-04T22:00:26",
"url": "https://files.pythonhosted.org/packages/8c/7d/a083ea69feec75b2fedba0da89d3e1841420a55c9b59de483c47ea189884/promise-2.2.tar.gz"
}
],
"2.2.1": [
{
"comment_text": "",
"digests": {
"md5": "e91ff574365f746a5b4b89898275e46c",
"sha256": "2ebbfc10b7abf6354403ed785fe4f04b9dfd421eb1a474ac8d187022228332af"
},
"downloads": -1,
"filename": "promise-2.2.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "e91ff574365f746a5b4b89898275e46c",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 24360,
"upload_time": "2018-10-04T22:04:18",
"url": "https://files.pythonhosted.org/packages/d6/97/5fc9f9a723018bc5c55b92d7575d8a35617ca8cae070081f1d7f7fc9c935/promise-2.2.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5cd174b38d23ad4047eb31ecba157db7",
"sha256": "348f5f6c3edd4fd47c9cd65aed03ac1b31136d375aa63871a57d3e444c85655c"
},
"downloads": -1,
"filename": "promise-2.2.1.tar.gz",
"has_sig": false,
"md5_digest": "5cd174b38d23ad4047eb31ecba157db7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19475,
"upload_time": "2018-10-04T22:04:26",
"url": "https://files.pythonhosted.org/packages/5a/81/221d09d90176fd90aed4b530e31b8fedf207385767c06d1d46c550c5e418/promise-2.2.1.tar.gz"
}
],
"2.2rc1": [
{
"comment_text": "",
"digests": {
"md5": "40d9db4bc3d61b1764cfe8f359b98043",
"sha256": "8657db4f50511369afbe96088c28a034d1c5785a312afdac93efeed7cbc9cb93"
},
"downloads": -1,
"filename": "promise-2.2rc1.tar.gz",
"has_sig": false,
"md5_digest": "40d9db4bc3d61b1764cfe8f359b98043",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19394,
"upload_time": "2018-07-20T22:56:34",
"url": "https://files.pythonhosted.org/packages/93/b3/10b7e1e02eec36dbe0aa9fc45ac85cc777d63d134366cf0066bb1ee22836/promise-2.2rc1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "e91ff574365f746a5b4b89898275e46c",
"sha256": "2ebbfc10b7abf6354403ed785fe4f04b9dfd421eb1a474ac8d187022228332af"
},
"downloads": -1,
"filename": "promise-2.2.1-py2-none-any.whl",
"has_sig": false,
"md5_digest": "e91ff574365f746a5b4b89898275e46c",
"packagetype": "bdist_wheel",
"python_version": "2.7",
"requires_python": null,
"size": 24360,
"upload_time": "2018-10-04T22:04:18",
"url": "https://files.pythonhosted.org/packages/d6/97/5fc9f9a723018bc5c55b92d7575d8a35617ca8cae070081f1d7f7fc9c935/promise-2.2.1-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5cd174b38d23ad4047eb31ecba157db7",
"sha256": "348f5f6c3edd4fd47c9cd65aed03ac1b31136d375aa63871a57d3e444c85655c"
},
"downloads": -1,
"filename": "promise-2.2.1.tar.gz",
"has_sig": false,
"md5_digest": "5cd174b38d23ad4047eb31ecba157db7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19475,
"upload_time": "2018-10-04T22:04:26",
"url": "https://files.pythonhosted.org/packages/5a/81/221d09d90176fd90aed4b530e31b8fedf207385767c06d1d46c550c5e418/promise-2.2.1.tar.gz"
}
]
}