{ "info": { "author": "Johannes Hoppe", "author_email": "info@johanneshoppe.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.2", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Home Automation", "Topic :: Internet", "Topic :: Office/Business", "Topic :: Office/Business :: Financial", "Topic :: Office/Business :: Financial :: Accounting", "Topic :: Office/Business :: Financial :: Investment", "Topic :: Office/Business :: Financial :: Point-Of-Sale", "Topic :: Office/Business :: Scheduling", "Topic :: Software Development" ], "description": "joeflow\n=======\n\n**The lean workflow automation framework for machines with heart.**\n\n.. figure:: docs/img/pexels-photo-1020325.jpeg\n :alt: a hand drawn robot\n\nJoeflow is a free workflow automation framework designed to bring\nsimplicity to complex workflows. Joeflow written in `Python`_ based on\nthe world famous `Django`_ web framework.\n\nHere is a little sample of what a process written in joeflow may look\nlike:\n\n.. code-block:: python\n\n class WelcomeProcess(Process):\n user = models.ForeignKey(\n settings.AUTH_USER_MODEL,\n on_delete=models.CASCADE,\n blank=True, null=True,\n )\n\n start = tasks.StartView(fields=['user'])\n\n def has_user(self, task):\n if self.user_id is None:\n return []\n else:\n return [self.send_welcome_email]\n\n def send_welcome_email(self, task):\n self.user.email_user(\n subject='Welcome',\n message='Hello %s!' % self.user.get_short_name(),\n )\n\n edges = (\n (start, has_user),\n (has_user, send_welcome_email),\n )\n\nDesign Principles\n=================\n\nCommon sense is better than convention\n--------------------------------------\n\nJoeflow does not follow any academic modeling notation developed by a\npoor PhD student who actually never worked a day in their life.\nBusinesses are already complex which is why Joeflow is rather simple.\nThere are only two types of tasks \u2013 human & machine \u2013 as well as edges\nto connect them. It\u2019s so simple a toddler (or your CEO) could design a\nworkflow.\n\nLean Automation (breaking the rules)\n------------------------------------\n\nThings don\u2019t always go according to plan especially when humans are\ninvolved. Even the best workflow can\u2019t cover all possible edge cases.\nJoeflow embraces that fact. It allows uses to interrupt a process at any\ngiven point and modify it\u2019s current state. All while tracking all\nchanges. This allows developers to automate the main cases and users\nhandle manually exceptions. This allows you businesses to ship\nprototypes and MVPs of workflows. Improvements can be shipped in\nmultiple iterations without disrupting the business.\n\nPeople\n------\n\nJoeflow is build with all users in mind. Managers should be able to\ndevelop better processes. Users should able to interact with the tasks\nevery single day. And developers should be able to rapidly develop and\ntest new features.\n\nFree\n----\n\nJoeflow is open source and collaboratively developed by industry leaders\nin automation and digital innovation.\n\n*Photo by rawpixel.com from Pexels*\n\n.. _Python: https://python.org\n.. _Django: https://www.djangoproject.com/\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/codingjoe/joeflow", "keywords": "django,process,automation,workflow,framework,task", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "joeflow", "package_url": "https://pypi.org/project/joeflow/", "platform": "", "project_url": "https://pypi.org/project/joeflow/", "project_urls": { "Homepage": "https://github.com/codingjoe/joeflow" }, "release_url": "https://pypi.org/project/joeflow/0.2.0/", "requires_dist": [ "django (>=2.0)", "django-appconf", "celery (>=4.0.0)", "redis", "graphviz", "django-reversion ; extra == 'reversion'", "pytest ; extra == 'test'", "pytest-django ; extra == 'test'" ], "requires_python": "", "summary": "The lean workflow automation framework for machines with heart", "version": "0.2.0" }, "last_serial": 5958457, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c2d63d4569911ac75dbc9b1944a637dc", "sha256": "1710c8793cf9d81b75e5a7de03a7f0c7b2ca578f12e48478cc4f8cee63dbe194" }, "downloads": -1, "filename": "joeflow-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c2d63d4569911ac75dbc9b1944a637dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 130735, "upload_time": "2018-12-02T12:32:22", "url": "https://files.pythonhosted.org/packages/de/a2/4919356b751decf523f5615985932b1058b5ccec68ab37a71503db7d2943/joeflow-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "da95f3e610357b14f981ae31bed843fb", "sha256": "69ed0faa51801ed5ffaaa44abc7938f69ddffde10f4c93cf19c96c62d0358ee4" }, "downloads": -1, "filename": "joeflow-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "da95f3e610357b14f981ae31bed843fb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19011, "upload_time": "2019-10-11T05:13:28", "url": "https://files.pythonhosted.org/packages/5f/ca/d31e57ae881c6a1f2704d749b7702b0f9c223bdd8dc7634020dd3e045578/joeflow-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1c907a7c127ac4943bd4e4bbc53b7d8", "sha256": "864c85685221ff565c6bb1060512cea9bff3ad35097ec168a028f865b13ef260" }, "downloads": -1, "filename": "joeflow-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d1c907a7c127ac4943bd4e4bbc53b7d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122300, "upload_time": "2019-10-11T05:13:30", "url": "https://files.pythonhosted.org/packages/e8/eb/53b3083058329f50895061fd187815e36703c5264ab33a66c23e554a6643/joeflow-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "da95f3e610357b14f981ae31bed843fb", "sha256": "69ed0faa51801ed5ffaaa44abc7938f69ddffde10f4c93cf19c96c62d0358ee4" }, "downloads": -1, "filename": "joeflow-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "da95f3e610357b14f981ae31bed843fb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19011, "upload_time": "2019-10-11T05:13:28", "url": "https://files.pythonhosted.org/packages/5f/ca/d31e57ae881c6a1f2704d749b7702b0f9c223bdd8dc7634020dd3e045578/joeflow-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1c907a7c127ac4943bd4e4bbc53b7d8", "sha256": "864c85685221ff565c6bb1060512cea9bff3ad35097ec168a028f865b13ef260" }, "downloads": -1, "filename": "joeflow-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d1c907a7c127ac4943bd4e4bbc53b7d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122300, "upload_time": "2019-10-11T05:13:30", "url": "https://files.pythonhosted.org/packages/e8/eb/53b3083058329f50895061fd187815e36703c5264ab33a66c23e554a6643/joeflow-0.2.0.tar.gz" } ] }