{ "info": { "author": "Fernando Macedo", "author_email": "fgmacedo@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "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", "Topic :: Software Development :: Libraries" ], "description": "====================\nPython State Machine\n====================\n\n\n.. image:: https://img.shields.io/pypi/v/python-statemachine.svg\n :target: https://pypi.python.org/pypi/python-statemachine\n\n.. image:: https://travis-ci.org/fgmacedo/python-statemachine.svg?branch=master\n :target: https://travis-ci.org/fgmacedo/python-statemachine\n :alt: Build status\n\n.. image:: https://codecov.io/gh/fgmacedo/python-statemachine/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/fgmacedo/python-statemachine\n :alt: Coverage report\n\n.. image:: https://readthedocs.org/projects/python-statemachine/badge/?version=latest\n :target: https://python-statemachine.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://pyup.io/repos/github/fgmacedo/python-statemachine/shield.svg\n :target: https://pyup.io/repos/github/fgmacedo/python-statemachine/\n :alt: Updates\n\n.. image:: https://badges.gitter.im/fgmacedo/python-statemachine.svg\n :alt: Join the chat at https://gitter.im/fgmacedo/python-statemachine\n :target: https://gitter.im/fgmacedo/python-statemachine\n\n\nPython `finite-state machines `_ made easy.\n\n\n* Free software: MIT license\n* Documentation: https://python-statemachine.readthedocs.io.\n\n\nGetting started\n===============\n\nTo install Python State Machine, run this command in your terminal:\n\n.. code-block:: console\n\n $ pip install python-statemachine\n\n\nDefine your state machine:\n\n.. code-block:: python\n\n from statemachine import StateMachine, State\n\n class TrafficLightMachine(StateMachine):\n green = State('Green', initial=True)\n yellow = State('Yellow')\n red = State('Red')\n\n slowdown = green.to(yellow)\n stop = yellow.to(red)\n go = red.to(green)\n\n\nYou can now create an instance:\n\n>>> traffic_light = TrafficLightMachine()\n\nAnd inspect about the current state:\n\n>>> traffic_light.current_state\nState('Green', identifier='green', value='green', initial=True)\n>>> traffic_light.current_state == TrafficLightMachine.green == traffic_light.green\nTrue\n\nFor each state, there's a dinamically created property in the form ``is_``, that\nreturns ``True`` if the current status matches the query:\n\n>>> traffic_light.is_green\nTrue\n>>> traffic_light.is_yellow\nFalse\n>>> traffic_light.is_red\nFalse\n\nQuery about metadata:\n\n>>> [s.identifier for s in m.states]\n['green', 'red', 'yellow']\n>>> [t.identifier for t in m.transitions]\n['go', 'slowdown', 'stop']\n\nCall a transition:\n\n>>> traffic_light.slowdown()\n\nAnd check for the current status:\n\n>>> traffic_light.current_state\nState('Yellow', identifier='yellow', value='yellow', initial=False)\n>>> traffic_light.is_yellow\nTrue\n\nYou can't run a transition from an invalid state:\n\n>>> traffic_light.is_yellow\nTrue\n>>> traffic_light.slowdown()\nTraceback (most recent call last):\n...\nLookupError: Can't slowdown when in Yellow.\n\nYou can also trigger events in an alternative way, calling the ``run()`` method:\n\n>>> traffic_light.is_yellow\nTrue\n>>> traffic_light.run('stop')\n>>> traffic_light.is_red\nTrue\n\nA state machine can be instantiated with an initial value:\n\n>>> machine = TrafficLightMachine(start_value='red')\n>>> traffic_light.is_red\nTrue\n\n\nModels\n------\n\nIf you need to persist the current state on another object, or you're using the\nstate machine to control the flow of another object, you can pass this object\nto the ``StateMachine`` constructor:\n\n>>> class MyModel(object):\n... def __init__(self, state):\n... self.state = state\n...\n>>> obj = MyModel(state='red')\n>>> traffic_light = TrafficLightMachine(obj)\n>>> traffic_light.is_red\nTrue\n>>> obj.state\n'red'\n>>> obj.state = 'green'\n>>> traffic_light.is_green\nTrue\n>>> traffic_light.slowdown()\n>>> obj.state\n'yellow'\n>>> traffic_light.is_yellow\nTrue\n\n\nCallbacks\n---------\n\nCallbacks when running events:\n\n.. code-block:: python\n\n from statemachine import StateMachine, State\n\n class TrafficLightMachine(StateMachine):\n \"A traffic light machine\"\n green = State('Green', initial=True)\n yellow = State('Yellow')\n red = State('Red')\n\n slowdown = green.to(yellow)\n stop = yellow.to(red)\n go = red.to(green)\n\n def on_slowdown(self):\n print('Calma, l\u00e1!')\n\n def on_stop(self):\n print('Parou.')\n\n def on_go(self):\n print('Valendo!')\n\n\n>>> stm = TrafficLightMachine()\n>>> stm.slowdown()\nCalma, l\u00e1!\n>>> stm.stop()\nParou.\n>>> stm.go()\nValendo!\n\n\nOr when entering/exiting states:\n\n.. code-block:: python\n\n from statemachine import StateMachine, State\n\n class TrafficLightMachine(StateMachine):\n \"A traffic light machine\"\n green = State('Green', initial=True)\n yellow = State('Yellow')\n red = State('Red')\n\n cycle = green.to(yellow) | yellow.to(red) | red.to(green)\n\n def on_enter_green(self):\n print('Valendo!')\n\n def on_enter_yellow(self):\n print('Calma, l\u00e1!')\n\n def on_enter_red(self):\n print('Parou.')\n\n>>> stm = TrafficLightMachine()\n>>> stm.cycle()\nCalma, l\u00e1!\n>>> stm.cycle()\nParou.\n>>> stm.cycle()\nValendo!\n\nMixins\n------\n\nYour model can inherited from a custom mixin to auto-instantiate a state machine.\n\n.. code-block:: python\n\n class CampaignMachineWithKeys(StateMachine):\n \"A workflow machine\"\n draft = State('Draft', initial=True, value=1)\n producing = State('Being produced', value=2)\n closed = State('Closed', value=3)\n\n add_job = draft.to.itself() | producing.to.itself()\n produce = draft.to(producing)\n deliver = producing.to(closed)\n\n\n class MyModel(MachineMixin):\n state_machine_name = 'CampaignMachine'\n\n def __init__(self, **kwargs):\n for k, v in kwargs.items():\n setattr(self, k, v)\n super(MyModel, self).__init__()\n\n def __repr__(self):\n return \"{}({!r})\".format(type(self).__name__, self.__dict__)\n\n\n model = MyModel(state='draft')\n assert isinstance(model.statemachine, campaign_machine)\n assert model.state == 'draft'\n assert model.statemachine.current_state == model.statemachine.draft\n\n\nHistory\n=======\n\n0.7.1 (2019-01-18)\n------------------\n\n* Fix Django integration for registry loading statemachine modules on Django1.7+.\n\n\n0.7.0 (2018-04-01)\n------------------\n\n* New event callbacks: `on_enter_` and `on_exit_`.\n\n0.6.2 (2017-08-25)\n------------------\n\n* Fix README.\n\n\n0.6.1 (2017-08-25)\n------------------\n\n* Fix deploy issues.\n\n\n0.6.0 (2017-08-25)\n------------------\n\n* Auto-discovering `statemachine`/`statemachines` under a Django project when\n they are requested using the mixin/registry feature.\n\n0.5.1 (2017-07-24)\n------------------\n\n* Fix bug on ``CombinedTransition._can_run`` not allowing transitions to run if there are more than\n two transitions combined.\n\n0.5.0 (2017-07-13)\n------------------\n\n* Custom exceptions.\n* Duplicated definition of ``on_execute`` callback is not allowed.\n* Fix bug on ``StateMachine.on_`` being called with extra ``self`` param.\n\n0.4.2 (2017-07-10)\n------------------\n\n* Python 3.6 support.\n* Drop official support for Python 3.3.\n* `Transition` can be used as decorator for `on_execute` callback definition.\n* `Transition` can point to multiple destination states.\n\n\n0.3.0 (2017-03-22)\n------------------\n\n* README getting started section.\n* Tests to state machine without model.\n\n\n0.2.0 (2017-03-22)\n------------------\n\n* ``State`` can hold a value that will be assigned to the model as the state value.\n* Travis-CI integration.\n* RTD integration.\n\n\n0.1.0 (2017-03-21)\n------------------\n\n* First release on PyPI.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/fgmacedo/python-statemachine", "keywords": "statemachine", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "python-statemachine", "package_url": "https://pypi.org/project/python-statemachine/", "platform": "", "project_url": "https://pypi.org/project/python-statemachine/", "project_urls": { "Homepage": "https://github.com/fgmacedo/python-statemachine" }, "release_url": "https://pypi.org/project/python-statemachine/0.7.1/", "requires_dist": null, "requires_python": "", "summary": "Python Finite State Machines made easy.", "version": "0.7.1" }, "last_serial": 4709255, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "99fada5e27f86d58c60184ac8c8ecafa", "sha256": "be4c8342ef6abea566feac5e78897835e04746332979a5472a446cb0cec36a44" }, "downloads": -1, "filename": "python-statemachine-0.1.0.tar.gz", "has_sig": false, "md5_digest": "99fada5e27f86d58c60184ac8c8ecafa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14637, "upload_time": "2017-03-22T03:28:59", "url": "https://files.pythonhosted.org/packages/99/fa/63a883545f0a4a5621850e720c75d804b8cea807a0cc48688e815beeae16/python-statemachine-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "5d4cc7ff3f40103f101e91f964e68185", "sha256": "b223f28e93ce23714a5b143843c4623946dcaafe3eccc6b18735846a0b959230" }, "downloads": -1, "filename": "python-statemachine-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5d4cc7ff3f40103f101e91f964e68185", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15043, "upload_time": "2017-03-22T13:53:17", "url": "https://files.pythonhosted.org/packages/0b/f4/be0b57410d5b97a923540b60d86b7be40d91fa839932257c3bb3dfd5494a/python-statemachine-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "2bf042f395671fc98e0d33de7e0b91a0", "sha256": "db81e3c11c69b7f455dc2b468609b80ae5ed039d40ca342dd9163543d4156777" }, "downloads": -1, "filename": "python_statemachine-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2bf042f395671fc98e0d33de7e0b91a0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8353, "upload_time": "2017-03-23T02:57:40", "url": "https://files.pythonhosted.org/packages/3c/26/7407d9894f120a49bf67d49b3c5e28ff23ac36ecdfe7a1ad3a029e7a24c8/python_statemachine-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e9fa988c2211c5b152e12150691c39b", "sha256": "ef7357b3b2e981f07b3d0da31d384119726457156632b75ede0aa465f8b17f9f" }, "downloads": -1, "filename": "python-statemachine-0.3.0.tar.gz", "has_sig": false, "md5_digest": "6e9fa988c2211c5b152e12150691c39b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17458, "upload_time": "2017-03-23T02:57:42", "url": "https://files.pythonhosted.org/packages/a6/4e/2587e36fc6ada1e4560867bf636803356d5eb161ed5b467790966862c096/python-statemachine-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "e5ef9603d5e12083b639ed5340709e3c", "sha256": "6709e6d9f79bc2abce6ea25e2930ef3eea0d43f1bd3b9dfac88fc9a9d3312820" }, "downloads": -1, "filename": "python_statemachine-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e5ef9603d5e12083b639ed5340709e3c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8505, "upload_time": "2017-03-27T01:21:17", "url": "https://files.pythonhosted.org/packages/74/c8/bfa2d677a6cc562686cfe5f3b6ba8a15dc7243c8ae4f61bbf79e1c8fe202/python_statemachine-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b63ea69e00d69dcfa0c7fcc7b61dee3", "sha256": "512c77aa35a06f3c99393de2d346bdd48e0aa1f05460792022dbc888a02b72ac" }, "downloads": -1, "filename": "python-statemachine-0.3.1.tar.gz", "has_sig": false, "md5_digest": "2b63ea69e00d69dcfa0c7fcc7b61dee3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17973, "upload_time": "2017-03-27T01:21:19", "url": "https://files.pythonhosted.org/packages/b3/d1/789732437936114eacecdb09fc560d5976e8a2f2c0c684ff5b53188cf1e9/python-statemachine-0.3.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "d4100f1faf817c5a1e61871a85a4c91f", "sha256": "9fee7e245e961fbb235fe0ab45d1fa71a86e00b01a623457287b9d8e46c74d1b" }, "downloads": -1, "filename": "python_statemachine-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d4100f1faf817c5a1e61871a85a4c91f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9172, "upload_time": "2017-07-10T17:08:02", "url": "https://files.pythonhosted.org/packages/35/b6/9bd9300fe58ef9c8be11db6e513daf7c71ea3d2797ddf50933179af516c5/python_statemachine-0.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81cd6d827393db1add763c94dc6c6912", "sha256": "3e28c133a8547371c8ea6a35821c2aec43d9377bafa8ef936c3553f95306f4de" }, "downloads": -1, "filename": "python-statemachine-0.4.2.tar.gz", "has_sig": false, "md5_digest": "81cd6d827393db1add763c94dc6c6912", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20071, "upload_time": "2017-07-10T17:08:03", "url": "https://files.pythonhosted.org/packages/a0/fa/d0111415b96955695601075e5922498a17328cd2ecfff7c19180c2c499db/python-statemachine-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "cc315ad1a67ea7a18fe7849e3fe9c88f", "sha256": "9f95be08ba75b448ad1c5077e3cc41bfdbe9b3f934ab6f79c47c8f59d34e7843" }, "downloads": -1, "filename": "python_statemachine-0.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cc315ad1a67ea7a18fe7849e3fe9c88f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9174, "upload_time": "2017-07-10T17:42:56", "url": "https://files.pythonhosted.org/packages/92/97/8343d96f8dc65c5c9da2ecb843b4a88d39a62edcda914aef377757db70d5/python_statemachine-0.4.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "96fc2e0861f9f24efe03b43404f70c8c", "sha256": "18aa30c5881cdcba4e6359290a5ee079351e14a69fafc9ae78a011737b1aa526" }, "downloads": -1, "filename": "python-statemachine-0.4.3.tar.gz", "has_sig": false, "md5_digest": "96fc2e0861f9f24efe03b43404f70c8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20073, "upload_time": "2017-07-10T17:42:58", "url": "https://files.pythonhosted.org/packages/a9/1a/c6a952c5192013f1c452d278b474a46308fb507cab890106c17185b2cfa9/python-statemachine-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "fa4924789005b48050e1cf494bc07956", "sha256": "ba0dd5390fed92ab2422256d6d27586618612047b466f10806bdbb2c6a662265" }, "downloads": -1, "filename": "python_statemachine-0.4.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fa4924789005b48050e1cf494bc07956", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9169, "upload_time": "2017-07-10T21:37:58", "url": "https://files.pythonhosted.org/packages/3b/03/118c4c18ea1f53815a1855e4436144813e0d2a537a7603cb61ca3c48e190/python_statemachine-0.4.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6113103fe2690cf87e608208fe6df2d0", "sha256": "5e8d770e5d71216f5fd41d2edda5a4722e816a0c7c104ed94b2afa20e2c680fa" }, "downloads": -1, "filename": "python-statemachine-0.4.4.tar.gz", "has_sig": false, "md5_digest": "6113103fe2690cf87e608208fe6df2d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20061, "upload_time": "2017-07-10T21:37:59", "url": "https://files.pythonhosted.org/packages/36/46/f07626b25bb4d20daabbf82385faa5f9ec543a3ca78c6370f44e32334897/python-statemachine-0.4.4.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "cb19766d267628b8dcb9e1b3e5824c95", "sha256": "3bef00307db99e514d4968ecd5ecc6eb362e46844022a38e76ed62a89aaec275" }, "downloads": -1, "filename": "python_statemachine-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb19766d267628b8dcb9e1b3e5824c95", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10530, "upload_time": "2017-07-13T15:20:22", "url": "https://files.pythonhosted.org/packages/f4/3a/5a2a36b60f55739ca70f88f13b0b23c508b20c8a90d6568bfe4cb507ddd1/python_statemachine-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2dbe0e9ef6a260f20d933d026708be38", "sha256": "1ece28d44ca92be9fb7786d252fd39077211bd9dd1065a6f2fa52b105797ae1a" }, "downloads": -1, "filename": "python-statemachine-0.5.0.tar.gz", "has_sig": false, "md5_digest": "2dbe0e9ef6a260f20d933d026708be38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21151, "upload_time": "2017-07-13T15:20:23", "url": "https://files.pythonhosted.org/packages/65/e4/6922d4aa083ab2674aee7f339ef6e95a0cc656f0da176c0c67b976ca5778/python-statemachine-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "f337d5556704ce277510c0414197f679", "sha256": "d592d8d2e25ee962ae606a2e71461cfec8464f385d9051799518b506c9c1b81d" }, "downloads": -1, "filename": "python_statemachine-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f337d5556704ce277510c0414197f679", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10766, "upload_time": "2017-07-24T18:10:37", "url": "https://files.pythonhosted.org/packages/b2/ed/bdc2850da1f3914a980a641455d2bb94713203c35d52b57443186328e78e/python_statemachine-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b64874ae9c23fb3e3af63d7bd66ceee2", "sha256": "673cef9c9751491a9f9d573ddba49ac93268ce075c83833684b4b762ec9e6d93" }, "downloads": -1, "filename": "python-statemachine-0.5.1.tar.gz", "has_sig": false, "md5_digest": "b64874ae9c23fb3e3af63d7bd66ceee2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21421, "upload_time": "2017-07-24T18:10:38", "url": "https://files.pythonhosted.org/packages/d5/02/779dcce4b9891477d453c1e37fc047da4a9abf36b0d7429b5b8ca4959115/python-statemachine-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "8180243369a5a03a57c5015da1a66fda", "sha256": "f102e4def617bf75c5c3c709516471241c808fa8950eeb9a5e8d42e39e89be3a" }, "downloads": -1, "filename": "python_statemachine-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8180243369a5a03a57c5015da1a66fda", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10919, "upload_time": "2017-08-25T13:42:10", "url": "https://files.pythonhosted.org/packages/e8/8e/fbba0e217768e66e6bb126ce6a56756ad26fa1b1bd66d3c7320b691babf6/python_statemachine-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "178cbf32c32dd8493744a5c3ad02ff36", "sha256": "a5e40687372aaa405a6c42dcb897f528d4117f3f5f616a246ed8ddea6b164b39" }, "downloads": -1, "filename": "python-statemachine-0.6.0.tar.gz", "has_sig": false, "md5_digest": "178cbf32c32dd8493744a5c3ad02ff36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21669, "upload_time": "2017-08-25T13:42:12", "url": "https://files.pythonhosted.org/packages/4c/38/0e38317f2355f2fa217f263f2b59e0a7ed3b9a33467700add1599bd628a6/python-statemachine-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "f91063ca3e3a0871f318e25538175fac", "sha256": "774dfc1a426b1ed51653f6bb4b06fa663ff9f8de747c3037ea2ef20cf8cf7ad0" }, "downloads": -1, "filename": "python_statemachine-0.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f91063ca3e3a0871f318e25538175fac", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11315, "upload_time": "2017-08-25T13:49:55", "url": "https://files.pythonhosted.org/packages/d4/80/325d1d58389972a37ce5d19c403f37a4f3daa7fd9410fb4b8aff8b85a5b6/python_statemachine-0.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec8c169f094497cbcf0e9eb46cf4ae84", "sha256": "64cf629fc889d24ae960cc1768c36d8f649d880c8476c426ea027098d19652d3" }, "downloads": -1, "filename": "python-statemachine-0.6.1.tar.gz", "has_sig": false, "md5_digest": "ec8c169f094497cbcf0e9eb46cf4ae84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22094, "upload_time": "2017-08-25T13:49:57", "url": "https://files.pythonhosted.org/packages/84/36/6796dc99ae246443230f3869820ee3b66d271f9703adf11460bd74bf7a31/python-statemachine-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "b0aace252559337f66d6532e018e03da", "sha256": "4092be7813c6122b14efbf10d722a8b014c51b7febb8b28a4e5398f0751b30d6" }, "downloads": -1, "filename": "python_statemachine-0.6.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b0aace252559337f66d6532e018e03da", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11337, "upload_time": "2017-08-25T18:41:39", "url": "https://files.pythonhosted.org/packages/2f/62/c8ec857739c4dc6333d3add9edc6a376f5e439202dc9c7dea89f76deeb1a/python_statemachine-0.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "16d5655477a18ba1aa95204e0d26d366", "sha256": "2e5e32b388bac98b671a698acb0d75fcfc1d3d5aa36f5e13e01ac50c3a25aa5a" }, "downloads": -1, "filename": "python-statemachine-0.6.2.tar.gz", "has_sig": false, "md5_digest": "16d5655477a18ba1aa95204e0d26d366", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22123, "upload_time": "2017-08-25T18:41:40", "url": "https://files.pythonhosted.org/packages/f9/96/96221e1633f67ce1856946fec66058fbbe6c587ed32753cb6ee8a6b9717e/python-statemachine-0.6.2.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "cfcdc04c2eb0b5b8738330cd42c9ec9b", "sha256": "1252e8c0a162e1adb2e3dee6aa0fd1372ed6a734f227ab5df7ecaa304bc5993a" }, "downloads": -1, "filename": "python_statemachine-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cfcdc04c2eb0b5b8738330cd42c9ec9b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12864, "upload_time": "2018-04-01T06:25:32", "url": "https://files.pythonhosted.org/packages/1c/8e/30d4e541f86907cbc00c90af3a541515bf90641db70523ca64b4e956305e/python_statemachine-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9ff3b92ecc1802c864d506325e16d47", "sha256": "f6dfea765d952d713cf2e165686090c97b1942bb5a519ec61aab24e23a5db9ae" }, "downloads": -1, "filename": "python-statemachine-0.7.0.tar.gz", "has_sig": false, "md5_digest": "b9ff3b92ecc1802c864d506325e16d47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24128, "upload_time": "2018-04-01T06:25:32", "url": "https://files.pythonhosted.org/packages/b7/6e/2dea4c51dc6d0bdeea8fb32d590ba79176cd145b678e38fa764bdb812831/python-statemachine-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "4c36ee763b7ee9656e1f68025689742d", "sha256": "446a0a50c154aba09d7dbcbd761dd024d8039183adc90f0d64c31473bcf42b75" }, "downloads": -1, "filename": "python-statemachine-0.7.1.tar.gz", "has_sig": false, "md5_digest": "4c36ee763b7ee9656e1f68025689742d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24865, "upload_time": "2019-01-17T18:36:15", "url": "https://files.pythonhosted.org/packages/fd/ca/7bf947cef97789aed263fd142c4d3fa3ffccb5e7d5ebe52fd15b4435324d/python-statemachine-0.7.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4c36ee763b7ee9656e1f68025689742d", "sha256": "446a0a50c154aba09d7dbcbd761dd024d8039183adc90f0d64c31473bcf42b75" }, "downloads": -1, "filename": "python-statemachine-0.7.1.tar.gz", "has_sig": false, "md5_digest": "4c36ee763b7ee9656e1f68025689742d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24865, "upload_time": "2019-01-17T18:36:15", "url": "https://files.pythonhosted.org/packages/fd/ca/7bf947cef97789aed263fd142c4d3fa3ffccb5e7d5ebe52fd15b4435324d/python-statemachine-0.7.1.tar.gz" } ] }