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
Release files for iriuri 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iriuri-0.0.1.tar.gz | 7.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iriuri-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.2 kB
Release files / iriuri-0.0.1.tar.gz
| Download URL | iriuri-0.0.1.tar.gz |
|---|---|
| Size | 7.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ecf8cdcbabac6be91ee1d1ea50d0e3d0d6fcced8f1a407fd56f237132e6aa4f9
|
|
BLAKE2b-256 checksum How to use checksums |
029007606db3acd7d39a3844017395f1fdaedd8bd30677aaac12cf698b42aae2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.2 CPython/3.8.13 Darwin/21.6.0
|
Release files / iriuri-0.0.1-py3-none-any.whl
| Download URL | iriuri-0.0.1-py3-none-any.whl |
|---|---|
| Size | 9.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d654311510a5bc88af544272fd024d71a0f0c4b273498955ff5c7382afa5bb68
|
|
BLAKE2b-256 checksum How to use checksums |
20df7cd083b559d6297c27c947003bc872e33a8d2b8931ebb8b8544946776d1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.2 CPython/3.8.13 Darwin/21.6.0
|