{ "info": { "author": "Kostis Anagnostopoulos, Huy Nguyen, Arel Cordero, Pierre Garrigues, Rob Hess, Tobi Baumgartner, Clayton Mellina", "author_email": "ankostis@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: OS Independent", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Graphtik\n========\n\n|python-ver| |dev-status| |gh-version| |pypi-version| |travis-status|\n|doc-status| |cover-status| |downloads-count| |codestyle| |proj-lic|\n\n|gh-watch| |gh-star| |gh-fork| |gh-issues|\n\n It\u2019s a DAG all the way down\n\nLightweight computation graphs for Python\n-----------------------------------------\n\n**Graphtik** is an an understandable and lightweight Python module for building and\nrunning ordered graphs of computations.\nThe API posits a fair compromise between features and complexity, without precluding any.\nIt can be used as is to build machine learning pipelines for data science projects.\nIt should be extendable to act as the core for a custom ETL engine or\na workflow-processor for interdependent files and processes.\n\n.. note:\n *Graphtik* is a temporary fork of `Graphkit`_ to experiment with Python\n 3.6+ features.\n\nQuick start\n-----------\n\nHere\u2019s how to install:\n\n::\n\n pip install graphtik\n\nOR with dependencies for plotting support (and you need to install\n`Graphviz`_ suite separately, with your OS tools)::\n\n pip install graphtik[plot]\n\nHere\u2019s a Python script with an example Graphtik computation graph that\nproduces multiple outputs (``a * b``, ``a - a * b``, and\n``abs(a - a * b) ** 3``)::\n\n >>> from operator import mul, sub\n >>> from functools import partial\n >>> from graphtik import compose, operation\n\n >>> # Computes |a|^p.\n >>> def abspow(a, p):\n ... c = abs(a) ** p\n ... return c\n\nCompose the ``mul``, ``sub``, and ``abspow`` functions into a computation graph::\n\n >>> graphop = compose(name=\"graphop\")(\n ... operation(name=\"mul1\", needs=[\"a\", \"b\"], provides=[\"ab\"])(mul),\n ... operation(name=\"sub1\", needs=[\"a\", \"ab\"], provides=[\"a_minus_ab\"])(sub),\n ... operation(name=\"abspow1\", needs=[\"a_minus_ab\"], provides=[\"abs_a_minus_ab_cubed\"])\n ... (partial(abspow, p=3))\n ... )\n\n\nRun the graph and request all of the outputs::\n\n >>> graphop({'a': 2, 'b': 5})\n {'a': 2, 'b': 5, 'ab': 10, 'a_minus_ab': -8, 'abs_a_minus_ab_cubed': 512}\n\n >>> graphop({'a': 2, 'b': 5}, outputs=[\"a_minus_ab\"])\n {'a_minus_ab': -8}\n\n.. _Graphkit: https://github.com/yahoo/graphkit\n.. _`Graphviz`: https://graphviz.org\n\n.. |sample-plot| image:: docs/source/images/barebone_2ops\n :alt: sample graphtik plot\n :width: 120px\n :align: middle\n\n.. _substs:\n\n.. |travis-status| image:: https://img.shields.io/travis/pygraphkit/graphtik\n :alt: Travis continuous integration testing ok? (Linux)\n :target: https://travis-ci.org/pygraphkit/graphtik/builds\n\n.. |doc-status| image:: https://img.shields.io/readthedocs/graphtik?branch=master\n :alt: ReadTheDocs ok?\n :target: https://graphtik.readthedocs.org\n\n.. |cover-status| image:: https://img.shields.io/codecov/c/github/pygraphkit/graphtik\n :target: https://codecov.io/gh/pygraphkit/graphtik\n\n.. |gh-version| image:: https://img.shields.io/github/v/release/pygraphkit/graphtik?label=GitHub%20release&include_prereleases\n :target: https://github.com/pygraphkit/graphtik/releases\n :alt: Latest release in GitHub\n\n.. |pypi-version| image:: https://img.shields.io/pypi/v/graphtik?label=PyPi%20version\n :target: https://pypi.python.org/pypi/graphtik/\n :alt: Latest version in PyPI\n\n.. |python-ver| image:: https://img.shields.io/pypi/pyversions/graphtik?label=Python\n :target: https://pypi.python.org/pypi/graphtik/\n :alt: Supported Python versions of latest release in PyPi\n\n.. |dev-status| image:: https://pypip.in/status/graphtik/badge\n :target: https://pypi.python.org/pypi/graphtik/\n :alt: Development Status\n\n.. |downloads-count| image:: https://pypip.in/download/graphtik/badge.svg?period=month&label=PyPi%20downloads\n :target: https://pypi.python.org/pypi/graphtik/\n :alt: PyPi downloads\n\n.. |codestyle| image:: https://img.shields.io/badge/code%20style-black-black\n :target: https://github.com/ambv/black\n :alt: Code Style\n\n.. |gh-watch| image:: https://img.shields.io/github/watchers/pygraphkit/graphtik?style=social\n :target: https://github.com/pygraphkit/graphtik\n :alt: Github watchers\n\n.. |gh-star| image:: https://img.shields.io/github/stars/pygraphkit/graphtik?style=social\n :target: https://github.com/pygraphkit/graphtik\n :alt: Github stargazers\n\n.. |gh-fork| image:: https://img.shields.io/github/forks/pygraphkit/graphtik?style=social\n :target: https://github.com/pygraphkit/graphtik\n :alt: Github forks\n\n.. |gh-issues| image:: http://img.shields.io/github/issues/pygraphkit/graphtik?style=social\n :target: https://github.com/pygraphkit/graphtik/issues\n :alt: Issues count\n\n.. |proj-lic| image:: https://img.shields.io/pypi/l/graphtik\n :target: https://www.apache.org/licenses/LICENSE-2.0\n :alt: Apache License, version 2.0\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/pygraphkit/graphtik", "keywords": "graph,computation graph,DAG,directed acyclical graph,executor,scheduler,etl,workflow,pipeline", "license": "Apache-2.0", "maintainer": "", "maintainer_email": "", "name": "graphtik", "package_url": "https://pypi.org/project/graphtik/", "platform": "Windows", "project_url": "https://pypi.org/project/graphtik/", "project_urls": { "Bug Tracker": "https://github.com/pygraphkit/graphtik/issues", "Documentation": "https://graphtik.readthedocs.io/", "Homepage": "http://github.com/pygraphkit/graphtik", "Release Notes": "https://graphtik.readthedocs.io/en/latest/changes.html", "Sources": "https://github.com/pygraphkit/graphtik" }, "release_url": "https://pypi.org/project/graphtik/2.1.0/", "requires_dist": [ "boltons", "networkx (==2.2) ; python_version < \"3.5\"", "networkx ; python_version >= \"3.5\"", "matplotlib ; extra == 'plot'", "pydot ; extra == 'plot'", "matplotlib ; extra == 'test'", "pydot ; extra == 'test'", "pytest ; extra == 'test'", "pytest-cov ; extra == 'test'", "pytest-sphinx ; extra == 'test'" ], "requires_python": "", "summary": "Lightweight computation graphs for Python", "version": "2.1.0" }, "last_serial": 6001283, "releases": { "2.0.0b0": [ { "comment_text": "", "digests": { "md5": "863e6d5a242d898e2fb4ac4633dd8af2", "sha256": "7d8df7be892fbb5c63e9a793595e6d1823a64874949b787836db767b129a73f2" }, "downloads": -1, "filename": "graphtik-2.0.0b0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "863e6d5a242d898e2fb4ac4633dd8af2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30140, "upload_time": "2019-10-15T16:51:02", "url": "https://files.pythonhosted.org/packages/3e/63/192a8bdc54e1c8672210dc9f6d88fbc4c5f17104764962928c51cc1046ec/graphtik-2.0.0b0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49ce80ece809fc7635952b8f03b3f251", "sha256": "325de3e20faa55b46344fee51e91522c705df60b75b926287c16c416f88b2c62" }, "downloads": -1, "filename": "graphtik-2.0.0b0.tar.gz", "has_sig": false, "md5_digest": "49ce80ece809fc7635952b8f03b3f251", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35255, "upload_time": "2019-10-15T16:51:06", "url": "https://files.pythonhosted.org/packages/3b/a6/cd2452db66cefb181420906499bdab9d1a596d662f1ce334f24c903c81f6/graphtik-2.0.0b0.tar.gz" } ], "2.0.0b1": [ { "comment_text": "", "digests": { "md5": "b7d29ed1eaa82ed9c61f2544462cb8bc", "sha256": "f0f97cae6e2cc82cab2be2537bc62aec739befc397816774417767d8fb3c72d8" }, "downloads": -1, "filename": "graphtik-2.0.0b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b7d29ed1eaa82ed9c61f2544462cb8bc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30017, "upload_time": "2019-10-15T19:32:59", "url": "https://files.pythonhosted.org/packages/3b/1c/a7418d919322a641a9bb64d350b07ebbc06150e5bafa27afd63bc47a84d7/graphtik-2.0.0b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "42b8fb89ca1f83f7ea2b402782f53e1b", "sha256": "f47f3eb08ff25b94d2087fc454b8a4d6330724bb3327c0114b35aa878ef038e0" }, "downloads": -1, "filename": "graphtik-2.0.0b1.tar.gz", "has_sig": false, "md5_digest": "42b8fb89ca1f83f7ea2b402782f53e1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35061, "upload_time": "2019-10-15T19:33:01", "url": "https://files.pythonhosted.org/packages/ac/9b/713e4d6d71bc0735b46f6549e9bc9f6611e9cb66a8f6f47bee27f781b9e6/graphtik-2.0.0b1.tar.gz" } ], "2.0.1b0": [ { "comment_text": "", "digests": { "md5": "450fbfcf18a00fd7fa412b674117afcb", "sha256": "95bb795ab5e6522cf545d481a3ec314592754b0a2881cb3a94cac94a1c507d1e" }, "downloads": -1, "filename": "graphtik-2.0.1b0.tar.gz", "has_sig": false, "md5_digest": "450fbfcf18a00fd7fa412b674117afcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36332, "upload_time": "2019-10-18T16:31:24", "url": "https://files.pythonhosted.org/packages/ff/fe/bc1847068f67f22292501c4da15070db1102870328ac2326745ebc5ab1c4/graphtik-2.0.1b0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "194f61bae84631c2d557b63c8add5610", "sha256": "e37d9b832ba15f350850534a9d50656463b7021d867df5ebd035a55075e8971c" }, "downloads": -1, "filename": "graphtik-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "194f61bae84631c2d557b63c8add5610", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29892, "upload_time": "2019-10-19T23:01:23", "url": "https://files.pythonhosted.org/packages/2c/80/f36586ff12cd34985dcebe9fe1d6505dafce4366d1726081f107675be44f/graphtik-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2e2764cb038077c1ac1b1055fa9d37e", "sha256": "ff969be3529ccfe149d58dced30aa6c9322d54197794e190549935f202621fd0" }, "downloads": -1, "filename": "graphtik-2.1.0.tar.gz", "has_sig": false, "md5_digest": "b2e2764cb038077c1ac1b1055fa9d37e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35813, "upload_time": "2019-10-19T23:01:25", "url": "https://files.pythonhosted.org/packages/7e/10/860afe9ee3c57e736c7b0ef4ad0720035386ea37420a1a8ad78e64c0801c/graphtik-2.1.0.tar.gz" } ], "2.1.1.dev0": [ { "comment_text": "", "digests": { "md5": "12b54bf08631fd016f2cad49b450a4b5", "sha256": "8cd5a4c6d5496bfaee99d2dde504dbd6af139c3f782358733f2cfc76461fc49c" }, "downloads": -1, "filename": "graphtik-2.1.1.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "12b54bf08631fd016f2cad49b450a4b5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 29974, "upload_time": "2019-10-19T23:16:01", "url": "https://files.pythonhosted.org/packages/78/a7/461eeb778d189b191a017818127b40d5aded9dfd00db235d87df3fadbaf5/graphtik-2.1.1.dev0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9553dd81d6f5eea8de6b5c51d4ef34ce", "sha256": "7371193da5527c54febd814cca027ec17fcf21e455630edfbe0f34d3da5abcc9" }, "downloads": -1, "filename": "graphtik-2.1.1.dev0.tar.gz", "has_sig": false, "md5_digest": "9553dd81d6f5eea8de6b5c51d4ef34ce", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 35852, "upload_time": "2019-10-19T23:16:02", "url": "https://files.pythonhosted.org/packages/b1/c5/7e1c6bbf0292e41187ff00a7c9749ae9c2be05131cee6bebd4b1c3a88b4d/graphtik-2.1.1.dev0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "194f61bae84631c2d557b63c8add5610", "sha256": "e37d9b832ba15f350850534a9d50656463b7021d867df5ebd035a55075e8971c" }, "downloads": -1, "filename": "graphtik-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "194f61bae84631c2d557b63c8add5610", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29892, "upload_time": "2019-10-19T23:01:23", "url": "https://files.pythonhosted.org/packages/2c/80/f36586ff12cd34985dcebe9fe1d6505dafce4366d1726081f107675be44f/graphtik-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2e2764cb038077c1ac1b1055fa9d37e", "sha256": "ff969be3529ccfe149d58dced30aa6c9322d54197794e190549935f202621fd0" }, "downloads": -1, "filename": "graphtik-2.1.0.tar.gz", "has_sig": false, "md5_digest": "b2e2764cb038077c1ac1b1055fa9d37e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35813, "upload_time": "2019-10-19T23:01:25", "url": "https://files.pythonhosted.org/packages/7e/10/860afe9ee3c57e736c7b0ef4ad0720035386ea37420a1a8ad78e64c0801c/graphtik-2.1.0.tar.gz" } ] }