NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #698 most downloaded on PyPI
Validating URI References per RFC 3986
Last release 5 years ago
no release in 18 months
Ships fairly regularly
a new release about every 8 months
Nearly every release is documented
notes for 17 of 18 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
18 releases · first in 2014
Drop support for Python 2.7, 3.3, 3.4, 3.5, 3.6
Drop support for Python 2.7, 3.3, 3.4, 3.5, 3.6
Add support for Python 3.8, 3.9, 3.10
Fix bug in resolving URIs that only contain schemes which are valid per the RFC - bug 81
Fix bug where a valid IRI is mishandled by urlparse and ParseResultBytes.
Fix bug where a valid IRI is mishandled by urlparse and ParseResultBytes.
See also GitHub #57
Add ~rfc3986.builder.URIBuilder.extend_path, ~rfc3986.builder.URIBuilder.extend_query_with, ~rfc3986.builder.URIBuilder.geturl to ~rfc3986.builder.URIBuilder.
See also GitHub #29
Include ~ as unreserved character in URL paths.
See also GitHub #74
One column per quarter.
Prevent users from receiving an invalid authority parsed from a malicious URL. Previously we did not stop parsing the authority section at the first b
Prevent users from receiving an invalid authority parsed from a malicious URL. Previously we did not stop parsing the authority section at the first backslash (\\) character. As a result, it was possible to trick our parser into parsing up to the first forward-slash (/) and thus generating an invalid authority.
See also GitHub pr-64 and the blog post that sparked this change
Add from_uri to URIBuilder to allow creation of a URIBuilder from an existing URI.
See also GitHub pr-63
Fix a typographical error in our documentation.
See also GitHub pr-61
Remove unnecessary IRI-flavored matchers from rfc3986.misc to speed up import time on resource-constrained systems.
Remove unnecessary IRI-flavored matchers from rfc3986.misc to speed up import time on resource-constrained systems.
See also GitHub #55
Only apply IDNA-encoding when there are characters outside of the ASCII character set.
Only apply IDNA-encoding when there are characters outside of the ASCII character set.
See also GitHub #52
Add the IRIReference class which parses data according to RFC 3987 and encodes into an URIReference.
Add the IRIReference class which parses data according to RFC 3987 and encodes into an URIReference.
See also GitHub #50
Attempt to detect percent-encoded URI components and encode % characters if required.
Attempt to detect percent-encoded URI components and encode % characters if required.
See also GitHub #38
Allow percent-encoded bytes within host.
See also GitHub #39
Correct the IPv6 regular expression by adding a missing variation.
Fix hashing for URIReferences on Python 3.
See also GitHub !35
Correct the regular expression for the User Information sub-component of the Authority Component.
Correct the regular expression for the User Information sub-component of the Authority Component.
See also GitHub #26
~rfc3986.validators.Validator.check_validity_of to the ~rfc3986.validators.Validator class. See Validating URIs documentation for more information.
Add support for RFC 6874 - Zone Identifiers in IPv6 Addresses
Add support for 6874 - Zone Identifiers in IPv6 Addresses
See also issue #2
Add a more flexible and usable validation framework. See our documentation for more information.
Add an object to aid in building new URIs from scratch. See our documentation for more information.
Add real documentation for the entire module.
Add separate submodule with documented regular expression strings for the collected ABNF.
Allow None to be used to eliminate components via copy_with for URIs and ParseResults.
Move release history into our documentation.
Normalize URIs constructed using ParseResult.from_parts and ParseResultBytes.from_parts
Normalize URIs constructed using ParseResult.from_parts and ParseResultBytes.from_parts
Add ParseResult.from_parts and ParseResultBytes.from_parts class methods to easily create a ParseResult
Add ParseResult.from_parts and ParseResultBytes.from_parts class methods to easily create a ParseResult
When using regular expressions, use [0-9] instead of \d to avoid finding ports with "numerals" that are not valid in a port
Preserve empty query strings during normalization
Preserve empty query strings during normalization
Read README and HISTORY files using the appropriate codec so rfc3986 can be installed on systems with locale's other than utf-8 (specifically C)
Read README and HISTORY files using the appropriate codec so rfc3986 can be installed on systems with locale's other than utf-8 (specifically C)
Replace the standard library's urlparse behaviour
Update the regular name regular expression to accept all of the characters allowed in the RFC. Closes bug #11 (Thanks Viktor Haag). Previously URIs si
Update the regular name regular expression to accept all of the characters allowed in the RFC. Closes bug #11 (Thanks Viktor Haag). Previously URIs similar to "http://http-bin.org" would be considered invalid.
Check that the bytes of an IPv4 Host Address are within the valid range. Otherwise, URIs like "http://256.255.255.0/v1/resource" are considered valid.
Check that the bytes of an IPv4 Host Address are within the valid range. Otherwise, URIs like "http://256.255.255.0/v1/resource" are considered valid.
Add 6 to the list of unreserved characters. It was previously missing. Closes bug #9
Add support for requiring components during validation. This includes adding parameters require_scheme, require_authority, require_path, require_path,
Add support for requiring components during validation. This includes adding parameters require_scheme, require_authority, require_path, require_path, require_query, and require_fragment to rfc3986.is_valid_uri and URIReference#is_valid.
Initial Release includes validation and normalization of URIs
Initial Release includes validation and normalization of URIs
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →