{ "info": { "author": "Tom White", "author_email": "tom.e.white@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "# Zappy - distributed processing with NumPy and Zarr\n\nZappy is for distributed processing of chunked NumPy arrays on engines like [Pywren], Apache Spark, and Apache Beam.\n\n[![Build Status](https://travis-ci.org/lasersonlab/zappy.svg?branch=master)](https://travis-ci.org/lasersonlab/zappy)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Coverage Status](https://coveralls.io/repos/github/lasersonlab/zappy/badge.svg)](https://coveralls.io/github/lasersonlab/zappy)\n[![PyPI version shields.io](https://img.shields.io/pypi/v/zappy.svg)](https://pypi.python.org/pypi/zappy/)\n\nThe `zappy.base` module defines a `ZappyArray` class that exposes the same interface as `numpy.ndarray`, and which\nis backed by distributed storage and processing. The array is broken into chunks, and is typically loaded from [Zarr],\nand each chunk is processed independently.\n\nThere are a few engines provided:\n* **direct** - for eager in-memory processing\n* **spark** - for processing using Spark\n* **beam** - for processing using Beam or Google Dataflow\n* **executor** - for processing using Python's [concurrent.futures.Executor], of which [Pywren] is a notable implementation\n\nBeam currently only runs on Python 2.\n\nFull coverage of the `numpy.ndarray` interface is _not_ provided. Only enough has been implemented to support running\nparts of [Scanpy], as demonstrated in the [Single Cell Experiments] repo.\n\n## Installation\n\n```\npip install zappy\n```\n\nAlternatively, zappy can be installed using [Conda](https://conda.io/docs/) (most easily obtained via the [Miniconda Python distribution](https://conda.io/miniconda.html)):\n\n```\nconda install -c conda-forge zappy\n```\n\n## Demo\n\nTake a look at the rendered [demo Jupyter notebook](demo.ipynb), or try it out yourself as follows.\n\nCreate and activate a Python 3 virtualenv, and install the requirements:\n\n```\npython3 -m venv venv\n. venv/bin/activate\npip install -r requirements.txt\npip install -e .\npip install s3fs jupyter\n```\n\nThen run the notebook with:\n\n```\njupyter notebook demo.ipynb\n```\n\n## Testing\n\nThere is a test suite for all the engines, covering both Python 2 and 3.\n\nRun everything in one go with tox:\n\n```\npip install tox\ntox\n```\n\nFormatting:\n\n```\npip install black\nblack zappy tests/* *.py\n```\n\nCoverage:\n\n```\npip install pytest-cov\npytest --cov-report html --cov=zappy\nopen htmlcov/index.html\n```\n\n## Publishing\n\n```\npip install twine\npython setup.py sdist\ntwine upload -r pypi dist/zappy-0.1.0.tar.gz\n```\n\nIf successful, the package will be available on [PyPI].\n\n[Scanpy]: https://scanpy.readthedocs.io/\n[Single Cell Experiments]: https://github.com/lasersonlab/single-cell-experiments\n[concurrent.futures.Executor]: https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.Executor\n[PyPI]: https://pypi.org/project/zappy/\n[Pywren]: http://pywren.io/\n[Zarr]: https://zarr.readthedocs.io/", "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/lasersonlab/zappy", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "zappy", "package_url": "https://pypi.org/project/zappy/", "platform": "", "project_url": "https://pypi.org/project/zappy/", "project_urls": { "Homepage": "https://github.com/lasersonlab/zappy" }, "release_url": "https://pypi.org/project/zappy/0.2.0/", "requires_dist": null, "requires_python": "", "summary": "Distributed processing with NumPy and Zarr.", "version": "0.2.0" }, "last_serial": 4725509, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9c90d5d05f1cf6ebdc043398ab877f97", "sha256": "dd372602ff1ddb25f06eded6a0c57e0a717e7a58dc29cfffc85a06a3b02cbb67" }, "downloads": -1, "filename": "zappy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9c90d5d05f1cf6ebdc043398ab877f97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16584, "upload_time": "2018-10-11T13:45:24", "url": "https://files.pythonhosted.org/packages/f6/52/d3b83d400f3ff621a7799eb328a8756beea9528503e0ace5de956272e2c1/zappy-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "1e72729ffc171631e716fbbc5cfce63c", "sha256": "5f4802f02ee26c6b4292209ff19cb06fece0252ee2128cdc739392fe0049c3e7" }, "downloads": -1, "filename": "zappy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "1e72729ffc171631e716fbbc5cfce63c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16930, "upload_time": "2019-01-22T11:06:51", "url": "https://files.pythonhosted.org/packages/7f/dd/8a3a895fb3bb0e71a31a505dde8d1edf4237a6c127745e30e5a9a8249d09/zappy-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1e72729ffc171631e716fbbc5cfce63c", "sha256": "5f4802f02ee26c6b4292209ff19cb06fece0252ee2128cdc739392fe0049c3e7" }, "downloads": -1, "filename": "zappy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "1e72729ffc171631e716fbbc5cfce63c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16930, "upload_time": "2019-01-22T11:06:51", "url": "https://files.pythonhosted.org/packages/7f/dd/8a3a895fb3bb0e71a31a505dde8d1edf4237a6c127745e30e5a9a8249d09/zappy-0.2.0.tar.gz" } ] }