Skip to main content

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)

Source distribution for iriuri 0.0.1
File Size Uploaded
iriuri-0.0.1.tar.gz 7.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iriuri 0.0.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page