Skip to main content

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.

Project description

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

Setup

This module can be installed using:

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:

from urilibplus import URI

Creating a URI Object

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

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 for the URIPath object, an object for URIs that works exactly like a pathlib path. Every URI object makes use of a URIPath object.

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 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 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

urilibplus-1.0.0.0.tar.gz (21.8 kB view details)

Uploaded Source

Built Distribution

urilibplus-1.0.0.0-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

Details for the file urilibplus-1.0.0.0.tar.gz.

File metadata

  • Download URL: urilibplus-1.0.0.0.tar.gz
  • Upload date:
  • Size: 21.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for urilibplus-1.0.0.0.tar.gz
Algorithm Hash digest
SHA256 f23e5a4a202d06c0e07d36d2b67b49eebae4115f566d5e4ce7a3165e28253153
MD5 53f4fbff4e6666ff0e41c44eda2bb8a8
BLAKE2b-256 8cbb263d5ce188eef1a28f3d69e05db3b8a8063b1a8a7504015ae10d74ad8464

See more details on using hashes here.

File details

Details for the file urilibplus-1.0.0.0-py3-none-any.whl.

File metadata

  • Download URL: urilibplus-1.0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 22.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for urilibplus-1.0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e3d02ee5b8a83552a06b7ca82eb2e9d516486268992ec17c691250a3f9f2906
MD5 1e034ab0dc70e7d7c17b1a9a48ae2747
BLAKE2b-256 27e972aa607e56035de0572d908ff9ce7041a3f84b38e39814322940629be2f0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page