# `urilibplus`
> A Python Module for URI Manipulation. Inspired by `pathlib`, but for URIs.
`urilibplus` is a Python module designed to simplify the interaction and manipulation of URIs. It provides the `URI` class, which encapsulates URI operations into a consistent and user-friendly interface.
With this module, you can easily handle URIs, including tasks such as encoding, validation, and manipulation.
[Documentation](https://MarkusHammer.gthub.io/urilibplus-python)
## Setup
This module can be installed using:
```bash
pip install urilibplus
```
## Usage
This module is intended to be used only as a module, and can be imported after installing using the traditional process:
```python
from urilibplus import URI
```
### Creating a URI Object
```python
uri = URI("http://user:pass@host:1234/path?query#fragment")
print(uri.scheme) # outputs "http"
print(uri.authority) # outputs "user:pass@host:1234"
```
### Encoding and Decoding URIs
```python
encoded_uri = uri.encode() #same as str(uri)
print(encoded_uri) # outputs "http://user:pass@host:1234/path?query#fragment"
decoded_uri = URI(encoded_uri)
print(decoded_uri) # outputs "http://user:pass@host:port/path?query#fragment"
print(uri.encode(quote = True)) #outputs "http%3A%2F%2Fuser%3Apass%40host%3A1234%2Fpath%3Fquery%23fragment"
```
### Path Manipulation
Also see the [docs](https://MarkusHammer.gthub.io/urilibplus-python) for the `URIPath` object, an object for `URI`s that works exactly like a `pathlib` path.
Every `URI` object makes use of a `URIPath` object.
```python
uri.pathappend("subpath", "suberpath")
print(uri.encode()) # outputs "http://user:pass@host:1234/path/subpath/suberpath?query#fragment"
```
### And More
There are a handfull of other ease of use features that this module provides, feel free to reference the [documentation](https://MarkusHammer.gthub.io/urilibplus-python) for more information.
## Licence
This is licensed under the Mozilla Public License 2.0 (MPL 2.0) Licence. See the Licence file in this repository for more information.
## Contribute
Contributions are always welcome!
Use the [github repository](https://github.com/MarkusHammer/urilibplus-python) to report issues and contribute to this project.
## Credits
While not required, feel free to credit "Markus Hammer" (or just "Markus") if you find this code or script useful for whatever you may be doing with it.
# Security Policy
While the python source code will be actively maintained, any binary files (if at all provided) are in no way supported.
These are provided as a courtesy and are not intended to be the main usage of this software.
Please keep this in mind when choosing how you wish to use this software.
## Supported Versions
| Version | Supported |
| ----------- | --------- |
| 1.0.0.0 >= | ✅ |
| 1.0.0.0 < | ❌ |
## Reporting a Vulnerability
Please report any issues to the email 107761433+MarkusHammer(THEN THE @ SYMBOL HERE)users.noreply.github.com
Raw data
{
"_id": null,
"home_page": null,
"name": "urilibplus",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "uri, url, http, https, path manipulation, uri parsing, url validation, web development, networking, internet",
"author": null,
"author_email": "Markus Hammer <107761433+MarkusHammer@users.noreply.github.com>",
"download_url": "https://files.pythonhosted.org/packages/8c/bb/263d5ce188eef1a28f3d69e05db3b8a8063b1a8a7504015ae10d74ad8464/urilibplus-1.0.0.0.tar.gz",
"platform": null,
"description": "\r\n# `urilibplus`\r\n\r\n> A Python Module for URI Manipulation. Inspired by `pathlib`, but for URIs.\r\n\r\n`urilibplus` is a Python module designed to simplify the interaction and manipulation of URIs. It provides the `URI` class, which encapsulates URI operations into a consistent and user-friendly interface.\r\nWith this module, you can easily handle URIs, including tasks such as encoding, validation, and manipulation.\r\n\r\n[Documentation](https://MarkusHammer.gthub.io/urilibplus-python)\r\n\r\n## Setup\r\n\r\nThis module can be installed using:\r\n\r\n```bash\r\npip install urilibplus\r\n```\r\n\r\n## Usage\r\n\r\nThis module is intended to be used only as a module, and can be imported after installing using the traditional process:\r\n\r\n```python\r\nfrom urilibplus import URI\r\n```\r\n\r\n### Creating a URI Object\r\n\r\n```python\r\nuri = URI(\"http://user:pass@host:1234/path?query#fragment\")\r\nprint(uri.scheme) # outputs \"http\"\r\nprint(uri.authority) # outputs \"user:pass@host:1234\"\r\n```\r\n\r\n### Encoding and Decoding URIs\r\n\r\n```python\r\nencoded_uri = uri.encode() #same as str(uri)\r\nprint(encoded_uri) # outputs \"http://user:pass@host:1234/path?query#fragment\"\r\n\r\ndecoded_uri = URI(encoded_uri)\r\nprint(decoded_uri) # outputs \"http://user:pass@host:port/path?query#fragment\"\r\n\r\nprint(uri.encode(quote = True)) #outputs \"http%3A%2F%2Fuser%3Apass%40host%3A1234%2Fpath%3Fquery%23fragment\"\r\n```\r\n\r\n### Path Manipulation\r\n\r\nAlso see the [docs](https://MarkusHammer.gthub.io/urilibplus-python) for the `URIPath` object, an object for `URI`s that works exactly like a `pathlib` path.\r\nEvery `URI` object makes use of a `URIPath` object.\r\n\r\n```python\r\nuri.pathappend(\"subpath\", \"suberpath\")\r\nprint(uri.encode()) # outputs \"http://user:pass@host:1234/path/subpath/suberpath?query#fragment\"\r\n```\r\n\r\n### And More\r\n\r\nThere are a handfull of other ease of use features that this module provides, feel free to reference the [documentation](https://MarkusHammer.gthub.io/urilibplus-python) for more information.\r\n\r\n## Licence\r\n\r\nThis is licensed under the Mozilla Public License 2.0 (MPL 2.0) Licence. See the Licence file in this repository for more information.\r\n\r\n## Contribute\r\n\r\nContributions are always welcome!\r\nUse the [github repository](https://github.com/MarkusHammer/urilibplus-python) to report issues and contribute to this project.\r\n\r\n## Credits\r\n\r\nWhile not required, feel free to credit \"Markus Hammer\" (or just \"Markus\") if you find this code or script useful for whatever you may be doing with it.\r\n\r\n# Security Policy\r\n\r\nWhile the python source code will be actively maintained, any binary files (if at all provided) are in no way supported.\r\nThese are provided as a courtesy and are not intended to be the main usage of this software.\r\nPlease keep this in mind when choosing how you wish to use this software.\r\n\r\n## Supported Versions\r\n\r\n| Version | Supported |\r\n| ----------- | --------- |\r\n| 1.0.0.0\u00a0>= | \u2705 |\r\n| 1.0.0.0\u00a0< | \u274c |\r\n\r\n## Reporting a Vulnerability\r\n\r\nPlease report any issues to the email 107761433+MarkusHammer(THEN THE @ SYMBOL HERE)users.noreply.github.com\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A Python module providing advanced tools for URI manipulation and validation. Simplifies handling and parsing of URIs, with a focus on robustness and ease of use.",
"version": "1.0.0.0",
"project_urls": {
"Documentation": "https://MarkusHammer.gthub.io/urilibplus-python",
"Git": "https://github.com/MarkusHammer/urilibplus-python.git",
"Github": "https://github.com/MarkusHammer/urilibplus-python",
"Homepage": "https://github.com/MarkusHammer/urilibplus-python",
"Issues": "https://github.com/MarkusHammer/urilibplus-python/issues",
"Pull Requests": "https://github.com/MarkusHammer/urilibplus-python/pulls"
},
"split_keywords": [
"uri",
" url",
" http",
" https",
" path manipulation",
" uri parsing",
" url validation",
" web development",
" networking",
" internet"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "27e972aa607e56035de0572d908ff9ce7041a3f84b38e39814322940629be2f0",
"md5": "1e034ab0dc70e7d7c17b1a9a48ae2747",
"sha256": "1e3d02ee5b8a83552a06b7ca82eb2e9d516486268992ec17c691250a3f9f2906"
},
"downloads": -1,
"filename": "urilibplus-1.0.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1e034ab0dc70e7d7c17b1a9a48ae2747",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 22610,
"upload_time": "2024-08-14T18:40:12",
"upload_time_iso_8601": "2024-08-14T18:40:12.789072Z",
"url": "https://files.pythonhosted.org/packages/27/e9/72aa607e56035de0572d908ff9ce7041a3f84b38e39814322940629be2f0/urilibplus-1.0.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8cbb263d5ce188eef1a28f3d69e05db3b8a8063b1a8a7504015ae10d74ad8464",
"md5": "53f4fbff4e6666ff0e41c44eda2bb8a8",
"sha256": "f23e5a4a202d06c0e07d36d2b67b49eebae4115f566d5e4ce7a3165e28253153"
},
"downloads": -1,
"filename": "urilibplus-1.0.0.0.tar.gz",
"has_sig": false,
"md5_digest": "53f4fbff4e6666ff0e41c44eda2bb8a8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 21760,
"upload_time": "2024-08-14T18:40:14",
"upload_time_iso_8601": "2024-08-14T18:40:14.746934Z",
"url": "https://files.pythonhosted.org/packages/8c/bb/263d5ce188eef1a28f3d69e05db3b8a8063b1a8a7504015ae10d74ad8464/urilibplus-1.0.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-14 18:40:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MarkusHammer",
"github_project": "urilibplus-python",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "urilibplus"
}