{ "info": { "author": "Rapha\u00ebl Barrois", "author_email": "raphael.barrois+xworkflows@polytechnique.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "XWorkflows\n==========\n\nXWorkflows is a library to add workflows, or state machines, to Python objects.\n\nIt has been fully tested with all versions of Python from 2.6 to 3.3\n\nLinks\n-----\n\n* Package on PyPI: http://pypi.python.org/pypi/xworkflows\n* Repository and issues on GitHub: http://github.com/rbarrois/xworkflows\n* Doc on http://readthedocs.org/docs/xworkflows/\n\nExample\n-------\n\nIt allows to easilly define a workflow, attach it to a class, and use its transitions::\n\n import xworkflows\n\n class MyWorkflow(xworkflows.Workflow):\n # A list of state names\n states = (\n ('foo', \"Foo\"),\n ('bar', \"Bar\"),\n ('baz', \"Baz\"),\n )\n # A list of transition definitions; items are (name, source states, target).\n transitions = (\n ('foobar', 'foo', 'bar'),\n ('gobaz', ('foo', 'bar'), 'baz'),\n ('bazbar', 'baz', 'bar'),\n )\n initial_state = 'foo'\n\n\n class MyObject(xworkflows.WorkflowEnabled):\n state = MyWorkflow()\n\n @xworkflows.transition()\n def foobar(self):\n return 42\n\n # It is possible to use another method for a given transition.\n @xworkflows.transition('gobaz')\n def blah(self):\n return 13\n\n >>> o = MyObject()\n >>> o.state\n >\n >>> o.state.is_foo\n True\n >>> o.state.name\n 'foo'\n >>> o.state.title\n 'Foo'\n >>> o.foobar()\n 42\n >>> o.state\n >\n >>> o.state.name\n 'bar'\n >>> o.state.title\n 'Bar'\n >>> o.blah()\n 13\n >>> o.state\n >\n >>> o.state.name\n 'baz'\n >>> o.state.title\n 'Baz'\n\nHooks\n-----\n\nCustom functions can be hooked to transactions, in order to run before/after a transition,\nwhen entering a state, when leaving a state, ...::\n\n\n class MyObject(xworkflows.WorkflowEnabled):\n\n state = MyWorkflow()\n\n @xworkflows.before_transition('foobar')\n def my_hook(self, *args, **kwargs):\n # *args and **kwargs are those passed to MyObject.foobar(...)\n pass\n\n @xworkflows.on_enter_state('bar')\n def my_other_hook(self, result, *args, **kwargs):\n # Will be called just after any transition entering 'bar'\n # result is the value returned by that transition\n # *args, **kwargs are the arguments/keyword arguments passed to the\n # transition.\n pass\n", "description_content_type": null, "docs_url": "https://pythonhosted.org/xworkflows/", "download_url": "https://pypi.python.org/pypi/xworkflows/", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rbarrois/xworkflows", "keywords": "workflow,state machine,automaton", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "xworkflows", "package_url": "https://pypi.org/project/xworkflows/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/xworkflows/", "project_urls": { "Download": "https://pypi.python.org/pypi/xworkflows/", "Homepage": "https://github.com/rbarrois/xworkflows" }, "release_url": "https://pypi.org/project/xworkflows/1.0.4/", "requires_dist": null, "requires_python": null, "summary": "A library implementing workflows (or state machines) for Python projects.", "version": "1.0.4" }, "last_serial": 1212878, "releases": { "0.0": [ { "comment_text": "", "digests": { "md5": "a7f371c97225326d5c2c2979ceb94f28", "sha256": "f31ec4bacfe2b0c5b44aeadb55395d9b84ab4ef07421ef516116679bfada8264" }, "downloads": -1, "filename": "xworkflows-0.0.tar.gz", "has_sig": false, "md5_digest": "a7f371c97225326d5c2c2979ceb94f28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7128, "upload_time": "2012-03-26T21:15:11", "url": "https://files.pythonhosted.org/packages/e8/0b/4fa030a10de43fd80629c260d628dd421367c65c6c5c85bd31b3ce03368a/xworkflows-0.0.tar.gz" } ], "0.1": [ { "comment_text": "", "digests": { "md5": "e416ae35cf846dd12d393d1e34dc578a", "sha256": "9380a5aafa29b5147989bc32962f09f9b72e2225c3abb6771c73e88af1a5bbb3" }, "downloads": -1, "filename": "xworkflows-0.1.tar.gz", "has_sig": false, "md5_digest": "e416ae35cf846dd12d393d1e34dc578a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16156, "upload_time": "2012-05-10T11:28:06", "url": "https://files.pythonhosted.org/packages/7b/51/cc5a593052e1113ea1255f0bf0f76c0a8078c488ca3ac9649530debdca15/xworkflows-0.1.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "80b314b42ed3eb8ec37320d546e6c449", "sha256": "2d73a0ce4a1191712912489cdb9dac401bf7bf8457670d5892d0aa512a205d3b" }, "downloads": -1, "filename": "xworkflows-0.2.1.tar.gz", "has_sig": false, "md5_digest": "80b314b42ed3eb8ec37320d546e6c449", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15396, "upload_time": "2012-03-26T21:17:52", "url": "https://files.pythonhosted.org/packages/a4/f5/454dcf2c1fb96958cc6491cc018c401b85c592cd19fddb5c50fd8bbd7433/xworkflows-0.2.1.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "bf2e0928e329f6a43fd3b81f9311e381", "sha256": "7e10fc1ca5cd2e182dcb1d61119344d66b29685c1c26afc1574a0f030c8bfa18" }, "downloads": -1, "filename": "xworkflows-0.2.3.tar.gz", "has_sig": false, "md5_digest": "bf2e0928e329f6a43fd3b81f9311e381", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14399, "upload_time": "2012-04-15T22:42:43", "url": "https://files.pythonhosted.org/packages/f4/11/8c098a5296a2b7c158e29c4661ad782691291ab6d70cdb02606b67e33157/xworkflows-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "c01149efebf9135ce7ef36b71958ec67", "sha256": "723f1018417d1af07fd9184dd9240e24ede9e0a2b8adabf2c10ea2dcf1d0c4f0" }, "downloads": -1, "filename": "xworkflows-0.2.4.tar.gz", "has_sig": false, "md5_digest": "c01149efebf9135ce7ef36b71958ec67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21321, "upload_time": "2012-04-24T00:07:36", "url": "https://files.pythonhosted.org/packages/da/e7/b910ec1c58a85716cf11c89aeac394a5c789c1c1330f5b5f9bd34c6bc0da/xworkflows-0.2.4.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6275e1586a4a51e3be94b02158fe963e", "sha256": "09b897924d48a3564e12137ecd6dc6457d85ee444792415d4e386e9a39da0401" }, "downloads": -1, "filename": "xworkflows-0.3.0.tar.gz", "has_sig": false, "md5_digest": "6275e1586a4a51e3be94b02158fe963e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22442, "upload_time": "2012-05-28T18:19:21", "url": "https://files.pythonhosted.org/packages/53/40/3af271af1679cba04502fe05e8663034507754f716577fbd1a06cc705c34/xworkflows-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "b1d5d5645e2ce73f9477f4bf6d2db51a", "sha256": "327a607e9877c35ee7a1b01a35f7e79f452847e5a6efd7364a4afa1645f23897" }, "downloads": -1, "filename": "xworkflows-0.3.1.tar.gz", "has_sig": false, "md5_digest": "b1d5d5645e2ce73f9477f4bf6d2db51a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22579, "upload_time": "2012-05-29T14:16:56", "url": "https://files.pythonhosted.org/packages/4a/8f/8931e6741b4f0686bb4baed8ecaf1c1e812431126be2c513b414bac183e1/xworkflows-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "89b8b8422e851b5005e8df009b24c802", "sha256": "dd7d003093579626ba6a1d9fb001fc15c9f25358127d26bf02fafdaca9914db7" }, "downloads": -1, "filename": "xworkflows-0.3.2.tar.gz", "has_sig": false, "md5_digest": "89b8b8422e851b5005e8df009b24c802", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22664, "upload_time": "2012-06-05T08:29:04", "url": "https://files.pythonhosted.org/packages/38/7e/90f14983872937742674d046ab1a5a6fff28e1f9a7424b61dd6cccdc06d7/xworkflows-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "4b21c574f688630d8aa70da657bc61f5", "sha256": "e0856d6825d4383c317c1e15968b4cfaf0f1fa93090de5a08e90e5bf252a366f" }, "downloads": -1, "filename": "xworkflows-0.4.0.tar.gz", "has_sig": false, "md5_digest": "4b21c574f688630d8aa70da657bc61f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32467, "upload_time": "2012-08-02T13:22:20", "url": "https://files.pythonhosted.org/packages/14/3d/efa6a19a8e8943b83c058fd745c2c5d28c9a1fecbd8cf34317eaf7e2053d/xworkflows-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "e65f5bbc908608387078f5188d2385fa", "sha256": "c1701b2c8fc7aff2a913b0cccc04a7e80905756d83f044193d5f0259d3a62abe" }, "downloads": -1, "filename": "xworkflows-0.4.1.tar.gz", "has_sig": false, "md5_digest": "e65f5bbc908608387078f5188d2385fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32576, "upload_time": "2012-08-03T13:53:54", "url": "https://files.pythonhosted.org/packages/54/ed/d7016b3aad485a8e6363a2007261f255bd749009990f61616d17f74d8a58/xworkflows-0.4.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "d186734943dfe6b2f7db66a8f729c382", "sha256": "2068a5f2685789d1489b62c7ebf8c042d00f21c211f5710f31e3c3e381ca8bb9" }, "downloads": -1, "filename": "xworkflows-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d186734943dfe6b2f7db66a8f729c382", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33667, "upload_time": "2013-04-29T20:39:11", "url": "https://files.pythonhosted.org/packages/20/9e/299db451405072aac02ad56c574bcb8f8904424fc92d5e290c3c60e4401d/xworkflows-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "cb665c65ec333445d142a47ea7ea5175", "sha256": "4c1d9f0a15174ffec78e4fbd8334df6581d7233d69759e9ace76ae32664a84d8" }, "downloads": -1, "filename": "xworkflows-1.0.1.tar.gz", "has_sig": false, "md5_digest": "cb665c65ec333445d142a47ea7ea5175", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33520, "upload_time": "2013-09-24T12:07:28", "url": "https://files.pythonhosted.org/packages/fe/60/6483b50be09794c8d14803adf962263e58d3073bc3270c3b339cea57eb74/xworkflows-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "53f182f8e18cd997f86d44744dadc51f", "sha256": "fca9880c7b3861a1716c3de93dd7a4c0a552da9c215e23e29d0af1a753376209" }, "downloads": -1, "filename": "xworkflows-1.0.2.tar.gz", "has_sig": false, "md5_digest": "53f182f8e18cd997f86d44744dadc51f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33827, "upload_time": "2013-09-24T16:30:50", "url": "https://files.pythonhosted.org/packages/64/fc/392e85d3b4df8ab9d94b2f48139693fcd415d029d46b2ad854e833dd20f2/xworkflows-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "7456888708e55a118e2a889dab72e647", "sha256": "e6d8fceccb6f5d041f222cdd8cdfeb0dac628636f4108e99524cfbe965d5c115" }, "downloads": -1, "filename": "xworkflows-1.0.3.tar.gz", "has_sig": false, "md5_digest": "7456888708e55a118e2a889dab72e647", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34519, "upload_time": "2014-01-28T23:41:56", "url": "https://files.pythonhosted.org/packages/7e/b9/ca229c89540405584f0babec708d46fdaae78a3939329cff29e59a07e26a/xworkflows-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "11c5f3eece4b1bbd2445b7ba25fd27a2", "sha256": "bac76b991d65cb880c671d3f577e1c949bda18bff58d6b9d692ccd2aa7792caf" }, "downloads": -1, "filename": "xworkflows-1.0.4.tar.gz", "has_sig": false, "md5_digest": "11c5f3eece4b1bbd2445b7ba25fd27a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33965, "upload_time": "2014-09-04T13:24:53", "url": "https://files.pythonhosted.org/packages/cb/30/b1763c9244c589ab4e069a0bafad75da4b4f1942914412d94f7bdfbb82bf/xworkflows-1.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "11c5f3eece4b1bbd2445b7ba25fd27a2", "sha256": "bac76b991d65cb880c671d3f577e1c949bda18bff58d6b9d692ccd2aa7792caf" }, "downloads": -1, "filename": "xworkflows-1.0.4.tar.gz", "has_sig": false, "md5_digest": "11c5f3eece4b1bbd2445b7ba25fd27a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33965, "upload_time": "2014-09-04T13:24:53", "url": "https://files.pythonhosted.org/packages/cb/30/b1763c9244c589ab4e069a0bafad75da4b4f1942914412d94f7bdfbb82bf/xworkflows-1.0.4.tar.gz" } ] }