{ "info": { "author": "Kevin Wurster", "author_email": "wursterk@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries", "Topic :: Text Processing", "Topic :: Utilities" ], "description": "========\ntinyflow\n========\n\nExperiments in data flow programming.\n\n.. image:: https://travis-ci.org/geowurster/tinyflow.svg?branch=master\n :target: https://travis-ci.org/geowurster/tinyflow?branch=master\n\n.. image:: https://coveralls.io/repos/geowurster/tinyflow/badge.svg?branch=master\n :target: https://coveralls.io/r/geowurster/tinyflow?branch=master\n\nAfter some experimentation, Apache Beam's Python SDK got the API right.\nUse that instead.\n\n\nStandard Word Count Example\n===========================\n\nGrab the 5 most common words in ``LICENSE.txt``\n\n.. code-block:: python\n\n from collections import Counter\n\n from tinyflow.serial import ops, Pipeline\n\n\n pipe = Pipeline() \\\n | \"Split line into words\" >> ops.flatmap(lambda x: x.lower().split()) \\\n | \"Remove empty lines\" >> ops.filter(bool) \\\n | \"Produce the 5 most common words\" >> ops.counter(5) \\\n | \"Sort by frequency desc\" >> ops.sort(key=lambda x: x[1], reverse=True)\n\n with open('LICENSE.txt') as f:\n results = dict(pipe(f))\n\n\nUsing only Python's builtins:\n\n.. code-block:: python\n\n from collections import Counter\n import itertools as it\n\n with open('LICENSE.txt') as f:\n lines = (line.lower().split() for line in f)\n words = it.chain.from_iterable(lines)\n count = Counter(words)\n results = dict(count.most_common(10))\n\n\nDeveloping\n==========\n\n.. code-block:: console\n\n $ git clone https://github.com/geowurster/tinyflow.git\n $ cd tinyflow\n $ pip install -e .\\[all\\]\n $ pytest --cov tinyflow --cov-report term-missing\n\n\nLicense\n=======\n\nSee ``LICENSE.txt``\n\n\nChangelog\n=========\n\nSee ``CHANGES.md``\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/geowurster/tinyflow", "keywords": "experimental memory data flow", "license": "New BSD", "maintainer": "", "maintainer_email": "", "name": "tinyflow", "package_url": "https://pypi.org/project/tinyflow/", "platform": "", "project_url": "https://pypi.org/project/tinyflow/", "project_urls": { "Homepage": "https://github.com/geowurster/tinyflow" }, "release_url": "https://pypi.org/project/tinyflow/0.1/", "requires_dist": [ "coveralls; extra == 'all'", "pytest (>=3); extra == 'all'", "pytest-cov; extra == 'all'", "coveralls; extra == 'dev'", "pytest (>=3); extra == 'dev'", "pytest-cov; extra == 'dev'" ], "requires_python": "", "summary": "Experimental in-memory data flow pipelines.", "version": "0.1" }, "last_serial": 2770639, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "e9b473ed24f4d464b466f58a80d5d83e", "sha256": "5cdbf7f936f867abb44814d197d262e9429d786c25d66b8f1743cb4160fcb51f" }, "downloads": -1, "filename": "tinyflow-0.1.macosx-10.12-x86_64.tar.gz", "has_sig": false, "md5_digest": "e9b473ed24f4d464b466f58a80d5d83e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13108, "upload_time": "2017-04-11T02:24:35", "url": "https://files.pythonhosted.org/packages/cc/b7/58adbe143cabeb24162a487b974339d8f33c2594d67490c7dca1db05372a/tinyflow-0.1.macosx-10.12-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "f11c7b3d63cadf1686de8df06f414a69", "sha256": "90c71e8d245725b418ee3528b455d1f3626b7432d1560e937205f3a70e150f1c" }, "downloads": -1, "filename": "tinyflow-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f11c7b3d63cadf1686de8df06f414a69", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10946, "upload_time": "2017-04-11T02:24:33", "url": "https://files.pythonhosted.org/packages/12/2f/2fc055de29348a25111b6fce588a9ea013af8f5becb84aa606dbf3f47700/tinyflow-0.1-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e9b473ed24f4d464b466f58a80d5d83e", "sha256": "5cdbf7f936f867abb44814d197d262e9429d786c25d66b8f1743cb4160fcb51f" }, "downloads": -1, "filename": "tinyflow-0.1.macosx-10.12-x86_64.tar.gz", "has_sig": false, "md5_digest": "e9b473ed24f4d464b466f58a80d5d83e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13108, "upload_time": "2017-04-11T02:24:35", "url": "https://files.pythonhosted.org/packages/cc/b7/58adbe143cabeb24162a487b974339d8f33c2594d67490c7dca1db05372a/tinyflow-0.1.macosx-10.12-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "f11c7b3d63cadf1686de8df06f414a69", "sha256": "90c71e8d245725b418ee3528b455d1f3626b7432d1560e937205f3a70e150f1c" }, "downloads": -1, "filename": "tinyflow-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f11c7b3d63cadf1686de8df06f414a69", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10946, "upload_time": "2017-04-11T02:24:33", "url": "https://files.pythonhosted.org/packages/12/2f/2fc055de29348a25111b6fce588a9ea013af8f5becb84aa606dbf3f47700/tinyflow-0.1-py2.py3-none-any.whl" } ] }