{ "info": { "author": "Daniel Hones", "author_email": "", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "Pycategories\n============\n\n|master pipeline| |master coverage|\n\nPycategories is a Python 3 library that implements ideas from `category theory `_, such as monoids, functors, and monads. It provides a Haskell-influenced interface for defining instances of those typeclasses and defines several right out of the box, for example the Maybe monad:\n\n::\n\n >>> from categories import apply\n >>> from categories.maybe import Just, Nothing\n >>> f = Just(lambda x: x ** 2)\n >>> x = Just(17)\n >>> apply(f, x)\n Just(289)\n >>> apply(f, Nothing())\n Nothing\n\nOr to define your own instance of a typeclass:\n\n::\n\n >>> from categories import mappend, mempty, monoid\n >>> monoid.instance(dict, lambda: {}, lambda a, b: dict(**a, **b))\n >>> mappend({'foo': 'bar'}, {'rhu': 'barb'})\n {'foo': 'bar', 'rhu': 'barb'}\n\n\nInstallation\n------------\n\n::\n\n pip install pycategories\n\n\nTo clone the repo and install dependencies for development: ::\n\n git clone https://gitlab.com/danielhones/pycategories\n cd pycategories\n pip install -e .[dev]\n\n\nSupport and Contributing\n------------------------\n\n* `Issue Tracker `_\n* `Source code `_\n* `Contributing Guide `_\n\n\nLicense\n-------\n\nPycategories is licensed under the `MIT License `_\n\n\nDocumentation\n-------------\n\nDocumentation is available at `pycategories.readthedocs.io `_\n\n\n.. |master pipeline| image:: https://gitlab.com/danielhones/pycategories/badges/master/pipeline.svg\n :target: https://gitlab.com/danielhones/pycategories/commits/master\n.. |master coverage| image:: https://gitlab.com/danielhones/pycategories/badges/master/coverage.svg\n :target: https://gitlab.com/danielhones/pycategories/commits/master\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/danielhones/pycategories", "keywords": "category theory,monoid,functor,applicative,monad,haskell", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pycategories", "package_url": "https://pypi.org/project/pycategories/", "platform": "", "project_url": "https://pypi.org/project/pycategories/", "project_urls": { "Homepage": "https://gitlab.com/danielhones/pycategories" }, "release_url": "https://pypi.org/project/pycategories/1.2.0/", "requires_dist": [ "infix (==1.2)", "flake8 (==3.6.0); extra == 'dev'", "flake8-per-file-ignores (==0.6); extra == 'dev'", "mypy (==0.670); extra == 'dev'", "pytest; extra == 'dev'", "pytest-cov; extra == 'dev'", "Sphinx; extra == 'docs'", "sphinx-rtd-theme; extra == 'docs'", "flake8 (==3.6.0); extra == 'docs'", "flake8-per-file-ignores (==0.6); extra == 'docs'", "mypy (==0.670); extra == 'docs'", "pytest; extra == 'docs'", "pytest-cov; extra == 'docs'" ], "requires_python": "", "summary": "Implementation of some concepts from category theory", "version": "1.2.0" }, "last_serial": 5443582, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "208f77c0af40d3cb18716df211c019ce", "sha256": "8b75240c08e33c26d13b923d51594f578a4d3ceec47f2af62618ee4b803b9013" }, "downloads": -1, "filename": "pycategories-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "208f77c0af40d3cb18716df211c019ce", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8039, "upload_time": "2018-06-14T03:11:21", "url": "https://files.pythonhosted.org/packages/09/cc/91fe58779467f67ecc26b8a96da9fc95779557a077ea947c7fb4efc675fb/pycategories-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af386d61ceba5d2410a2e045d2ce1eb9", "sha256": "b003abfbbe7af191e14eb4a0c6569a969729e110b53b8ed276583c6e56a85f05" }, "downloads": -1, "filename": "pycategories-1.0.0.tar.gz", "has_sig": false, "md5_digest": "af386d61ceba5d2410a2e045d2ce1eb9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5531, "upload_time": "2018-06-14T03:11:22", "url": "https://files.pythonhosted.org/packages/6d/ca/e52b59b46bec4efa1c43f157e809e29aa8a16c17a9572fd46531614d8587/pycategories-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "536f4f2d6300f79c5b81ffa179e30900", "sha256": "b21e66bfa098493dfaa7fcd1f3a6ceabdc4db0dd8c4ab5ba23bd2220cdcb5ecd" }, "downloads": -1, "filename": "pycategories-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "536f4f2d6300f79c5b81ffa179e30900", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9780, "upload_time": "2018-11-15T13:25:22", "url": "https://files.pythonhosted.org/packages/d7/9f/749edbce3d59f9db0fb24ffc1b48b99dcc955a108314e564361801def058/pycategories-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af5e352798df7ac6ce92dc13b78124ac", "sha256": "dc240a8ce97d1ac59bde83553d6c46be9ade47d2cadb65f0ff58645990507fee" }, "downloads": -1, "filename": "pycategories-1.1.0.tar.gz", "has_sig": false, "md5_digest": "af5e352798df7ac6ce92dc13b78124ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6320, "upload_time": "2018-11-15T13:25:23", "url": "https://files.pythonhosted.org/packages/f4/c5/7e9dbead579813ed462954bab5b47b9d445260d4731c9c232cd050990033/pycategories-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "5e90e05cef69e98c4ed8f964f75255b3", "sha256": "d2a472a7127de0a5f0fad7ce6bc95c5320c5394c86bf976d997911347694f803" }, "downloads": -1, "filename": "pycategories-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5e90e05cef69e98c4ed8f964f75255b3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13173, "upload_time": "2019-06-25T03:00:35", "url": "https://files.pythonhosted.org/packages/8b/c7/cfc55b1fc7c07b2ace1cee2e4ca4cec0e33205428f01b0a374bc94b6e081/pycategories-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7e7da474f240fd51fda2b8322fbe8126", "sha256": "bd70ecb5e94e7659e564ea153f0c7673291dc37c526c246800fc08d6c5378099" }, "downloads": -1, "filename": "pycategories-1.2.0.tar.gz", "has_sig": false, "md5_digest": "7e7da474f240fd51fda2b8322fbe8126", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16116, "upload_time": "2019-06-25T03:00:37", "url": "https://files.pythonhosted.org/packages/c2/e9/f31b58d91383c5b5d13bc1b9d02fbc730f5a121ce82962c3b61f9aad83ed/pycategories-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5e90e05cef69e98c4ed8f964f75255b3", "sha256": "d2a472a7127de0a5f0fad7ce6bc95c5320c5394c86bf976d997911347694f803" }, "downloads": -1, "filename": "pycategories-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5e90e05cef69e98c4ed8f964f75255b3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13173, "upload_time": "2019-06-25T03:00:35", "url": "https://files.pythonhosted.org/packages/8b/c7/cfc55b1fc7c07b2ace1cee2e4ca4cec0e33205428f01b0a374bc94b6e081/pycategories-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7e7da474f240fd51fda2b8322fbe8126", "sha256": "bd70ecb5e94e7659e564ea153f0c7673291dc37c526c246800fc08d6c5378099" }, "downloads": -1, "filename": "pycategories-1.2.0.tar.gz", "has_sig": false, "md5_digest": "7e7da474f240fd51fda2b8322fbe8126", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16116, "upload_time": "2019-06-25T03:00:37", "url": "https://files.pythonhosted.org/packages/c2/e9/f31b58d91383c5b5d13bc1b9d02fbc730f5a121ce82962c3b61f9aad83ed/pycategories-1.2.0.tar.gz" } ] }