{ "info": { "author": "Neil F Jones", "author_email": "", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Topic :: Software Development :: Build Tools" ], "description": "# pep508-parser\n\nA parser for the [PEP508](https://www.python.org/dev/peps/pep-0508/) dependency specification.\n\n# Example\n```python\n#!/usr/bin/env python3\n\nfrom pep508_parser import parser\n\ntests = [\n \"A\",\n \"A.B-C_D\",\n \"aa\",\n \"name\",\n \"name<=1\",\n \"name>=3\",\n \"name>=3,<2\",\n \"name@http://foo.com\",\n \"name [fred,bar] @ http://foo.com ; python_version=='2.7'\",\n \"name[quux, strange];python_version<'2.7' and platform_version=='2'\",\n \"name; os_name=='a' or os_name=='b'\",\n # Should parse as (a and b) or c\n \"name; os_name=='a' and os_name=='b' or os_name=='c'\",\n # Overriding precedence -> a and (b or c)\n \"name; os_name=='a' and (os_name=='b' or os_name=='c')\",\n # should parse as a or (b and c)\n \"name; os_name=='a' or os_name=='b' and os_name=='c'\",\n # Overriding precedence -> (a or b) and c\n \"name; (os_name=='a' or os_name=='b') and os_name=='c'\",\n]\n\n\ndef main():\n for test in tests:\n parsed = parser.parse(test)\n print(\"{} -> {}\".format(test, parsed))\n\n\nif __name__ == '__main__':\n main()\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/NFJones/pep508-parser", "keywords": "pep508", "license": "", "maintainer": "", "maintainer_email": "", "name": "pep508-parser", "package_url": "https://pypi.org/project/pep508-parser/", "platform": "", "project_url": "https://pypi.org/project/pep508-parser/", "project_urls": { "Homepage": "https://github.com/NFJones/pep508-parser" }, "release_url": "https://pypi.org/project/pep508-parser/2019.3/", "requires_dist": [ "Parsley (==1.3)" ], "requires_python": "!=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "summary": "A parser for the PEP508 dependency specification.", "version": "2019.3" }, "last_serial": 4913537, "releases": { "2019.1": [ { "comment_text": "", "digests": { "md5": "ddc2e06f510f2d41369547e4fc2582d3", "sha256": "6f54fef2e7130b9e528e10cc63e457515f0de8acbd11875f67adf9b2141732c1" }, "downloads": -1, "filename": "pep508_parser-2019.1-py3.6.egg", "has_sig": false, "md5_digest": "ddc2e06f510f2d41369547e4fc2582d3", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": "!=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 9468, "upload_time": "2019-03-08T01:51:55", "url": "https://files.pythonhosted.org/packages/20/9c/7ecaee3a578186d40b4ae1bb031fc56eebace836060ef8c0c6a06b5e37c5/pep508_parser-2019.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "6d6efa2c3ce170c43af3e69b401c8968", "sha256": "9ea6c2304bac38057f0fc9073286eb3f500e8edbc55fcfba87e4e4a4a17fe22d" }, "downloads": -1, "filename": "pep508_parser-2019.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6d6efa2c3ce170c43af3e69b401c8968", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "!=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 6342, "upload_time": "2019-03-08T01:51:52", "url": "https://files.pythonhosted.org/packages/79/10/9dcfa18c8467189713316ea9fc19dbedb1eb644cd3f50ecb1453723f8a66/pep508_parser-2019.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1fc258882c43dc8a50984089ade20b45", "sha256": "f5c9a64814369638d285055a9fd11a53fce281fd513e1fa2e909f377ea99470c" }, "downloads": -1, "filename": "pep508_parser-2019.1.tar.gz", "has_sig": false, "md5_digest": "1fc258882c43dc8a50984089ade20b45", "packagetype": "sdist", "python_version": "source", "requires_python": "!=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 4140, "upload_time": "2019-03-08T01:51:56", "url": "https://files.pythonhosted.org/packages/5e/3c/278cc72c5713c9b98b1d0e4b2dcd42aac8491e6d32459f172d2f179e0465/pep508_parser-2019.1.tar.gz" } ], "2019.2": [ { "comment_text": "", "digests": { "md5": "048f6eec5828e92e1bf53e6f6e937fcd", "sha256": "ae35bbfa689fbf4eb11ae25419ad42430aa6ec502185930c9d213639088c797a" }, "downloads": -1, "filename": "pep508_parser-2019.2-py3-none-any.whl", "has_sig": false, "md5_digest": "048f6eec5828e92e1bf53e6f6e937fcd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "!=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 5630, "upload_time": "2019-03-08T02:54:30", "url": "https://files.pythonhosted.org/packages/51/d2/e142bbd44419fb5776239051b07be0a050638f98d91d1f9c5ff48d272912/pep508_parser-2019.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e6e46360f12b08c4843980fe1b4a7997", "sha256": "d054e59b44a5eb529dc3ab0ac53f76265299f41f99f4a697aa3a936da2075e83" }, "downloads": -1, "filename": "pep508_parser-2019.2.tar.gz", "has_sig": false, "md5_digest": "e6e46360f12b08c4843980fe1b4a7997", "packagetype": "sdist", "python_version": "source", "requires_python": "!=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 4122, "upload_time": "2019-03-08T02:54:31", "url": "https://files.pythonhosted.org/packages/8f/56/b5abd96832e5c3943a4ecfdda14100ce67f0ba688af1a7d77f89226bbec4/pep508_parser-2019.2.tar.gz" } ], "2019.3": [ { "comment_text": "", "digests": { "md5": "7986d891e594b1948f79c8ae26f9c771", "sha256": "4a86bc54cc4a848ef0a45fd8e1de26d4959a19d0e0b21cf99fd3681029d1aff7" }, "downloads": -1, "filename": "pep508_parser-2019.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7986d891e594b1948f79c8ae26f9c771", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "!=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 5612, "upload_time": "2019-03-08T03:00:02", "url": "https://files.pythonhosted.org/packages/70/d7/56c24c2bb9bce7a9b2c1c4b78b57ad126dcd20bad73fedce3556ceb963c2/pep508_parser-2019.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7a31bc9b887e1e87cb477c6b0f6ad80", "sha256": "f4bec9d1b0485ba70803c8e84ae741edb1de9af9932a6454cf12853aa43dbda9" }, "downloads": -1, "filename": "pep508_parser-2019.3.tar.gz", "has_sig": false, "md5_digest": "f7a31bc9b887e1e87cb477c6b0f6ad80", "packagetype": "sdist", "python_version": "source", "requires_python": "!=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 4103, "upload_time": "2019-03-08T03:00:04", "url": "https://files.pythonhosted.org/packages/08/7e/4747ccd2fe817254e7fa5f255b472cd24e1dd5c4c0941209844092b458c0/pep508_parser-2019.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7986d891e594b1948f79c8ae26f9c771", "sha256": "4a86bc54cc4a848ef0a45fd8e1de26d4959a19d0e0b21cf99fd3681029d1aff7" }, "downloads": -1, "filename": "pep508_parser-2019.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7986d891e594b1948f79c8ae26f9c771", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "!=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 5612, "upload_time": "2019-03-08T03:00:02", "url": "https://files.pythonhosted.org/packages/70/d7/56c24c2bb9bce7a9b2c1c4b78b57ad126dcd20bad73fedce3556ceb963c2/pep508_parser-2019.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7a31bc9b887e1e87cb477c6b0f6ad80", "sha256": "f4bec9d1b0485ba70803c8e84ae741edb1de9af9932a6454cf12853aa43dbda9" }, "downloads": -1, "filename": "pep508_parser-2019.3.tar.gz", "has_sig": false, "md5_digest": "f7a31bc9b887e1e87cb477c6b0f6ad80", "packagetype": "sdist", "python_version": "source", "requires_python": "!=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4", "size": 4103, "upload_time": "2019-03-08T03:00:04", "url": "https://files.pythonhosted.org/packages/08/7e/4747ccd2fe817254e7fa5f255b472cd24e1dd5c4c0941209844092b458c0/pep508_parser-2019.3.tar.gz" } ] }