rfc3986 icon indicating copy to clipboard operation
rfc3986 copied to clipboard

A Python Implementation of RFC3986 including validations

Results 25 rfc3986 issues
Sort by recently updated
recently updated
newest added

https://github.com/python-hyper/rfc3986/blob/164073434fe530e14ceca4ff6a0683e23e2fde48/src/rfc3986/abnf_regexp.py#L153 The `PATH_EMPTY` regex won't ever match anything when embedded within another regex, as it is in several places like here: https://github.com/python-hyper/rfc3986/blob/164073434fe530e14ceca4ff6a0683e23e2fde48/src/rfc3986/abnf_regexp.py#L184-L190 This causes the `URIReference.is_absolute()` method to return an...

Warehouse now uses the project_urls provided to display links in the sidebar on [this screen](https://pypi.org/project/requests/), as well as including them in API responses to help the automation tool find the...

According to [RFC 3986](https://tools.ietf.org/html/rfc3986), there are some ABNF rules: URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ] scheme = ALPHA *( ALPHA / DIGIT /...

`URIMixin.resolve_with` (which is not itself deprecated) emits warning "Please use rfc3986.validators.Validator instead".

* `scheme:/..///bar` has scheme=`"scheme"`, authority=`None`, path=`/..///bar`. However, after normalization, it has scheme=`"scheme"`, authority=`"bar"`. * Consider t1 as an IRI `..///bar` resolved against `scheme:`. t1 should have scheme=`"scheme"` and authority=`None` (since...

`remove_dot_segments` defined in RFC 3986 ([section 5.2.4](https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4)) sometimes add a leading slash when the base path is "rootless". ``` STEP OUTPUT BUFFER INPUT BUFFER 1 : foo/../baz 2E: foo /../baz...

The library in its latest pip version (1.5.0; also observed in 1.4 as shipped in Debian) does not distinguish between present and absent authority components: ```python >>> rfc3986.urlparse('foo:///').unsplit() 'foo:/' ```...

Put it within abnf_regex, useful for libraries that need to determine if a host is an IP address or not (For IDNA encoding, for example).

enhancement

Caused by the `URI_MATCHER` and `IRI_MATCHER` not using `re.DOTALL`.

Initial parsing works: ``` >>> rfc3986.uri_reference('http://æåëý.com/path?query#fragment') URIReference(scheme='http', authority='æåëý.com', path='/path', query='query', fragment='fragment') ``` Subsequent normalisation silently loses data: ``` >>> rfc3986.uri_reference('http://æåëý.com/path?query#fragment').normalize() URIReference(scheme='http', authority=None, path='/path', query='query', fragment='fragment') ```