{ "info": { "author": "David Warde-Farley", "author_email": "d.warde.farley@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Topic :: Utilities" ], "description": ".. image:: https://img.shields.io/coveralls/mila-udem/picklable-itertools.svg\n :target: https://coveralls.io/r/mila-udem/picklable-itertools\n\n.. image:: https://travis-ci.org/mila-udem/picklable-itertools.svg?branch=master\n :target: https://travis-ci.org/mila-udem/picklable-itertools\n\n.. image:: https://img.shields.io/scrutinizer/g/mila-udem/picklable-itertools.svg\n :target: https://scrutinizer-ci.com/g/mila-udem/picklable-itertools/\n\n.. image:: https://img.shields.io/badge/license-MIT-blue.svg\n :target: https://github.com/mila-udem/picklable-itertools/blob/master/LICENSE\n\npicklable-itertools\n===================\n\nA reimplementation of the Python standard library's ``itertools``, in Python,\nusing picklable iterator objects. Intended to be Python 2.7 and 3.4+\ncompatible. Also includes picklable, Python {2, 3}-compatible implementations\nof some related utilities, including some functions from the Toolz_ library,\nin ``picklable_itertools.extras``.\n\n.. _Toolz: http://toolz.readthedocs.org/en/latest/\n\nWhy?\n----\n* Because the standard library pickle module (nor the excellent dill_ package)\n can't serialize all of the ``itertools`` iterators, at least on Python 2\n (at least some appear to be serializable on Python 3).\n* Because there are lots of instances where these things in ``itertools`` would\n simplify code, but can't be used because serializability must be maintained\n across both Python 2 and Python 3. The in-development framework Blocks_ is\n our first consumer. We'd like to be able to serialize the entire state of a\n long-running program for later resumption. We can't do this with\n non-picklable objects.\n\n.. _dill: https://github.com/uqfoundation/dill\n.. _blocks: https://github.com/bartvm/blocks\n\nPhilosophy\n----------\n* *This should be a drop-in replacement.* Pretty self-explanatory. Test\n against the standard library ``itertools`` or builtin implementation to\n verify behaviour matches. Where Python 2 and Python 3 differ in their\n naming, (``filterfalse`` vs ``ifilterfalse``, ``zip_longest`` vs. ``izip_longest``)\n we provide both. We also provide names that were only available in the\n Python 2 incarnation of ``itertools`` (``ifilter``, ``izip``), also available\n under their built-in names in Python 3 (``filter``, ``zip``), for convenience.\n As new objects are added to the Python 3 ``itertools`` module, we intend\n to add them (``accumulate``, for example, appears only in Python 3, and a\n picklable implementation is contained in this package.)\n* *Handle built-in types gracefully if possible.* List iterators, etc.\n are not picklable on Python 2.x, so we provide an alternative\n implementation. File iterators are handled transparently as well. dict\n iterators and set iterators are currently *not* supported.\n ``picklable_itertools.xrange`` can be used as a drop-in replacement for\n Python 2 ``xrange``/Python 3 ``range``, with the benefit that the iterators\n produced by it will be picklable on both Python 2 and 3.\n* *Premature optimization is the root of all evil.* These things are\n implemented in Python, so speed is obviously not our primary concern. Several\n of the more advanced iterators are constructed by chaining simpler iterators\n together, which is not the most efficient thing to do but simplifies the\n code a lot. If it turns out that speed (or a shallower object graph) is\n necessary or desirable, these can always be reimplemented. Pull requests\n to this effect are welcome.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mila-udem/picklable-itertools", "keywords": "pickle serialize pickling itertools iterable iteration", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "picklable-itertools", "package_url": "https://pypi.org/project/picklable-itertools/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/picklable-itertools/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/mila-udem/picklable-itertools" }, "release_url": "https://pypi.org/project/picklable-itertools/0.1.1/", "requires_dist": null, "requires_python": null, "summary": "itertools. But picklable. Even on Python 2.", "version": "0.1.1" }, "last_serial": 1666366, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "55fb2e8caa925d13639a39f2b87ad854", "sha256": "3fe0a75d3637b4962c96787547355e53c1a1d73a5022da98c1553bc3cb21373e" }, "downloads": -1, "filename": "picklable-itertools-0.1.0.tar.gz", "has_sig": false, "md5_digest": "55fb2e8caa925d13639a39f2b87ad854", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10910, "upload_time": "2015-05-17T23:44:37", "url": "https://files.pythonhosted.org/packages/e0/17/ab67e75c55f2a4100cda51ef50b162384269070919c311b55a284f6966c9/picklable-itertools-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "1bcfa6cd575a833fed253766aeb584a5", "sha256": "faecb7709d2684f3d2d06032e06ed0670cacc59cc074adccd666291c848fe638" }, "downloads": -1, "filename": "picklable-itertools-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1bcfa6cd575a833fed253766aeb584a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11289, "upload_time": "2015-08-06T04:02:25", "url": "https://files.pythonhosted.org/packages/75/bc/cda9191f0c92960ede6aa95e364443965246385faf62775cc30749931c2c/picklable-itertools-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1bcfa6cd575a833fed253766aeb584a5", "sha256": "faecb7709d2684f3d2d06032e06ed0670cacc59cc074adccd666291c848fe638" }, "downloads": -1, "filename": "picklable-itertools-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1bcfa6cd575a833fed253766aeb584a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11289, "upload_time": "2015-08-06T04:02:25", "url": "https://files.pythonhosted.org/packages/75/bc/cda9191f0c92960ede6aa95e364443965246385faf62775cc30749931c2c/picklable-itertools-0.1.1.tar.gz" } ] }