{ "info": { "author": "Henry Zhao", "author_email": "hzhao1016@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Build Tools" ], "description": "# Piniverse\n\n[![PyPI version](https://badge.fury.io/py/piniverse.svg)](https://badge.fury.io/py/piniverse)\n[![Build Status](https://travis-ci.org/hzhao19/piniverse.svg?branch=master)](https://travis-ci.org/hzhao19/piniverse)\n[![codecov](https://codecov.io/gh/hzhao19/piniverse/branch/master/graph/badge.svg)](https://codecov.io/gh/hzhao19/piniverse)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/dwyl/esta/issues)\n\nPiniverse is a simple library to programmatically orchestrate function calls for Python. \n\n
\n

\n \n

\n
\n\nTable of contents\n---------------\n\n- [Features Support](#features-support)\n- [Prerequisites](#prerequisites)\n- [Getting Started](#getting-started)\n- [Limitations](#limitations)\n- [Contributions](#contributions)\n\nFeatures Support \n---------------\n\n* Execution of pinned functions inside a python package in topological ordering\n* Visualization of the directed acyclic graph\n\nPrerequisites \n---------------\n\n* Python 3.7\n\nGetting Started\n---------------\n\n### Installation\n\n```\n$ pip install piniverse\n```\n\n### Basic Usage\n\nPiniverse inspects pinned functions inside a package.\n\n```\n.\n\u251c\u2500\u2500 workspace/ <-- workspace directory\n\u251c\u2500\u2500 script.py <-- script file\n\n```\n\nTo orchestrate your desired functions, pin them! Every pinned function has a task identifier, and if applicable, a succeeding toward identifier.\n\n```\n# workspace/\n\nfrom piniverse import Pinned\n\n\n@Pinned(\n task='1',\n toward='2', \n arguments={\n args: ['Hello World']\n kwargs: {'content': 'Programming exercise...'}\n }\n)\ndef simple_print(title: str, content: str = '') -> None:\n message = \"\"\"\n Title: {}\n Content: \n {}\n \"\"\".format(title, content)\n \n print(message)\n\n\n@Pinned(\n task='2',\n arguments={\n args: ['A pretty Hello World']\n kwargs: {'content': 'A pretty programming exercise!'\n }\n)\ndef pretty_print(title: str, content: str = '') -> None:\n message = \"\"\"\n Pretty Title: {}\n Pretty Content: \n {}\n \"\"\".format(title, content)\n\n print(message)\n\n```\n\nTo execute your pinned functions, plan and apply!\n\n```\n# script.py\n\nimport piniverse\nimport workspace\n\n\npiniverse.plan(workspace)\npiniverse.apply()\n\n// Title: Hello World\n// Content: \n// Programming exercise...\n// Title: A pretty Hello World\n// Content:\n// A pretty programming exercise\n```\n\n### User Interface\n\nPiniverse also provides a straightforward visualization of your task definitions. \n\n```\n# script.py\n\npinverse.plan(workspace, plan_view=True)\n```\n\n
\n

\n \n

\n
\n\nLimitations \n---------------\n\nPresently, Piniverse solely supports standalone functions.\n\nContributions \n---------------\n\nContributions are more than welcome! Check out the [contribution documentation](https://github.com/hzhao19/piniverse/blob/master/CONTRIBUTIONS.rst).", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/hzhao19/piniverse", "keywords": "pin,pinned,dag", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "piniverse", "package_url": "https://pypi.org/project/piniverse/", "platform": "", "project_url": "https://pypi.org/project/piniverse/", "project_urls": { "Homepage": "https://github.com/hzhao19/piniverse" }, "release_url": "https://pypi.org/project/piniverse/0.0.4/", "requires_dist": null, "requires_python": "", "summary": "Pin your functions!", "version": "0.0.4", "yanked": false, "yanked_reason": null }, "last_serial": 6035210, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "ac5c10025027eb44590389dc1ee114ef", "sha256": "965681c5d3a431487e977fc52caaee8abb3735c48aa25920923189b23f60b216" }, "downloads": -1, "filename": "piniverse-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ac5c10025027eb44590389dc1ee114ef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 39685, "upload_time": "2019-10-22T00:02:40", "upload_time_iso_8601": "2019-10-22T00:02:40.077917Z", "url": "https://files.pythonhosted.org/packages/bb/55/e8020a3ded606d1578ed7d65463ef3aecdb639b429c771ff0d5da57e770b/piniverse-0.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "62e2e65c932ee1aafa08ffc995c61341", "sha256": "5f4850e087dd112213c5180e302ce9c05cff4e6e24d418e8df37b1907eb16cd3" }, "downloads": -1, "filename": "piniverse-0.0.1.tar.gz", "has_sig": false, "md5_digest": "62e2e65c932ee1aafa08ffc995c61341", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11411, "upload_time": "2019-10-22T00:02:42", "upload_time_iso_8601": "2019-10-22T00:02:42.010343Z", "url": "https://files.pythonhosted.org/packages/84/c2/32137c9ad7c3be1cf7edcfbf21da9fbfcbdbb8812d200f0aa422d575f490/piniverse-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "08acb4a2fbd0cd1c0094664f65fc8b83", "sha256": "d356588b6e23bfdd8605c610f608eef8ea4ad45538d7fc28569b5e09b3c49d4b" }, "downloads": -1, "filename": "piniverse-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "08acb4a2fbd0cd1c0094664f65fc8b83", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20415, "upload_time": "2019-10-22T00:34:41", "upload_time_iso_8601": "2019-10-22T00:34:41.708524Z", "url": "https://files.pythonhosted.org/packages/ac/0c/c6fb9035c1a4848e53bddf914ecf4de163483ef1b3c42354a37963fae37b/piniverse-0.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "068919af0d6d21ade1da242bca14dfcb", "sha256": "1263b6ebc4029a4c5556cb950844f18625385cb4e2a99bbfaef498237a4b3877" }, "downloads": -1, "filename": "piniverse-0.0.2.tar.gz", "has_sig": false, "md5_digest": "068919af0d6d21ade1da242bca14dfcb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7951, "upload_time": "2019-10-22T00:34:43", "upload_time_iso_8601": "2019-10-22T00:34:43.662785Z", "url": "https://files.pythonhosted.org/packages/89/66/31a0e140719d1428f9832905e51ed51e15bf5d8cc71f7bd54c69f4105566/piniverse-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "2b853a63129c49370167e13c4092fccf", "sha256": "5cc65d41ebe9fbbccc3c90fb8e710f189d15543149dc401eaf849c4a32a0855c" }, "downloads": -1, "filename": "piniverse-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "2b853a63129c49370167e13c4092fccf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20421, "upload_time": "2019-10-22T00:47:07", "upload_time_iso_8601": "2019-10-22T00:47:07.433037Z", "url": "https://files.pythonhosted.org/packages/e9/62/8f1f1196cac5e5c59d0ecf854025e48a83d6b12fce5bcdec1e2aa963a9a9/piniverse-0.0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "78cde242cb9cbaae43095a7f3a6a38ad", "sha256": "04bb1dbee1d6210c0ad071d806e63f8b94f2f35e7ffa72a96ca7c10b9aab1f15" }, "downloads": -1, "filename": "piniverse-0.0.3.tar.gz", "has_sig": false, "md5_digest": "78cde242cb9cbaae43095a7f3a6a38ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7955, "upload_time": "2019-10-22T00:47:09", "upload_time_iso_8601": "2019-10-22T00:47:09.486869Z", "url": "https://files.pythonhosted.org/packages/c5/61/d8d2a6c1039607f72067bedb6eec2104c867a3ac9143460a6226ed42d26c/piniverse-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "fce76e044b627e6321eedb30c0fc9331", "sha256": "16c66df3e380b6377eaf56f1fadce3d8dcea3e5d9ae4d359db419d93b0028af8" }, "downloads": -1, "filename": "piniverse-0.0.4.tar.gz", "has_sig": false, "md5_digest": "fce76e044b627e6321eedb30c0fc9331", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13106, "upload_time": "2019-10-26T21:37:18", "upload_time_iso_8601": "2019-10-26T21:37:18.750182Z", "url": "https://files.pythonhosted.org/packages/1b/ed/77332785a94d8de11486af8f9e05949e021236fd714fc93faf4609a91165/piniverse-0.0.4.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fce76e044b627e6321eedb30c0fc9331", "sha256": "16c66df3e380b6377eaf56f1fadce3d8dcea3e5d9ae4d359db419d93b0028af8" }, "downloads": -1, "filename": "piniverse-0.0.4.tar.gz", "has_sig": false, "md5_digest": "fce76e044b627e6321eedb30c0fc9331", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13106, "upload_time": "2019-10-26T21:37:18", "upload_time_iso_8601": "2019-10-26T21:37:18.750182Z", "url": "https://files.pythonhosted.org/packages/1b/ed/77332785a94d8de11486af8f9e05949e021236fd714fc93faf4609a91165/piniverse-0.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }