{ "info": { "author": "Cedric Leroy", "author_email": "cedie73@hotmail.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8" ], "description": "pyungo\n======\n\n|pypi| |python-version| |build-status| |license|\n\npyungo is a lightweight library to link a set of dependent\nfunctions together, and execute them in an ordered manner.\n\npyungo is built around ``Graphs`` and ``Nodes`` used in a\n`DAG `_\n(Directed Acyclic Graph). A `Node` represent a function being\nrun with a defined set of inputs and returning one or several\noutputs. A ``Graph`` is a collection of ``Nodes`` where data\ncan flow in an logical manner, the output of one node serving\nas input of another.\n\ninstallation\n------------\n\n.. code-block:: console\n\n >> pip install pyungo\n\nsimple example\n--------------\n\n.. code-block:: python\n\n graph = Graph()\n\n @graph.register()\n def f_my_function_2(d, a):\n e = d - a\n return e\n\n @graph.register()\n def f_my_function_1(c):\n d = c / 10\n return d\n\n @graph.register()\n def f_my_function_3(a, b):\n c = a + b\n return c\n\n res = graph.calculate(data={'a': 2, 'b': 3})\n print(res)\n\npyungo is registering the functions at import time. It then\nresolve the ``DAG`` and figure out the sequence at which the\nfunctions have to be run per their inputs / outputs. In this \ncase, it will be function 3 then 1 and finally 2.\n\nThe ordered ``Graph`` is run with ``calculate``, with the given\ndata. It returns the output of the last function being \nrun (e), but all intermediate results are also available \nin the ``graph`` instance.\n\nThe result will be (a + b) / 10 - a = -1.5\n\nlinks\n-----\n\n* Documentation: https://cedricleroy.github.io/pyungo/\n* Releases: https://pypi.org/project/pyungo/\n* Tests: https://circleci.com/gh/cedricleroy/pyungo/\n\n\n.. |pypi| image:: https://img.shields.io/pypi/v/pyungo.svg\n :target: https://pypi.org/project/pyungo/\n\n.. |build-status| image:: https://circleci.com/gh/cedricleroy/pyungo.svg?style=shield\n :target: https://circleci.com/gh/cedricleroy/pyungo\n\n.. |python-version| image:: https://img.shields.io/badge/python-3.6+-blue.svg\n :target: https://www.python.org/downloads/release/python-360/\n\n.. |license| image:: https://img.shields.io/github/license/cedricleroy/pyungo.svg\n :target: https://github.com/cedricleroy/pyungo/blob/master/LICENSE.txt\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/cedricleroy/pyungo", "keywords": "dag workflow function dependency", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyungo", "package_url": "https://pypi.org/project/pyungo/", "platform": "", "project_url": "https://pypi.org/project/pyungo/", "project_urls": { "Homepage": "https://github.com/cedricleroy/pyungo" }, "release_url": "https://pypi.org/project/pyungo/0.9.0/", "requires_dist": null, "requires_python": "", "summary": "Function dependencies resolution and execution", "version": "0.9.0", "yanked": false, "yanked_reason": null }, "last_serial": 7469795, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "798e6190c6f04b2a114d123740ac0409", "sha256": "79e97deae1a387ee7aedff935eef72ef32b4c07e335fab9fd70819edd072b0b8" }, "downloads": -1, "filename": "pyungo-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "798e6190c6f04b2a114d123740ac0409", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5575, "upload_time": "2018-03-18T15:38:51", "upload_time_iso_8601": "2018-03-18T15:38:51.576080Z", "url": "https://files.pythonhosted.org/packages/bf/ab/eaecedec7b822699f309cfd8993a9877103bce9a069466f7ee498bbba1c8/pyungo-0.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d83da5043ca2055f03cde361156447b0", "sha256": "b6d279ce75c40379a9799a22b8a3dcd5ebe478f539cb8c96b4ba128c43849d7f" }, "downloads": -1, "filename": "pyungo-0.3.0.tar.gz", "has_sig": false, "md5_digest": "d83da5043ca2055f03cde361156447b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3578, "upload_time": "2018-03-18T15:38:53", "upload_time_iso_8601": "2018-03-18T15:38:53.552059Z", "url": "https://files.pythonhosted.org/packages/a5/74/c2bfea57ffb15b0c60895ed43cef4c4f94df29667c0dfb250baef7e2f9da/pyungo-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "7c1e5db0698d4cb7cc7b426c31d01daf", "sha256": "07e594672a9a9d9ea1de5ad9c1c6acc9e46a3d07bd03b2b3f47aa6fe58c1751a" }, "downloads": -1, "filename": "pyungo-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7c1e5db0698d4cb7cc7b426c31d01daf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5796, "upload_time": "2018-03-23T13:28:35", "upload_time_iso_8601": "2018-03-23T13:28:35.268321Z", "url": "https://files.pythonhosted.org/packages/58/dc/a774f41466399d7a44f4e049d495588f0a74a8ba560a0541560fe37fdcc6/pyungo-0.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "61a89b9d8655af28273139e6c5c9cf0b", "sha256": "ee5aee530d7dbfa5e6d48f303357274ae0f904a3f40256f79beca48ed477f1a8" }, "downloads": -1, "filename": "pyungo-0.4.0.tar.gz", "has_sig": false, "md5_digest": "61a89b9d8655af28273139e6c5c9cf0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3790, "upload_time": "2018-03-23T13:28:36", "upload_time_iso_8601": "2018-03-23T13:28:36.199507Z", "url": "https://files.pythonhosted.org/packages/0d/8c/59649ed06c2699cf56d4e8bece2bc4bfde502d782daca4f5acb25214600d/pyungo-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "4f41c5f3868fdf33084bf3e2fd7e432c", "sha256": "ea5acceff759cff05e105bbaa0fe606c0a268e87f19d0a1518d189f40ad7ca25" }, "downloads": -1, "filename": "pyungo-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4f41c5f3868fdf33084bf3e2fd7e432c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7088, "upload_time": "2018-04-03T13:21:33", "upload_time_iso_8601": "2018-04-03T13:21:33.645016Z", "url": "https://files.pythonhosted.org/packages/ac/b6/d8ad84f217c9421f2710d43c253432610dffbbd75b8120ef857cebba4b4f/pyungo-0.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d2f64588fd85a6c052534cd21735a65e", "sha256": "43c11311727bc670e780c9a6a11e7fe2cc7d860d4b35a200f4b66006d711cc0e" }, "downloads": -1, "filename": "pyungo-0.5.0.tar.gz", "has_sig": false, "md5_digest": "d2f64588fd85a6c052534cd21735a65e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4765, "upload_time": "2018-04-03T13:21:34", "upload_time_iso_8601": "2018-04-03T13:21:34.618280Z", "url": "https://files.pythonhosted.org/packages/4b/e5/e1c3265f473f89341cf03e3b729a42967d7ba19d607391d2e5b4cdbe160f/pyungo-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6": [ { "comment_text": "", "digests": { "md5": "dd02a028255655187671f37e794cd81c", "sha256": "367f0832593bf6cd34a996c5f77ce0e1d17ebd02c45b20bf24a0ccaa3d24f310" }, "downloads": -1, "filename": "pyungo-0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dd02a028255655187671f37e794cd81c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7398, "upload_time": "2018-07-06T21:04:56", "upload_time_iso_8601": "2018-07-06T21:04:56.027607Z", "url": "https://files.pythonhosted.org/packages/97/51/96fa23fa4050dee364aaec46bfffe5732d4239ec84965b48740c6f2db151/pyungo-0.6-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6261971e44eaebcfee5deeaccebed1cd", "sha256": "afc61177ab66131eca662eb410d777b5d77c961bfe97f98108e447d569d43a82" }, "downloads": -1, "filename": "pyungo-0.6.tar.gz", "has_sig": false, "md5_digest": "6261971e44eaebcfee5deeaccebed1cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5058, "upload_time": "2018-07-06T21:04:57", "upload_time_iso_8601": "2018-07-06T21:04:57.183588Z", "url": "https://files.pythonhosted.org/packages/e9/a3/e94e6b04303791783281581d9a16aa066acc826a835fff771bd2572a7681/pyungo-0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7": [ { "comment_text": "", "digests": { "md5": "968b33e6c32b237cede82f295ce97913", "sha256": "e2cf1896a47de0fdb61ac961dc938b5df7562ee6b58e3fb9ee02a76bfc10d1ba" }, "downloads": -1, "filename": "pyungo-0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "968b33e6c32b237cede82f295ce97913", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8397, "upload_time": "2019-02-10T20:26:15", "upload_time_iso_8601": "2019-02-10T20:26:15.098369Z", "url": "https://files.pythonhosted.org/packages/8b/c4/3473c2464db1ea769daf8f945c337228ab8acba1f330ffd02816291334c0/pyungo-0.7-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1a6b25c425ad1d9ead48e59fecb3a11c", "sha256": "375713740f5b2515e8ebee9bca6fe6b2ca9aa5a98eff6b3be497b1500a6357c3" }, "downloads": -1, "filename": "pyungo-0.7.tar.gz", "has_sig": false, "md5_digest": "1a6b25c425ad1d9ead48e59fecb3a11c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6263, "upload_time": "2019-02-10T20:26:17", "upload_time_iso_8601": "2019-02-10T20:26:17.578202Z", "url": "https://files.pythonhosted.org/packages/43/38/af1a11e4429076f515e0ebb62d216ed19f22bcc1d4411bd9be61080841fc/pyungo-0.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8": [ { "comment_text": "", "digests": { "md5": "7ac9db974e5540013fcea3ed607e45e4", "sha256": "c0e616938eb6556903ecbaaf76752c5e2937d63e0ab843f3c7d7ac5c6d4d33aa" }, "downloads": -1, "filename": "pyungo-0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7ac9db974e5540013fcea3ed607e45e4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9596, "upload_time": "2019-03-17T22:15:21", "upload_time_iso_8601": "2019-03-17T22:15:21.922426Z", "url": "https://files.pythonhosted.org/packages/5b/f3/c8d01acc35491336ab3e3f81be80f3989a19ce804313a9d3152cfc6d7ea6/pyungo-0.8-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f5493396fa93d870aec995935f22d87d", "sha256": "872b0701429a105b1bd2cb863f51ef68226ad695d227b13621bdc1e322ddc588" }, "downloads": -1, "filename": "pyungo-0.8.tar.gz", "has_sig": false, "md5_digest": "f5493396fa93d870aec995935f22d87d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7018, "upload_time": "2019-03-17T22:15:24", "upload_time_iso_8601": "2019-03-17T22:15:24.483384Z", "url": "https://files.pythonhosted.org/packages/96/67/8f73df30378b6ee66718526f86a15e6426d47c0f09d4d29fc46485d090fb/pyungo-0.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "0681751d25dfa2df190598ffcb6e8ec7", "sha256": "1a45f084e5580b50cb749f3ebf1de574ad68a49fbb53299297bc585f2e22cc4c" }, "downloads": -1, "filename": "pyungo-0.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0681751d25dfa2df190598ffcb6e8ec7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11199, "upload_time": "2019-10-27T16:49:01", "upload_time_iso_8601": "2019-10-27T16:49:01.344215Z", "url": "https://files.pythonhosted.org/packages/f3/c3/1f07414fcc558275a583bc1d5f30124cd6dfabc161682bc4a1cc36a5e01a/pyungo-0.8.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "73207747bbbc74e0b70f73547be1bf45", "sha256": "174e8a78ba1aa6896f888169da126fa18156fa11ddec2689d8542a205ef7d553" }, "downloads": -1, "filename": "pyungo-0.8.1.tar.gz", "has_sig": false, "md5_digest": "73207747bbbc74e0b70f73547be1bf45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7229, "upload_time": "2019-10-27T16:49:05", "upload_time_iso_8601": "2019-10-27T16:49:05.996979Z", "url": "https://files.pythonhosted.org/packages/b1/06/e1d4adea2cde16a0f276442cb940dc7ccf49426a01c8446fbfa3e2e3743d/pyungo-0.8.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "d862a63995f88114581898fcd7e0089d", "sha256": "773eddf38f7d703a510f0ca1b4d2a59ef3d8cfcdfa06e3d472d7ed48e8170645" }, "downloads": -1, "filename": "pyungo-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d862a63995f88114581898fcd7e0089d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11482, "upload_time": "2020-06-13T20:57:07", "upload_time_iso_8601": "2020-06-13T20:57:07.538931Z", "url": "https://files.pythonhosted.org/packages/ff/0e/b6d69990a521e174ca95495db582df5a763c625f922743545b05fb8a2d6a/pyungo-0.9.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "625d87bb8307c547f523c7a11605706d", "sha256": "1a713df94dd8704bbe1c2587676568d6968fc55be06fb88e26fad7844ec58303" }, "downloads": -1, "filename": "pyungo-0.9.0.tar.gz", "has_sig": false, "md5_digest": "625d87bb8307c547f523c7a11605706d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9644, "upload_time": "2020-06-13T20:57:11", "upload_time_iso_8601": "2020-06-13T20:57:11.165401Z", "url": "https://files.pythonhosted.org/packages/87/4a/71cb4fab712dbffe6c1335a28377d2021778a51f78c4ce8dfe4f9c705573/pyungo-0.9.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d862a63995f88114581898fcd7e0089d", "sha256": "773eddf38f7d703a510f0ca1b4d2a59ef3d8cfcdfa06e3d472d7ed48e8170645" }, "downloads": -1, "filename": "pyungo-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d862a63995f88114581898fcd7e0089d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11482, "upload_time": "2020-06-13T20:57:07", "upload_time_iso_8601": "2020-06-13T20:57:07.538931Z", "url": "https://files.pythonhosted.org/packages/ff/0e/b6d69990a521e174ca95495db582df5a763c625f922743545b05fb8a2d6a/pyungo-0.9.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "625d87bb8307c547f523c7a11605706d", "sha256": "1a713df94dd8704bbe1c2587676568d6968fc55be06fb88e26fad7844ec58303" }, "downloads": -1, "filename": "pyungo-0.9.0.tar.gz", "has_sig": false, "md5_digest": "625d87bb8307c547f523c7a11605706d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9644, "upload_time": "2020-06-13T20:57:11", "upload_time_iso_8601": "2020-06-13T20:57:11.165401Z", "url": "https://files.pythonhosted.org/packages/87/4a/71cb4fab712dbffe6c1335a28377d2021778a51f78c4ce8dfe4f9c705573/pyungo-0.9.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }