{ "info": { "author": "Seth Michael Larson", "author_email": "sethmichaellarson@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# irl\n\n`irl` is a URL parser library that has a mixture of very strict rules around\na URL's host and port section but very relaxed in all other sections making it\nthe ideal balance of secure, tolerant, and performant.\n\nIt's primary use-case is for being used in HTTP client libraries as they have\nto deal with the Internet and lots URLs that are definitely not compliant but\nusers expect them to work anyways!\n\n## Installation\n\nSupports Python 3.6 or later.\n\n`python -m pip install irl`\n\n## Usage\n\n```python\n>>> import irl\n>>> url = irl.URL.parse(\"https://user:pass@example.com:1234/path?q=ue&r=&y#frag\")\n\n>>> print(repr(url))\nURL(scheme=\"https\", userinfo=\"user:pass\", host=\"example.com\", port=1234, path=\"/path\", query=\"q=ue&r=&y\", fragment=\"frag\")\n\n>>> url.target()\nb\"/path?qu=e&r=&y\"\n\n>>> url.host_header()\nb\"example.com:1234\"\n\n>>> url.query_to_items()\n[(\"q\", \"ue\"), (\"r\", \"\"), (\"y\", None)\n\n>>> url.address()\n(\"example.com\", 1234)\n```\n\n## Standards Implemented\n\n- [RFC 3986](https://tools.ietf.org/html/rfc3986)\n- [RFC 3987](https://tools.ietf.org/html/rfc3987)\n- [RFC 4007](https://tools.ietf.org/html/rfc4007)\n- [RFC 6874](https://tools.ietf.org/html/rfc6874)\n\n## Acknowledgements\n\nThis URL parser library wouldn't be possible without the [rfc3986](https://github.com/python-hyper/rfc3986) library\nor the test suite from [urllib3](https://github.com/urllib3/urllib3). This parser is based\nheavily on techniques used in both libraries and they directly inspired this libraries creation.\n\n## License\n\nMIT\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": "", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "irl", "package_url": "https://pypi.org/project/irl/", "platform": "", "project_url": "https://pypi.org/project/irl/", "project_urls": null, "release_url": "https://pypi.org/project/irl/0.2/", "requires_dist": [ "idna" ], "requires_python": ">=3.6", "summary": "", "version": "0.2" }, "last_serial": 5543394, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "1da371b7373701ac47b521051b8c742c", "sha256": "30b2489a0dd03c705b44569f604688a04f3232891c6447c9a7e78377374d87dc" }, "downloads": -1, "filename": "irl-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1da371b7373701ac47b521051b8c742c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 7004, "upload_time": "2019-07-09T04:50:47", "url": "https://files.pythonhosted.org/packages/cb/f6/e5b01fef2692562017f156579b113ca53aa37d5bd512770707409169d06e/irl-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b42b02f6b6b046369a8783e94e4060b9", "sha256": "c54e2cadad8e39cdb77d99014511a973805989f63ce3f59df387637a7a62cce0" }, "downloads": -1, "filename": "irl-0.1.tar.gz", "has_sig": false, "md5_digest": "b42b02f6b6b046369a8783e94e4060b9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6231, "upload_time": "2019-07-09T04:50:49", "url": "https://files.pythonhosted.org/packages/42/60/ac5e4ced091a4597cdd869e3cc2389048f34bd413bdb48b3df9328b8fedb/irl-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "68a23afa7303bdd15813296bcb31d4ca", "sha256": "e4ecfbcb371784f4539710916eebb9888c76154cdcf6b9ae6cd5a8ac419ce22a" }, "downloads": -1, "filename": "irl-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "68a23afa7303bdd15813296bcb31d4ca", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 6928, "upload_time": "2019-07-17T00:42:52", "url": "https://files.pythonhosted.org/packages/ef/ab/033187a7ef9658d9e23618ad0a1eba23057c08c5ec392f8576e4f9482015/irl-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e6e2f4b94589ba4274ee35a83a7febab", "sha256": "3cad62a72ac5869f6d93d715526b6edf4debc117bc2d0964ed33bd35c12e0413" }, "downloads": -1, "filename": "irl-0.2.tar.gz", "has_sig": false, "md5_digest": "e6e2f4b94589ba4274ee35a83a7febab", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5988, "upload_time": "2019-07-17T00:42:54", "url": "https://files.pythonhosted.org/packages/df/8a/52ca4930681e43c9cfdb4a4de3c29537a804aa322b94026bd6f9b5c63842/irl-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "68a23afa7303bdd15813296bcb31d4ca", "sha256": "e4ecfbcb371784f4539710916eebb9888c76154cdcf6b9ae6cd5a8ac419ce22a" }, "downloads": -1, "filename": "irl-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "68a23afa7303bdd15813296bcb31d4ca", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 6928, "upload_time": "2019-07-17T00:42:52", "url": "https://files.pythonhosted.org/packages/ef/ab/033187a7ef9658d9e23618ad0a1eba23057c08c5ec392f8576e4f9482015/irl-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e6e2f4b94589ba4274ee35a83a7febab", "sha256": "3cad62a72ac5869f6d93d715526b6edf4debc117bc2d0964ed33bd35c12e0413" }, "downloads": -1, "filename": "irl-0.2.tar.gz", "has_sig": false, "md5_digest": "e6e2f4b94589ba4274ee35a83a7febab", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5988, "upload_time": "2019-07-17T00:42:54", "url": "https://files.pythonhosted.org/packages/df/8a/52ca4930681e43c9cfdb4a4de3c29537a804aa322b94026bd6f9b5c63842/irl-0.2.tar.gz" } ] }