NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1197 most downloaded on PyPI
URI parsing, classification and composition
Last release 2 months ago
23 Jul 2026
Ships fairly regularly
a new release about every 8 months
Most releases are documented
notes for 39 of 44 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
44 releases · first in 2014
Minor style improvements to keep ruff happy.
Minor style improvements to keep ruff happy.
Update build environment.
Minor documentation improvements.
Minor documentation improvements.
Update build environment.
One column per quarter.
Minor documentation improvements.
Minor documentation improvements.
Update build environment.
- Add type stubs. - Improve unit tests.
Add type stubs.
Improve unit tests.
- Minor code improvements. - Update project URLs. - Update CI environment.
Minor code improvements.
Update project URLs.
Update CI environment.
Require Python >= 3.10 (fixup).
Require Python >= 3.10 (fixup).
Require Python 3.9 or later (breaking change).
Require Python 3.9 or later (breaking change).
Update CI environment.
- Prepare for Python 3.13.
Prepare for Python 3.13.
- Depend on Python >= 3.7. - Support Python 3.12.
Depend on Python >= 3.7.
Support Python 3.12.
Correct version information in RTD documentation.
Add support for Python 3.11.
Correct version information in RTD documentation.
badges/shields: Change to GitHub workflow badge routes.
Require Python 3.7 or later (breaking change).
Require Python 3.7 or later (breaking change).
Remove undocumented submodules (breaking change).
The chars, classify, compose, defrag, encoding, join and split submodules have been deleted. Therefore, statements like
from uritools.classify import isuri
will no longer work. Use
from uritools import isuri
instead.
- Update build environment.
Update build environment.
Do not convert percent-encodings to uppercase in host components generated by uricompose().
Do not convert percent-encodings to uppercase in host components generated by uricompose().
Officially support Python 3.9.
Format code with Black.
- Require Python 3.5 or later.
Require Python 3.5 or later.
Add URI classification methods and functions.
Add URI classification methods and functions.
Treat URIs with invalid schemes as relative references.
Treat URIs with invalid schemes as relative references.
Add SplitResult.getauthority().
Add SplitResult.getauthority().
Add optional errors parameter to SplitResult.gethost().
- Officially support Python 3.6. - Move documentation to RTD. - Fix flake8 checks.
Officially support Python 3.6.
Move documentation to RTD.
Fix flake8 checks.
Drop Python 3.2 support (breaking change).
Drop Python 3.2 support (breaking change).
No longer treat semicolons as query separators by default (breaking change).
Add optional sep parameter to SplitResult.getquerydict() and SplitResult.getquerylist() (breaks encoding when passed as positional argument).
Add optional querysep parameter to uricompose() (breaks encoding when passed as positional argument).
Fix uriencode() documentation and unit tests requiring the safe parameter to be a bytes object.
Fix uriencode() documentation and unit tests requiring the safe parameter to be a bytes object.
Encode semicolon in query values passed to uricompose().
Encode semicolon in query values passed to uricompose().
Fix use of URI references as base URIs in urijoin() and SplitResult.transform().
Fix use of URI references as base URIs in urijoin() and SplitResult.transform().
Remove SplitResult.getaddrinfo().
Remove SplitResult.getauthority().
Remove SplitResult.gethostip(); return ipaddress address
objects from SplitResult.gethost() instead.
Remove SplitResult.gethost() encoding parameter.
Remove query delimiter parameters.
Return normalized paths from SplitResult.getpath().
Convert character constants to strings.
Deprecate SplitResult.getaddrinfo().
Deprecate SplitResult.getaddrinfo().
Deprecate SplitResult.getauthority().
Deprecate SplitResult.gethost() and SplitResult.gethostip() encoding parameter; always use utf-8 instead.
Drop support for "bytes-like objects".
Remove DefragResult.base.
Fix uricompose() for relative-path references with colons in the first path segment.
Fix uricompose() for relative-path references with colons in the first path segment.
Support encoding=None for uriencode() and uridecode().
Support encoding=None for uriencode() and uridecode().
Add optional errors parameter to decoding methods.
Make uricompose() return str on all Python versions.
Make uricompose() return str on all Python versions.
Use ipaddress module for handling IPv4/IPv6 host addresses.
Use ipaddress module for handling IPv4/IPv6 host addresses.
Add userinfo, host and port keyword arguments to uricompose().
Deprecate DefragResult.base.
Feature freeze for v1.0.
- Improve Python 3 support.
Improve Python 3 support.
Deprecate RE, urinormpath(), DefragResult.getbase().
Fix uriencode() and uridecode().
Deprecate RE, urinormpath(), DefragResult.getbase().
Support non-string query values in uricompose().
Add optional port parameter to SplitResult.getaddrinfo().
Add optional port parameter to SplitResult.getaddrinfo().
Cache SplitResult.authority subcomponents.
Change SplitResult.port back to string, to distinguish between empty and absent port components.
Add basic IPv6 support.
Change SplitResult.port back to string, to distinguish between empty and absent port components.
Remove querysep and sep parameters.
Do not raise ValueError if scheme is not well-formed.
Improve Python 3 support.
- Fix empty port handling.
Fix empty port handling.
- Add basic Python 3 support.
Add basic Python 3 support.
Support query mappings and sequences in uricompose().
Add SplitResult.getaddrinfo().
Support query mappings and sequences in uricompose().
Fix SplitResult.port to return int (matching urlparse).
Fix SplitResult.port to return int (matching urlparse).
Add SplitResult.getquerylist(), SplitResult.getquerydict().
Add result object accessor methods.
Add result object accessor methods.
Update documentation.
Fix IndexError in urinormpath().
Fix IndexError in urinormpath().
Integrate Python 2.7.6 urlparse unit tests.
Add authority subcomponent attributes.
Add authority subcomponent attributes.
Return DefragResult from uridefrag().
Improve edge case behavior.
- Initial beta release.
Initial beta release.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →