Fully RFC 3986/3987 URI and IRI parsing and manipulation
Project description
The iriuri Python Package
WARNING: This package is not yet ready for use!**
The iriuri package will offer both generic and scheme-specific
IRI and URI parsing, validation, manipulation, and serialization.
It will also be able to serve as an Apache 2.0-licensed drop-in
replacement for at least the basic parsing/composing/resolving features
of the GPL'd
rfc3987 library (which I
highly recommend if you are able to comply with the conditions of GPL).
Release timeline
This package is being developed by @handrews. If you would like for me to have more time for open source work, I would be grateful for any sponsorship.
Features
Initial functionality will target generic IRI/URI syntax, with
scheme-specific features for http, https, and urn, as well
as media-type-based fragment syntax for HTML, XML, YAML, JSON Schema,
and OpenAPI and application/x-www-form-urlencoded query strings
being prioritized next.
This libraries eventual goals include:
- Round-trip-safe parsing and serialization
- correct handling of empty string vs null components
- preservation of case for case-insensitive components
- no unexpected automatic encoding or normalization
- Proper handling of base URIs/IRIs and URI/IRI-references
- Full compliance with the ABNF from appropriate standards, including:
- RFC 3986 Uniform Resource Identifier (URI): Generic Syntax
- RFC 3987 Internationalized Resource Identifiers (IRIs)
- RFC 6874 Representing IPv6 Zone Identifiers in Address Literals and URIs
- RFC 8141 Uniform Resource Names (URNs)
- additional scheme-/query-/fragment-/urn-namespace-specific standards TBD
- Flexible options to balance performance and correctness
- Extensible parsing, validation, normalization, defaults, and comparisons
for specific URI/IRI subsets
- Scheme-specific for authority/query syntax
- Query format-specific for query syntax
- Media type-specific for fragment syntax
- URN namespace-specific for namespace-specific string syntax
- A comprehensive test suite
- Scheme-specific tests where relevant
- Please file an issue if you know of public IRI test data!
- CJK, right-to-left, vertical, and other display challenges
- While not a display library, there is a gap in good IRI test data
- Likely to include WHATWG's URL tests, although this library will comply with IETF standards; whether WHATWG support will ever be considered depends on the degree of divergence involved
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iriuri-0.0.1.tar.gz.
File metadata
- Download URL: iriuri-0.0.1.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.8.13 Darwin/21.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ecf8cdcbabac6be91ee1d1ea50d0e3d0d6fcced8f1a407fd56f237132e6aa4f9
|
|
| MD5 |
9f28f76eb7f28c761c172c3c58d6527a
|
|
| BLAKE2b-256 |
029007606db3acd7d39a3844017395f1fdaedd8bd30677aaac12cf698b42aae2
|
File details
Details for the file iriuri-0.0.1-py3-none-any.whl.
File metadata
- Download URL: iriuri-0.0.1-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.8.13 Darwin/21.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d654311510a5bc88af544272fd024d71a0f0c4b273498955ff5c7382afa5bb68
|
|
| MD5 |
d97596998cafbb5c244a8cf6d61b992c
|
|
| BLAKE2b-256 |
20df7cd083b559d6297c27c947003bc872e33a8d2b8931ebb8b8544946776d1a
|