{ "info": { "author": "aioredux developers", "author_email": "aioredux-developers@example.net", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4" ], "description": "========\naioredux\n========\n\n|pypi| |travis| |downloads|\n\nPythonic `Redux `_\n\nPythonic `Redux `_ using asyncio. ``aioredux``\nprovides a predictable state container with the following goal: \"[Redux] helps\nyou write applications that behave consistently, run in different environments\n..., and are easy to test\" (from the `Redux `_\ndocumentation).\n\n* Free software: Mozilla Public License\n\n**This package requires Python 3.4 or higher**\n\nUsage\n-----\n::\n\n import asyncio\n import aioredux\n\n async def go():\n initial_state = {\n 'todos': (),\n }\n\n def add_todo(text):\n return {'type': 'ADD_TODO', 'text': text}\n\n def reducer(state, action):\n if action['type'] == 'ADD_TODO':\n todos = state['todos'] + (action['text'],)\n return {'todos': todos}\n return state\n\n store = yield from aioredux.create_store(reducer, initial_state)\n yield from store.dispatch(add_todo('todo text'))\n print(store.state['todos'])\n\n asyncio.get_event_loop().run_until_complete(go())\n\n\nImplementation notes\n--------------------\n- ``dispatch`` is marked as ``async`` although in most cases it functions like\n a plain Python function returning a Future. This is done to allow for cases\n where dispatch performs a more complicated set of (async) actions.\n- A Pythonic version of `redux-thunk `_ is also included.\n\n\n.. |pypi| image:: https://badge.fury.io/py/aioredux.png\n :target: https://badge.fury.io/py/aioredux\n :alt: pypi version\n\n.. |travis| image:: https://travis-ci.org/ariddell/aioredux.png?branch=master\n :target: https://travis-ci.org/ariddell/aioredux\n :alt: travis-ci build status\n\n.. |downloads| image:: https://img.shields.io/pypi/dm/aioredux.svg\n :target: https://pypi.python.org/pypi/aioredux\n :alt: pypi download statistics", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ariddell/aioredux", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "aioredux", "package_url": "https://pypi.org/project/aioredux/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/aioredux/", "project_urls": { "Homepage": "https://github.com/ariddell/aioredux" }, "release_url": "https://pypi.org/project/aioredux/1.1.0/", "requires_dist": [ "pbr (<2.0,>=1.4)", "toolz (>=0.7.4)" ], "requires_python": "", "summary": "Pythonic redux", "version": "1.1.0" }, "last_serial": 3378592, "releases": { "0.1.0": [], "0.2.1": [ { "comment_text": "", "digests": { "md5": "ef68249c6e580f89ee20c81f6b77bbae", "sha256": "4812d3f43b5b1ed84669b79e445fdc005073256427929f64d504f8e310358c7f" }, "downloads": -1, "filename": "aioredux-0.2.1-py3-none-any.whl", "has_sig": true, "md5_digest": "ef68249c6e580f89ee20c81f6b77bbae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7299, "upload_time": "2015-09-30T12:22:15", "url": "https://files.pythonhosted.org/packages/d8/be/b6450e01ef49802b4a47c47aaea67d294df5a0f34e88b98ea1edb67f3687/aioredux-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6415659e1a242acdbe1cde335d25ec0f", "sha256": "5d7cdea6e88df0e31fce1276d82954ed5e31e386563fd54c23f1eabcb315861d" }, "downloads": -1, "filename": "aioredux-0.2.1.tar.gz", "has_sig": true, "md5_digest": "6415659e1a242acdbe1cde335d25ec0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12956, "upload_time": "2015-09-30T12:22:24", "url": "https://files.pythonhosted.org/packages/8a/c3/1b12cde822a5945560ade6a664d87aba4e3f8b84d7ff35863f6691feebd8/aioredux-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "84ee101b407ce2a9d032b35995a414b0", "sha256": "e2ca29a01e97566df7563a1aa1051bbfd11940340709d90f3f71c6259c734cc2" }, "downloads": -1, "filename": "aioredux-0.3.0-py3-none-any.whl", "has_sig": true, "md5_digest": "84ee101b407ce2a9d032b35995a414b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7617, "upload_time": "2015-10-29T16:06:17", "url": "https://files.pythonhosted.org/packages/f5/01/c227bb55f7a93cb3fe0ff007a49794bb3b063b153a59ef404e9e5fba63e0/aioredux-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88d31aacdc6949038a809241c6717e21", "sha256": "452553216035d7d38689b9f03fd4434251c111d5a01070d83bea7f3f8de0d95f" }, "downloads": -1, "filename": "aioredux-0.3.0.tar.gz", "has_sig": true, "md5_digest": "88d31aacdc6949038a809241c6717e21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13285, "upload_time": "2015-10-29T16:06:31", "url": "https://files.pythonhosted.org/packages/1c/7f/e3c4bcad54194db5675ebd9c1331a9c559e809ed9fea738c7ac6be5e7a6e/aioredux-0.3.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "9f774868f0760e5fa03e84a54a2a18af", "sha256": "b6ac9efa881d559e9dd9cf32780cd91c04cae88b01251e763e929c5372c015e8" }, "downloads": -1, "filename": "aioredux-1.0.0-py3-none-any.whl", "has_sig": true, "md5_digest": "9f774868f0760e5fa03e84a54a2a18af", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8571, "upload_time": "2015-11-01T16:57:12", "url": "https://files.pythonhosted.org/packages/9e/17/234121b714e2c61e38ca2bdc7e013b2d2f67bd4bacfffca75a2f3fbaf2ce/aioredux-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c33c3506ef77d6512ed93de87276eade", "sha256": "65d1d810cb4980915a4eb67bb4f090450491676682d7db04ce812bf56ded3838" }, "downloads": -1, "filename": "aioredux-1.0.0.tar.gz", "has_sig": true, "md5_digest": "c33c3506ef77d6512ed93de87276eade", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13973, "upload_time": "2015-11-01T16:57:25", "url": "https://files.pythonhosted.org/packages/f7/95/4f2d436de7eed737607e37862e25d0c3cb2971a36a3aff04e1b803ee627d/aioredux-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "2180565e490451cbf05aff8301e7a88e", "sha256": "c4e000913c4543c1942006dd7414b4010f5422a08b96d40f34dac9c7a07b9f49" }, "downloads": -1, "filename": "aioredux-1.0.1-py3-none-any.whl", "has_sig": true, "md5_digest": "2180565e490451cbf05aff8301e7a88e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8654, "upload_time": "2015-11-01T21:00:27", "url": "https://files.pythonhosted.org/packages/4a/c8/b4889265b3ef1bd638c504db627b899650aaa5a4f77d6d0121193e1dd2c7/aioredux-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "897b1a0ea700c27426e8c6a44850e4f8", "sha256": "b28e6b92216aa5270b118578b5d9921fde593216491d2e3656bbe995671dc2fd" }, "downloads": -1, "filename": "aioredux-1.0.1.tar.gz", "has_sig": true, "md5_digest": "897b1a0ea700c27426e8c6a44850e4f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14142, "upload_time": "2015-11-01T21:00:39", "url": "https://files.pythonhosted.org/packages/1c/b5/88f53804034b09153c38de7d3d28de51e688cb718f87e97f5b3ff550036f/aioredux-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "2765a0146134365fd5df00e1d9162a27", "sha256": "346863811e690b499a06e24ca10443eda15f0f469b1208d72103da97f18ea261" }, "downloads": -1, "filename": "aioredux-1.0.2-py3-none-any.whl", "has_sig": true, "md5_digest": "2765a0146134365fd5df00e1d9162a27", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9541, "upload_time": "2015-11-02T07:39:39", "url": "https://files.pythonhosted.org/packages/4a/11/8f96c95c70cd58ec8757f224a730ec76e2ec9c5516ff7418be7c733185e9/aioredux-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1bf5f6fae99099e9796b75bcfbc6df85", "sha256": "855813c7f9e44195fe48d7f1b5ad9ae66078c6edc320c94fbec9298a6fdba0c5" }, "downloads": -1, "filename": "aioredux-1.0.2.tar.gz", "has_sig": true, "md5_digest": "1bf5f6fae99099e9796b75bcfbc6df85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14365, "upload_time": "2015-11-02T07:39:47", "url": "https://files.pythonhosted.org/packages/ce/2e/ca61ce86b230aea8f85319803e7b51f1870105bc2f017d2397aa3686fff2/aioredux-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "cd4b248221c8b47859e7baf947ee0529", "sha256": "a0b7b202d4b78965fb8627af63a7a9494f579105a2e49eb8f96b6c188a491670" }, "downloads": -1, "filename": "aioredux-1.0.3-py3-none-any.whl", "has_sig": true, "md5_digest": "cd4b248221c8b47859e7baf947ee0529", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9629, "upload_time": "2015-12-19T01:58:27", "url": "https://files.pythonhosted.org/packages/2d/92/5259e66a745bc075595d71a18b932cf12daca256830fa3c17402cf94d2ae/aioredux-1.0.3-py3-none-any.whl" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "6c6558c63257503cf1fba30615cdcf66", "sha256": "b8c4513a84c0acb97fa888815f335f0b051b9a454ed3f25f843dc9e99dc60360" }, "downloads": -1, "filename": "aioredux-1.1.0-py3-none-any.whl", "has_sig": true, "md5_digest": "6c6558c63257503cf1fba30615cdcf66", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9875, "upload_time": "2016-06-01T14:23:00", "url": "https://files.pythonhosted.org/packages/5c/4d/bd47eecef09ea5f3b9f239e08b4b06d835cd9cdcfa34f1c5dca1b0a1065f/aioredux-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "723e4f7783532aa56c6b97aa18673ad4", "sha256": "d2b5f1fce67fe6e65f65a9ae6e1ced0c5d1891e5967666792bf75aa584a336dd" }, "downloads": -1, "filename": "aioredux-1.1.0.tar.gz", "has_sig": true, "md5_digest": "723e4f7783532aa56c6b97aa18673ad4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14679, "upload_time": "2016-06-01T14:27:41", "url": "https://files.pythonhosted.org/packages/6c/9f/61f46a38830b63f81f21e30e18bbf475451b4efacf8e8def602839ae57b2/aioredux-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6c6558c63257503cf1fba30615cdcf66", "sha256": "b8c4513a84c0acb97fa888815f335f0b051b9a454ed3f25f843dc9e99dc60360" }, "downloads": -1, "filename": "aioredux-1.1.0-py3-none-any.whl", "has_sig": true, "md5_digest": "6c6558c63257503cf1fba30615cdcf66", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9875, "upload_time": "2016-06-01T14:23:00", "url": "https://files.pythonhosted.org/packages/5c/4d/bd47eecef09ea5f3b9f239e08b4b06d835cd9cdcfa34f1c5dca1b0a1065f/aioredux-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "723e4f7783532aa56c6b97aa18673ad4", "sha256": "d2b5f1fce67fe6e65f65a9ae6e1ced0c5d1891e5967666792bf75aa584a336dd" }, "downloads": -1, "filename": "aioredux-1.1.0.tar.gz", "has_sig": true, "md5_digest": "723e4f7783532aa56c6b97aa18673ad4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14679, "upload_time": "2016-06-01T14:27:41", "url": "https://files.pythonhosted.org/packages/6c/9f/61f46a38830b63f81f21e30e18bbf475451b4efacf8e8def602839ae57b2/aioredux-1.1.0.tar.gz" } ] }