{ "info": { "author": "Artem Malyshev", "author_email": "proofit404@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development" ], "description": ".. |travis| image:: https://travis-ci.org/dry-python/stories.svg?branch=master\n :target: https://travis-ci.org/dry-python/stories\n\n.. |codecov| image:: https://codecov.io/gh/dry-python/stories/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/dry-python/stories\n\n.. |docs| image:: https://readthedocs.org/projects/stories/badge/?version=latest\n :target: https://stories.readthedocs.io/en/latest/?badge=latest\n\n.. |gitter| image:: https://badges.gitter.im/dry-python/stories.svg\n :target: https://gitter.im/dry-python/stories\n\n.. |pypi| image:: https://img.shields.io/pypi/v/stories.svg\n :target: https://pypi.python.org/pypi/stories/\n\n.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/ambv/black\n\n.. image:: https://raw.githubusercontent.com/dry-python/brand/master/logo/stories.png\n\n|travis| |codecov| |docs| |gitter| |pypi| |black|\n\n----\n\nThe business transaction DSL\n============================\n\n- `Source Code`_\n- `Issue Tracker`_\n- `Documentation`_\n- `Discussion`_\n\nInstallation\n------------\n\nAll released versions are hosted on the Python Package Index. You can\ninstall this package with following command.\n\n.. code:: bash\n\n pip install stories\n\nUsage\n-----\n\n``stories`` provide a simple way to define a complex business scenario\nthat include many processing steps.\n\n.. code:: python\n\n from stories import story, arguments, Success, Failure, Result\n\n class Subscribe:\n\n @story\n @arguments('category_id', 'user_id')\n def buy(I):\n\n I.find_category\n I.find_profile\n I.check_balance\n I.persist_subscription\n I.show_subscription\n\n def find_category(self, ctx):\n\n category = Category.objects.get(id=ctx.category_id)\n return Success(category=category)\n\n def find_profile(self, ctx):\n\n profile = Profile.objects.get(user_id=ctx.user_id)\n return Success(profile=profile)\n\n def check_balance(self, ctx):\n\n if ctx.category.cost < ctx.profile.balance:\n return Success()\n else:\n return Failure()\n\n def persist_subscription(self, ctx):\n\n subscription = Subscription(ctx.category, ctx.profile)\n subscription.save()\n return Success(subscription=subscription)\n\n def show_subscription(self, ctx):\n\n return Result(ctx.subscription)\n\n.. code:: python\n\n >>> Subscribe().buy(category_id=1, user_id=1)\n \n >>> _\n\nThis code style allow you clearly separate actual business scenario\nfrom implementation details.\n\nLicense\n-------\n\nStories library is offered under the two clause BSD license.\n\n.. _source code: https://github.com/dry-python/stories\n.. _issue tracker: https://github.com/dry-python/stories/issues\n.. _documentation: https://stories.readthedocs.io/en/latest/\n.. _discussion: https://gitter.im/dry-python/stories\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://dry-python.org/", "keywords": "dsl,architecture,design-patterns,business-logic,railway-oriented-programming", "license": "BSD-2-Clause", "maintainer": "Artem Malyshev", "maintainer_email": "proofit404@gmail.com", "name": "stories", "package_url": "https://pypi.org/project/stories/", "platform": "", "project_url": "https://pypi.org/project/stories/", "project_urls": { "Documentation": "https://stories.readthedocs.io/", "Homepage": "https://dry-python.org/", "Repository": "https://github.com/dry-python/stories/" }, "release_url": "https://pypi.org/project/stories/0.10.1/", "requires_dist": null, "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "summary": "Define a user story in the business transaction DSL", "version": "0.10.1" }, "last_serial": 5832348, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "77caf86b73519db429cc71c56088bfa3", "sha256": "3539698aa27978935596078c087077a4ed05c9b673f14fc09829b4d0bae664be" }, "downloads": -1, "filename": "stories-0.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "77caf86b73519db429cc71c56088bfa3", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2653, "upload_time": "2018-04-02T14:10:36", "url": "https://files.pythonhosted.org/packages/f2/0d/135f00118efca39a7c0385f94c994157a031913b894180d27b0db5355447/stories-0.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "94a3a34b6c0d6c8b96744d6d39fa6f4d", "sha256": "06c26c9d0784d51cfc92d2cda3d9cc43c37517ea3111dd25fde9092c88295bdf" }, "downloads": -1, "filename": "stories-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "94a3a34b6c0d6c8b96744d6d39fa6f4d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2653, "upload_time": "2018-04-02T14:10:37", "url": "https://files.pythonhosted.org/packages/21/be/fcd1362875d3a7343d85c237a27038a09ec3d8bf51b0ff50279bacf18168/stories-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89873b7903b52a9b799097f888aa34ad", "sha256": "2c1f3441d2acba67b4ffcf8546fb1eeb0bd562be1ca75f28cb080f5b1dc3a80c" }, "downloads": -1, "filename": "stories-0.0.1.tar.gz", "has_sig": false, "md5_digest": "89873b7903b52a9b799097f888aa34ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1462, "upload_time": "2018-04-02T14:10:38", "url": "https://files.pythonhosted.org/packages/19/83/16c21e759509900dd75bed2570a0a303b8156de8237f500954fde224f906/stories-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "b8e138ed42d774d23fc6941a9778510e", "sha256": "adaf4695a195a87cb81a68f4b49b406aa0cf6c1dd3df29e7241f23863657bc8d" }, "downloads": -1, "filename": "stories-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b8e138ed42d774d23fc6941a9778510e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2019, "upload_time": "2018-04-03T19:19:35", "url": "https://files.pythonhosted.org/packages/b0/d8/cb599c188f51e9d3eda97fb644deb20a26559240e4bb1b35398efbc55b1c/stories-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "374f30fcea8dbf9a625526ace57d8e55", "sha256": "e10eb38c7649d1de8bfb1690d090047701d619a8e6eff4bf98beb43ee190efd1" }, "downloads": -1, "filename": "stories-0.0.2.tar.gz", "has_sig": false, "md5_digest": "374f30fcea8dbf9a625526ace57d8e55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1529, "upload_time": "2018-04-03T19:19:36", "url": "https://files.pythonhosted.org/packages/d3/42/6c9cfbb8564b584c72f9f4ef89295ec318d43eb4f1e262026286176de916/stories-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "bdbd8f4704b5ea56bbd8ca6e78aebd60", "sha256": "3c165f443d463e868a3c1cb02e6036fb2ccf1057b16834a6fcae3aad2dcc7f2e" }, "downloads": -1, "filename": "stories-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "bdbd8f4704b5ea56bbd8ca6e78aebd60", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2404, "upload_time": "2018-04-06T04:10:51", "url": "https://files.pythonhosted.org/packages/07/a1/9f17043b370d58ed0d9fd15bd0efe89cc66f30625c75d386e9445f0e5181/stories-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92ad263a353a06f3d3d81901c0ffa022", "sha256": "3e80aada9bab4f25283c8ec56821246287d41609de0d9cfd769a78378df41119" }, "downloads": -1, "filename": "stories-0.0.3.tar.gz", "has_sig": false, "md5_digest": "92ad263a353a06f3d3d81901c0ffa022", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1893, "upload_time": "2018-04-06T04:10:52", "url": "https://files.pythonhosted.org/packages/2b/2a/11f4e2b146a00c5c9e887adeace95f1f81d107814c933366ede61bb50077/stories-0.0.3.tar.gz" } ], "0.10": [ { "comment_text": "", "digests": { "md5": "26334eef1f0c3bf7074c4e1b0d510f49", "sha256": "11f1c2b969857e956718a69252fa10c7cffdea8ffdc66a2e5d1bd19969eba914" }, "downloads": -1, "filename": "stories-0.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "26334eef1f0c3bf7074c4e1b0d510f49", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 38637, "upload_time": "2019-02-27T02:23:56", "url": "https://files.pythonhosted.org/packages/a4/63/173f84a837a3fd573effc01f5926f20cdcf9f9f63a5083ffa18c5f67d913/stories-0.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d56a906ab58720b4bbcf1a1bbfda8a6b", "sha256": "016c69a284bfaaca4360da19c93c78f75c973b69f61234e45be2b7f67688f760" }, "downloads": -1, "filename": "stories-0.10.tar.gz", "has_sig": false, "md5_digest": "d56a906ab58720b4bbcf1a1bbfda8a6b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 12176, "upload_time": "2019-02-27T02:23:58", "url": "https://files.pythonhosted.org/packages/fc/ea/2e0f887549d7c1aeb8b2df289de9f59df28ea0fb6f72ec412a639c270e20/stories-0.10.tar.gz" } ], "0.10.1": [ { "comment_text": "", "digests": { "md5": "2b87f20df0feed16068d6d5a06ebf50e", "sha256": "1c2d1176b39fadb2df9508a1665a151f247db77c0a57298dc7e7efc52d301d45" }, "downloads": -1, "filename": "stories-0.10.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2b87f20df0feed16068d6d5a06ebf50e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 17551, "upload_time": "2019-05-31T18:36:56", "url": "https://files.pythonhosted.org/packages/93/2a/78402bf55dfa06f9304957d45898b981a6055b814ca25aea1a19fe04be2f/stories-0.10.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ff78b8fe6ea615836a123e635626d49", "sha256": "55d9a4b55669631665f7d45352a3f94aef7c26e3cd07ae149eea5632ed33ee17" }, "downloads": -1, "filename": "stories-0.10.1.tar.gz", "has_sig": false, "md5_digest": "1ff78b8fe6ea615836a123e635626d49", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 12427, "upload_time": "2019-05-31T18:36:58", "url": "https://files.pythonhosted.org/packages/7b/3d/d56f23e1d7a9f5f66f54d83573f85536cc3bd6ec18475876ee925a3c6f6e/stories-0.10.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "1294b40cefcbcac416e4587db00fbbdf", "sha256": "b4eae8473cc90ddbcb72bfb697fa6eb3ffb8b124b20a82f65908f80d868ae489" }, "downloads": -1, "filename": "stories-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1294b40cefcbcac416e4587db00fbbdf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2261, "upload_time": "2018-04-07T02:51:00", "url": "https://files.pythonhosted.org/packages/d5/bc/33dc55137a8cef6f5b12da8214689e70c5fc54a8d44d81921a2aeee3db7f/stories-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7fa71314608b33cd0cf5e7a817f7927a", "sha256": "6fa3f4100289186bb7efcedf53140b08239276b3fa8be724dc8082650a1afd45" }, "downloads": -1, "filename": "stories-0.4.0.tar.gz", "has_sig": false, "md5_digest": "7fa71314608b33cd0cf5e7a817f7927a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1764, "upload_time": "2018-04-07T02:51:01", "url": "https://files.pythonhosted.org/packages/7a/e8/7356ac41e111aeaf55974bb27e01fd12583699ef6e73777b139ea538e83b/stories-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "9f6ad2ab47a3d56741839726e9a78d82", "sha256": "8df456fa6d18ea0a7b6c75912577a6641b55c5d1706c42a988ee6e03656ce03c" }, "downloads": -1, "filename": "stories-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9f6ad2ab47a3d56741839726e9a78d82", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2278, "upload_time": "2018-04-07T17:23:51", "url": "https://files.pythonhosted.org/packages/27/b9/80bbfbdd0ad3ac3e93fb63c4d834d65c0cf73d04899bd89741a0c4cb433e/stories-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1cf23331c6b5fa24f97827e96e7af881", "sha256": "328c89388b3cbab00182e337b78ffefffa033dfbeb48367aedbded1f0359a75a" }, "downloads": -1, "filename": "stories-0.5.0.tar.gz", "has_sig": false, "md5_digest": "1cf23331c6b5fa24f97827e96e7af881", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1791, "upload_time": "2018-04-07T17:23:52", "url": "https://files.pythonhosted.org/packages/7f/7a/e70c6db050483216741851480e9fdb9818ef1db381c42e6adb011d3f39e2/stories-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "ccf7516deb8ce0a5b948e85b6f929dd2", "sha256": "f7a1eea12781348755608de6497fcf83495e81032f3c12e447499d0299337cda" }, "downloads": -1, "filename": "stories-0.6.0-py2-none-any.whl", "has_sig": false, "md5_digest": "ccf7516deb8ce0a5b948e85b6f929dd2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2754, "upload_time": "2018-04-19T19:52:58", "url": "https://files.pythonhosted.org/packages/58/07/57db89c1bf749db8cfa1359f7eb45d8d65fe974c2f8304f6976bb99607c5/stories-0.6.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5dfe515e634cdc779babf6e60b46694e", "sha256": "e1194b9568d1a43ed8a7e3b1077ed53e55354df963cb9b6efff331b2e2df259f" }, "downloads": -1, "filename": "stories-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5dfe515e634cdc779babf6e60b46694e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2752, "upload_time": "2018-04-19T19:53:00", "url": "https://files.pythonhosted.org/packages/cf/d2/7271d2b2df1baa9291e45e073d6ee340dd5e9f117dbd0e08dbe21af8542d/stories-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "604304b40d72a748b47c0a8f8ad9dcd2", "sha256": "c330272366d54c9c8306c06ebbe72b3c2ac4641a323ec672dec2290f37f7fb75" }, "downloads": -1, "filename": "stories-0.6.0.tar.gz", "has_sig": false, "md5_digest": "604304b40d72a748b47c0a8f8ad9dcd2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2240, "upload_time": "2018-04-19T19:53:01", "url": "https://files.pythonhosted.org/packages/c9/46/016a69bdcc7c03df512a72387558c1218cf9d6e7107a27572526f9da8b78/stories-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "44ff72f100fa07d878ff7e04fd6c364e", "sha256": "6837beddb3e0d05b36614799719cd9a5ba05a8b0b0abc4bf6eeaf6316c3dcc45" }, "downloads": -1, "filename": "stories-0.7.0-py2-none-any.whl", "has_sig": false, "md5_digest": "44ff72f100fa07d878ff7e04fd6c364e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2960, "upload_time": "2018-05-05T23:31:14", "url": "https://files.pythonhosted.org/packages/72/20/aeb2ae372b19837dd57f45389ddf48e433c78bc8b719b983ef2ed3b2bf58/stories-0.7.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "333ff0ebe3843dc70f7369c770f7bb7d", "sha256": "34c5d30b16d3e782151b3e639d64c1c40e57e758a20aa96dba2b60a9f247c5d5" }, "downloads": -1, "filename": "stories-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "333ff0ebe3843dc70f7369c770f7bb7d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2958, "upload_time": "2018-05-05T23:31:15", "url": "https://files.pythonhosted.org/packages/e8/9d/0856031749b3c45e5e35a558814f87e2ff413f6d58884fa1d8ca10cebba7/stories-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca725a5235d72a3c4e09f8e3305a3c6d", "sha256": "ebe8cb1f0be744488c51e06213f79dcafc7614a5569ab216f0a00ac13ae6fd30" }, "downloads": -1, "filename": "stories-0.7.0.tar.gz", "has_sig": false, "md5_digest": "ca725a5235d72a3c4e09f8e3305a3c6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2551, "upload_time": "2018-05-05T23:31:16", "url": "https://files.pythonhosted.org/packages/10/8d/a976de04d283df5a44591a2c942aa539c5ec69f055d6dfb4e2125c959c51/stories-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "998ddf381abb25bc5423e7ff8b8778d6", "sha256": "992f05d4fbf571df96cf2a39e9f221c729d99d5a058249a5a8373b25ac65c083" }, "downloads": -1, "filename": "stories-0.8.0-py2-none-any.whl", "has_sig": false, "md5_digest": "998ddf381abb25bc5423e7ff8b8778d6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3144, "upload_time": "2018-05-12T19:31:03", "url": "https://files.pythonhosted.org/packages/61/e0/c8ddc848355c7b38510e685f6fa107fd4bed39bdd8fefb9b870b75f73d5b/stories-0.8.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb0314120a735fe335b6a994d67fe765", "sha256": "428d06891fe0653f48c851312e593bedd72a85263d027ce3eb63e971abec8e2a" }, "downloads": -1, "filename": "stories-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fb0314120a735fe335b6a994d67fe765", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3143, "upload_time": "2018-05-12T19:31:04", "url": "https://files.pythonhosted.org/packages/78/e3/2807f14e930b5b67f36fefbf4b7be9028f2a467aac06e158e9986922fdfc/stories-0.8.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d13c3516c35b0462e70af9350f8b1b52", "sha256": "04f2a7c91c8297f03749118aecdf03c4947f5dcf25d086a69bf0dc7ba15e957d" }, "downloads": -1, "filename": "stories-0.8.0.tar.gz", "has_sig": false, "md5_digest": "d13c3516c35b0462e70af9350f8b1b52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2732, "upload_time": "2018-05-12T19:31:05", "url": "https://files.pythonhosted.org/packages/bd/82/b6226db7cbdb2a1efce1e039f19e516d976d1ee944d45aea60cf75760080/stories-0.8.0.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "6e74d55f6bf816c7d644fc4b0fe0001e", "sha256": "a711a922e14eb19bc4e68a00bcfd03559abe919c8104e23f76e1123554f5f5fa" }, "downloads": -1, "filename": "stories-0.9-py2-none-any.whl", "has_sig": false, "md5_digest": "6e74d55f6bf816c7d644fc4b0fe0001e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 13446, "upload_time": "2018-11-28T01:11:34", "url": "https://files.pythonhosted.org/packages/8d/fd/28e865fcc27285641c9e3c6e0c2e32ee7adcd81f7c1915b3f7f7ba309b6f/stories-0.9-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45e4c4f2a8360249b03551444ede9c35", "sha256": "a7718c8c3ee5d8914391e1bdf4f74d48f4d8efd332e7686ff5130812cdfb35fa" }, "downloads": -1, "filename": "stories-0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "45e4c4f2a8360249b03551444ede9c35", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12606, "upload_time": "2018-11-28T01:11:36", "url": "https://files.pythonhosted.org/packages/70/d3/a08a7cef96ad12b9ae1bee7586a6dc4deff3e2300bc90e6530376b3a541c/stories-0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ea0d7752c755b3b28e9c93e7a1608cd", "sha256": "1b989c33362a0a327d1d7452fd5a37db60cf20f983bc6e349107a60730edc9c2" }, "downloads": -1, "filename": "stories-0.9.tar.gz", "has_sig": false, "md5_digest": "0ea0d7752c755b3b28e9c93e7a1608cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9064, "upload_time": "2018-11-28T01:11:37", "url": "https://files.pythonhosted.org/packages/ba/70/6315cf2c71d1d2016743f3168214424dcf8f62016c823362f32cc6a717d4/stories-0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2b87f20df0feed16068d6d5a06ebf50e", "sha256": "1c2d1176b39fadb2df9508a1665a151f247db77c0a57298dc7e7efc52d301d45" }, "downloads": -1, "filename": "stories-0.10.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2b87f20df0feed16068d6d5a06ebf50e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 17551, "upload_time": "2019-05-31T18:36:56", "url": "https://files.pythonhosted.org/packages/93/2a/78402bf55dfa06f9304957d45898b981a6055b814ca25aea1a19fe04be2f/stories-0.10.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ff78b8fe6ea615836a123e635626d49", "sha256": "55d9a4b55669631665f7d45352a3f94aef7c26e3cd07ae149eea5632ed33ee17" }, "downloads": -1, "filename": "stories-0.10.1.tar.gz", "has_sig": false, "md5_digest": "1ff78b8fe6ea615836a123e635626d49", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 12427, "upload_time": "2019-05-31T18:36:58", "url": "https://files.pythonhosted.org/packages/7b/3d/d56f23e1d7a9f5f66f54d83573f85536cc3bd6ec18475876ee925a3c6f6e/stories-0.10.1.tar.gz" } ] }