{ "info": { "author": "Nikita Tsvetkov", "author_email": "nikitanovosibirsk@yandex.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# switch_case\n\n[![License](https://img.shields.io/github/license/nikitanovosibirsk/switch_case.svg)](https://github.com/nikitanovosibirsk/switch_case)\n[![Travis](https://img.shields.io/travis/com/nikitanovosibirsk/switch_case/master.svg)](https://travis-ci.com/nikitanovosibirsk/switch_case)\n[![Codecov](https://img.shields.io/codecov/c/github/nikitanovosibirsk/switch_case/master.svg)](https://codecov.io/gh/nikitanovosibirsk/switch_case)\n[![PyPI](https://img.shields.io/pypi/v/switch_case.svg)](https://pypi.python.org/pypi/switch_case/)\n[![Python Version](https://img.shields.io/pypi/pyversions/switch_case.svg)](https://pypi.python.org/pypi/switch_case/)\n\n## Installation\n\n```bash\npip3 install switch_case\n```\n\n## Usage\n\n```python\nfrom switch_case import *\nreason = (\n switch\n | case(_ == 200) >> 'OK'\n | case(_ == 500) >> 'ERROR'\n | default >> 'UNKNOWN')\n```\n\n```python\nassert reason(200) == 'OK'\nassert reason(500) == 'ERROR'\nassert reason(400) == 'UNKNOWN'\n```\n\nWhich is syntax sugar for:\n\n```python\nfrom switch_case import *\nfrom operator import eq\nreason = (\n switch\n | case(_ /eq/ 200) >> 'OK'\n | case(_ /eq/ 500) >> 'ERROR'\n | default >> 'UNKNOWN')\n```\n\nSo you can use it like this:\n\n```python\nfrom switch_case import *\nget_type = (\n switch\n | case(_ /isinstance/ str) >> \"string\"\n | case(_ /isinstance/ int) >> \"integer\"\n | case(_ /isinstance/ float) >> \"float\"\n | case(_ /isinstance/ bool) >> \"bool\"\n | default >> \"other\")\n```\n\nOr as a function:\n\n```python\nfrom switch_case import *\ndef get_type(smth):\n return ~(\n switch(smth)\n | case(_ /isinstance/ str) >> \"string\"\n | case(_ /isinstance/ int) >> \"integer\"\n | case(_ /isinstance/ float) >> \"float\"\n | case(_ /isinstance/ bool) >> \"bool\"\n | default >> \"other\")\n```\n\n```python\nassert get_type(42) == \"integer\"\nassert get_type(\"42\") == \"string\"\nassert get_type(3.14) == \"float\"\n```\n\n\n", "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/nikitanovosibirsk/switch_case", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "switch-case", "package_url": "https://pypi.org/project/switch-case/", "platform": "", "project_url": "https://pypi.org/project/switch-case/", "project_urls": { "Homepage": "https://github.com/nikitanovosibirsk/switch_case" }, "release_url": "https://pypi.org/project/switch-case/1.3/", "requires_dist": null, "requires_python": "", "summary": "Switch-case statement for Python", "version": "1.3" }, "last_serial": 5154351, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "c8a771fccea7dbece0f3257082600888", "sha256": "c088082c61d109a57a0f2e327f222ef525d2b3ab2a5abbdbf3d4c31088df2aec" }, "downloads": -1, "filename": "switch_case-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c8a771fccea7dbece0f3257082600888", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5861, "upload_time": "2018-11-25T13:00:28", "url": "https://files.pythonhosted.org/packages/69/40/011f8931148ff208b4e4949475800fb7663e999e271565cd4a152286f1fe/switch_case-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fee0959bf7cb02e698bb1d104a1da742", "sha256": "73d08449599c703147678935c84cec7fbc9f5d1f74de11fdce2d6977f0f3ecb9" }, "downloads": -1, "filename": "switch_case-1.0.tar.gz", "has_sig": false, "md5_digest": "fee0959bf7cb02e698bb1d104a1da742", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2874, "upload_time": "2018-11-25T13:00:30", "url": "https://files.pythonhosted.org/packages/17/86/6463350b2e942f745f21f694b547e13c2a8ba4e87592554cf2f49b22db3f/switch_case-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "5699ea6c1cef28b239a4f1aae6c2e6fd", "sha256": "476ec5aa6df00531982af47c6e11025e5b5cab2c33da6a3876bdf16ee80397fa" }, "downloads": -1, "filename": "switch_case-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5699ea6c1cef28b239a4f1aae6c2e6fd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5998, "upload_time": "2018-11-25T13:09:59", "url": "https://files.pythonhosted.org/packages/dc/ed/ca2a841efd897b1d02245fb472756cb4e134881754b8b2f982cf7af55ae3/switch_case-1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d9bcd25d58a2a721ec33293b11d356a", "sha256": "ef3375f4088ce212cace89eb8803726f370d8bbf067aa0c08f035c935c9f24a5" }, "downloads": -1, "filename": "switch_case-1.1.tar.gz", "has_sig": false, "md5_digest": "2d9bcd25d58a2a721ec33293b11d356a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3038, "upload_time": "2018-11-25T13:10:01", "url": "https://files.pythonhosted.org/packages/e0/fd/33eaa0084f3dffddff18fd58a45cdeed9e99640e302577752a0bf36a059b/switch_case-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "4c68f271c609471653daf6fb4bece658", "sha256": "57f19c752f8ee327ed3d6d740a759763342e07e798455deac6f73f47ccf96c32" }, "downloads": -1, "filename": "switch_case-1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4c68f271c609471653daf6fb4bece658", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7275, "upload_time": "2018-11-26T16:42:44", "url": "https://files.pythonhosted.org/packages/e3/72/3707125243388d6240c12b5e1f4d5550c595826f2aae82390b7f6626087d/switch_case-1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97821862ffd8d6dd401d565b0e9d47ca", "sha256": "79c618cceb921fcff1863fe33811eacd68ece6f4bf91e6bb49538592f566ab21" }, "downloads": -1, "filename": "switch_case-1.2.tar.gz", "has_sig": false, "md5_digest": "97821862ffd8d6dd401d565b0e9d47ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3544, "upload_time": "2018-11-26T16:42:47", "url": "https://files.pythonhosted.org/packages/3d/12/ebc6c506da04387978ba7c08bbd47264d03cb418657b877c4175ee2f3d16/switch_case-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "5ac0d7e467270b944f9ce020d7ab30e0", "sha256": "b276fe2c915b3cef43c4fa2e21d53a0ef9c28b21e0a70475fe6209f8b16d101e" }, "downloads": -1, "filename": "switch_case-1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5ac0d7e467270b944f9ce020d7ab30e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7957, "upload_time": "2018-11-26T18:53:00", "url": "https://files.pythonhosted.org/packages/cd/c6/4cca65dc67a66f2aeaada3574f412078e7e357aa3029ecd7967438f89b20/switch_case-1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5119dcf15472e56c51cf9ae12568b301", "sha256": "f2499677c11638974ed4927746863204ab0efbbd6c844b82888cf63fa58e350b" }, "downloads": -1, "filename": "switch_case-1.3.tar.gz", "has_sig": false, "md5_digest": "5119dcf15472e56c51cf9ae12568b301", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4532, "upload_time": "2018-11-26T18:53:10", "url": "https://files.pythonhosted.org/packages/63/a9/df9e9f5f1dd67fe50e7c3fbad7695226cd2a1cb8236b7ce97a56a2b3bfc6/switch_case-1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5ac0d7e467270b944f9ce020d7ab30e0", "sha256": "b276fe2c915b3cef43c4fa2e21d53a0ef9c28b21e0a70475fe6209f8b16d101e" }, "downloads": -1, "filename": "switch_case-1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5ac0d7e467270b944f9ce020d7ab30e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7957, "upload_time": "2018-11-26T18:53:00", "url": "https://files.pythonhosted.org/packages/cd/c6/4cca65dc67a66f2aeaada3574f412078e7e357aa3029ecd7967438f89b20/switch_case-1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5119dcf15472e56c51cf9ae12568b301", "sha256": "f2499677c11638974ed4927746863204ab0efbbd6c844b82888cf63fa58e350b" }, "downloads": -1, "filename": "switch_case-1.3.tar.gz", "has_sig": false, "md5_digest": "5119dcf15472e56c51cf9ae12568b301", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4532, "upload_time": "2018-11-26T18:53:10", "url": "https://files.pythonhosted.org/packages/63/a9/df9e9f5f1dd67fe50e7c3fbad7695226cd2a1cb8236b7ce97a56a2b3bfc6/switch_case-1.3.tar.gz" } ] }