{ "info": { "author": "Michael R. Shannon", "author_email": "mrshannon.aerospace@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries" ], "description": "yzal\n====\n\nLazy evaluation for Python.\n\n|build-status|\n|coverage-status|\n\n|version|\n|supported-implementations|\n|supported-versions|\n|wheel|\n\n\n\n\nUsage\n-----\n\nTo use yzal:\n\n.. code-block:: python\n\n from yzal import lazy, strict\n\n @lazy\n def add(x, y):\n sum = x + y\n print('Adding {:d} + {:d} = {:d}', x, y, sum)\n\nThe following only creates a Thunk, it does not run the lazy function above.\n\n.. code-block:: python\n\n >>> sum = add(3, 7)\n\nThere are two ways to get the result of the lazy evaluation. The first is\nsimply to perform an operation that requires a strict value.\n\n.. code-block:: python\n\n >>> 5 + sum\n Adding 3 + 7 = 10\n 15\n\nThe second way is to explicitly request a strict value.\n\n.. code-block:: python\n\n >>> sum = add(3, 7)\n >>> strict(sum)\n Adding 3 + 7 = 10\n 10\n\n.. note::\n\n If we did not recreate the Thunk the side effect string would not have\n displayed again. This is because Thunk's will only evaluate the lazy\n expression they contain once. Further requests for a strict value will\n return a cached result. It is important to remember this when the lazy\n function is not pure.\n\n\nRequirements\n------------\n\n* Python 3.4 or greater\n* lazy_object_proxy_\n\n.. note::\n\n Python 3.4 support requires mypy_.\n\n\nInstallation\n------------\n\nyzal is on PyPI_ so the best way to install it is:\n\n.. code-block:: text\n\n $ pip install yzal\n\n\nThanks\n------\n\nWe wish to thank the following projects, without which yzal would have been\nmuch harder to write:\n\n* lazy_object_proxy_ - A fast and thorough lazy object proxy.\n\n\n.. _lazy_object_proxy: https://python-lazy-object-proxy.readthedocs.io/en/latest/\n.. _mypy: http://mypy-lang.org/\n.. _PyPI: https://pypi.org/\n\n.. |build-status| image:: https://travis-ci.com/ccarocean/yzal.svg?branch=master&style=flat\n :target: https://travis-ci.com/ccarocean/yzal\n :alt: Build status\n\n.. |coverage-status| image:: http://codecov.io/gh/ccarocean/yzal/coverage.svg?branch=master\n :target: http://codecov.io/gh/ccarocean/yzal?branch=master\n :alt: Test coverage\n\n.. |version| image:: https://img.shields.io/pypi/v/yzal.svg\n :alt: PyPI Package latest release\n :target: https://pypi.python.org/pypi/yzal\n\n.. |wheel| image:: https://img.shields.io/pypi/wheel/yzal.svg\n :alt: PyPI Wheel\n :target: https://pypi.python.org/pypi/yzal\n\n.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/yzal.svg\n :alt: Supported versions\n :target: https://pypi.python.org/pypi/yzal\n\n.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/yzal.svg\n :alt: Supported implementations\n :target: https://pypi.python.org/pypi/yzal\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ccarocean/yzal", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "yzal", "package_url": "https://pypi.org/project/yzal/", "platform": "", "project_url": "https://pypi.org/project/yzal/", "project_urls": { "Homepage": "https://github.com/ccarocean/yzal" }, "release_url": "https://pypi.org/project/yzal/0.0.5/", "requires_dist": [ "lazy-object-proxy", "mypy ; python_version == \"3.4\"" ], "requires_python": "", "summary": "Lazy evaluation for Python.", "version": "0.0.5" }, "last_serial": 4670474, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "5571a61350df1d600f49787f5a4cc700", "sha256": "fab46275368ec8443c368682e89eee3bfe8e6ce07e8375d6524c4074d4351c82" }, "downloads": -1, "filename": "yzal-0.0.1.tar.gz", "has_sig": false, "md5_digest": "5571a61350df1d600f49787f5a4cc700", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3054, "upload_time": "2018-12-21T18:35:50", "url": "https://files.pythonhosted.org/packages/fa/b7/67d97e88c42a8e682ff3b79dc2c372178c884d567e31469f5011771c0c69/yzal-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "d5b34d9554accffe354af8e78f84e764", "sha256": "f6e17ec33272621f8d1de2d8b471418095c0524361cbe0814e33c8ae6ffb36fb" }, "downloads": -1, "filename": "yzal-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d5b34d9554accffe354af8e78f84e764", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2764, "upload_time": "2018-12-21T19:56:03", "url": "https://files.pythonhosted.org/packages/58/54/37f9e92282437c5ca04657c1a86388290c7935ccce473b09efb19e9fa3f6/yzal-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b0125e46e8efd04b23dab909965eced2", "sha256": "b2fa0a09eb21d23f1c1018c221cf99d213c66ae0451bcb4fcfea9cdaa037ef99" }, "downloads": -1, "filename": "yzal-0.0.2.tar.gz", "has_sig": false, "md5_digest": "b0125e46e8efd04b23dab909965eced2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3045, "upload_time": "2018-12-21T19:56:05", "url": "https://files.pythonhosted.org/packages/8d/bd/0a3354870487bd5b59c2942ed12a9d5d7ec5f1e0961a5f18f6b15759eb6e/yzal-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "ae80de1c80fcec046ea1bce31b316c83", "sha256": "30e0ff3f47d6f3cf0612842b928231f1a3323d5d2c1c2c32f2e6eb7254881df8" }, "downloads": -1, "filename": "yzal-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ae80de1c80fcec046ea1bce31b316c83", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3951, "upload_time": "2018-12-21T21:21:39", "url": "https://files.pythonhosted.org/packages/cb/2c/a2d1ab9210a32d569dbc460d627a4a3dafe9f6199f54f741df45d1af67cc/yzal-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f8f72374ee635aca980cfef8ca0204a8", "sha256": "6f2dfc67bd5a96bfc0cfb97bb9de49c1f12ee204b57a943846d179bede0044c6" }, "downloads": -1, "filename": "yzal-0.0.3.tar.gz", "has_sig": false, "md5_digest": "f8f72374ee635aca980cfef8ca0204a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4049, "upload_time": "2018-12-21T21:21:45", "url": "https://files.pythonhosted.org/packages/f5/bb/ab780bc9d62ef22e798ee547bde4f6be245b9f53cf05d7864639fd4a7762/yzal-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "c1a8abd210aeec8957b8b19591a8c2e4", "sha256": "a1c93e69b76f342e53f0f8e65a39a4de8429728592b155e563f6f5d8987a9f2f" }, "downloads": -1, "filename": "yzal-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "c1a8abd210aeec8957b8b19591a8c2e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4471, "upload_time": "2019-01-04T22:29:17", "url": "https://files.pythonhosted.org/packages/23/0e/f08e01cfe6baa3ba41993b526ae22bbc59b734b4430e2bc3bd2679212407/yzal-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "26317aea18f39360e1f9417ea604508d", "sha256": "8df6ca35b8244f3999aa51d0998778b2495bdc00f5ef89864d3758e8deff4e2e" }, "downloads": -1, "filename": "yzal-0.0.4.tar.gz", "has_sig": false, "md5_digest": "26317aea18f39360e1f9417ea604508d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5172, "upload_time": "2019-01-04T22:29:19", "url": "https://files.pythonhosted.org/packages/eb/8f/1dd3a87af98beae4a681a06222ab2f00ea1337daa5f249d04a3648a90164/yzal-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "32198c39b244b88407650fb8c630d56c", "sha256": "7c13b68181dcc707dc797b645c1e279d201faa096ba52008724a9ed59197d97a" }, "downloads": -1, "filename": "yzal-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "32198c39b244b88407650fb8c630d56c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4602, "upload_time": "2019-01-07T22:19:52", "url": "https://files.pythonhosted.org/packages/08/91/8ce964996d7bf355772a86a1472a3ec5691388c137d9173ee22b5fe7dbf5/yzal-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a59f68b668fe11abc985678787effc8", "sha256": "c04396ce283a408b09995e30705a3f5bd8ebb4a97a1667ae1b2daebc0c721058" }, "downloads": -1, "filename": "yzal-0.0.5.tar.gz", "has_sig": false, "md5_digest": "3a59f68b668fe11abc985678787effc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5413, "upload_time": "2019-01-07T22:19:53", "url": "https://files.pythonhosted.org/packages/aa/60/f670c7e6a3f4d9b65a12abef5f69fd230db16bcc55c4101bb9f98c75ea87/yzal-0.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "32198c39b244b88407650fb8c630d56c", "sha256": "7c13b68181dcc707dc797b645c1e279d201faa096ba52008724a9ed59197d97a" }, "downloads": -1, "filename": "yzal-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "32198c39b244b88407650fb8c630d56c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4602, "upload_time": "2019-01-07T22:19:52", "url": "https://files.pythonhosted.org/packages/08/91/8ce964996d7bf355772a86a1472a3ec5691388c137d9173ee22b5fe7dbf5/yzal-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a59f68b668fe11abc985678787effc8", "sha256": "c04396ce283a408b09995e30705a3f5bd8ebb4a97a1667ae1b2daebc0c721058" }, "downloads": -1, "filename": "yzal-0.0.5.tar.gz", "has_sig": false, "md5_digest": "3a59f68b668fe11abc985678787effc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5413, "upload_time": "2019-01-07T22:19:53", "url": "https://files.pythonhosted.org/packages/aa/60/f670c7e6a3f4d9b65a12abef5f69fd230db16bcc55c4101bb9f98c75ea87/yzal-0.0.5.tar.gz" } ] }