SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

 
 

python312-rfc3987 rpm build for : openSUSE Tumbleweed. For other distributions click python312-rfc3987.

Name : python312-rfc3987
Version : 1.3.8 Vendor : obs://build_opensuse_org/home:ocurero
Release : 1.64 Date : 2024-10-11 22:21:46
Group : Development/Languages/Python Source RPM : python-rfc3987-1.3.8-1.64.src.rpm
Size : 0.08 MB
Packager : (none)
Summary : Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)
Description :
This module provides regular expressions according to `RFC 3986 \"Uniform
Resource Identifier (URI): Generic Syntax\"
< http://tools.ietf.org/html/rfc3986>`_ and `RFC 3987 \"Internationalized
Resource Identifiers (IRIs)\" < http://tools.ietf.org/html/rfc3987>`_, and
utilities for composition and relative resolution of references.


API
---

**match** (string, rule=\'IRI_reference\')
Convenience function for checking if `string` matches a specific rule.

Returns a match object or None::

>>> assert match(\'%C7X\', \'pct_encoded\') is None
>>> assert match(\'%C7\', \'pct_encoded\')
>>> assert match(\'%c7\', \'pct_encoded\')



**parse** (string, rule=\'IRI_reference\')
Parses `string` according to `rule` into a dict of subcomponents.

If `rule` is None, parse an IRI_reference `without validation
< http://tools.ietf.org/html/rfc3986#appendix-B>`_.

If regex_ is available, any rule is supported; with re_, `rule` must be
\'IRI_reference\' or some special case thereof (\'IRI\', \'absolute_IRI\',
\'irelative_ref\', \'irelative_part\', \'URI_reference\', \'URI\', \'absolute_URI\',
\'relative_ref\', \'relative_part\'). ::

>>> d = parse(\'http://tools.ietf.org/html/rfc3986#appendix-A\',
... rule=\'URI\')
>>> assert all([ d[\'scheme\'] == \'http\',
... d[\'authority\'] == \'tools.ietf.org\',
... d[\'path\'] == \'/html/rfc3986\',
... d[\'query\'] == None,
... d[\'fragment\'] == \'appendix-A\' ])



**compose** (\\*\\*parts)
Returns an URI composed_ from named parts.

.. _composed: http://tools.ietf.org/html/rfc3986#section-5.3


**resolve** (base, uriref, strict=True, return_parts=False)
Resolves_ an `URI reference` relative to a `base` URI.

`Test cases < http://tools.ietf.org/html/rfc3986#section-5.4>`_::

>>> base = resolve.test_cases_base
>>> for relative, resolved in resolve.test_cases.items():
... assert resolve(base, relative) == resolved

If `return_parts` is True, returns a dict of named parts instead of
a string.

Examples::

>>> assert resolve(\'urn:rootless\', \'../../name\') == \'urn:name\'
>>> assert resolve(\'urn:root/less\', \'../../name\') == \'urn:/name\'
>>> assert resolve(\'http://a/b\', \'http:g\') == \'http:g\'
>>> assert resolve(\'http://a/b\', \'http:g\', strict=False) == \'http://a/g\'

.. _Resolves: http://tools.ietf.org/html/rfc3986#section-5.2



**patterns**
A dict of regular expressions with useful group names.
Compilable (with regex_ only) without need for any particular compilation
flag.

**[bmp_][u]patterns[_no_names]**
Alternative versions of `patterns`.
[u]nicode strings without group names for the re_ module.
BMP only for narrow builds.

**get_compiled_pattern** (rule, flags=0)
Returns a compiled pattern object for a rule name or template string.

Usage for validation::

>>> uri = get_compiled_pattern(\'^s$\')
>>> assert uri.match(\'http://tools.ietf.org/html/rfc3986#appendix-A\')
>>> assert not get_compiled_pattern(\'^s$\').match(\'#f#g\')
>>> from unicodedata import lookup
>>> smp = \'urn:\' + lookup(\'OLD ITALIC LETTER A\') # U+00010300
>>> assert not uri.match(smp)
>>> m = get_compiled_pattern(\'^s$\').match(smp)

On narrow builds, non-BMP characters are (incorrectly) excluded::

>>> assert NARROW_BUILD == (not m)

For parsing, some subcomponents are captured in named groups (*only if*
regex_ is available, otherwise see `parse`)::

>>> match = uri.match(\'http://tools.ietf.org/html/rfc3986#appendix-A\')
>>> d = match.groupdict()
>>> if REGEX:
... assert all([ d[\'scheme\'] == \'http\',
... d[\'authority\'] == \'tools.ietf.org\',
... d[\'path\'] == \'/html/rfc3986\',
... d[\'query\'] == None,
... d[\'fragment\'] == \'appendix-A\' ])

>>> for r in patterns.keys():
... assert get_compiled_pattern(r)



**format_patterns** (\\*\\*names)
Returns a dict of patterns (regular expressions) keyed by
`rule names for URIs`_ and `rule names for IRIs`_.

See also the module level dicts of patterns, and `get_compiled_pattern`.

To wrap a rule in a named capture group, pass it as keyword argument:
rule_name=\'group_name\'. By default, the formatted patterns contain no
named groups.

Patterns are `str` instances (be it in python 2.x or 3.x) containing ASCII
characters only.

Caveats:

- with re_, named capture groups cannot occur on multiple branches of an
alternation

- with re_ before python 3.3, ``\\u`` and ``\\U`` escapes must be
preprocessed (see `issue3665 < http://bugs.python.org/issue3665>`_)

- on narrow builds, character ranges beyond BMP are not supported

.. _rule names for URIs: http://tools.ietf.org/html/rfc3986#appendix-A
.. _rule names for IRIs: http://tools.ietf.org/html/rfc3987#section-2.2



Dependencies
------------

Some features require regex_.

This package\'s docstrings are tested on python 2.6, 2.7, and 3.2 to 3.6.
Note that in python< =3.2, characters beyond the Basic Multilingual Plane are
not supported on narrow builds (see `issue12729
< http://bugs.python.org/issue12729>`_).


Release notes
-------------

version 1.3.8:

- fixed deprecated escape sequence

version 1.3.6:

- fixed a bug in IPv6 pattern:

>>> assert match(\'::0:0:0:0:0.0.0.0\', \'IPv6address\')

version 1.3.4:

- allowed for lower case percent encoding

version 1.3.3:

- fixed a bug in `resolve` which left \"../\" at the beginning of some paths

version 1.3.2:

- convenience function `match`
- patterns restricted to the BMP for narrow builds
- adapted doctests for python 3.3
- compatibility with python 2.6 (thanks to Thijs Janssen)

version 1.3.1:

- some re_ compatibility: get_compiled_pattern, parse
- dropped regex_ from setup.py requirements

version 1.3.0:

- python 3.x compatibility
- format_patterns

version 1.2.1:

- compose, resolve


.. _re: http://docs.python.org/library/re
.. _regex: http://pypi.python.org/pypi/regex


Support
-------
This is free software. You may show your appreciation with a `donation`_.

.. _donation: http://danielgerber.net/¤#Thanks-for-python-package-rfc3987

RPM found in directory: /packages/linux-pbone/ftp5.gwdg.de/pub/opensuse/repositories/home:/ocurero:/openbm:/Tumbleweed/openSUSE_Tumbleweed/noarch

Content of RPM  Provides Requires

Hmm ... It's impossible ;-) This RPM doesn't exist on any FTP server

Provides :
python3.12dist(rfc3987)
python312-rfc3987
python3dist(rfc3987)

Requires :
python(abi) = 3.12
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1


Content of RPM :
/usr/lib/python3.12/site-packages/__pycache__
/usr/lib/python3.12/site-packages/__pycache__/rfc3987.cpython-312.opt-1.pyc
/usr/lib/python3.12/site-packages/__pycache__/rfc3987.cpython-312.pyc
/usr/lib/python3.12/site-packages/rfc3987-1.3.8-py3.12.egg-info
/usr/lib/python3.12/site-packages/rfc3987-1.3.8-py3.12.egg-info/PKG-INFO
/usr/lib/python3.12/site-packages/rfc3987-1.3.8-py3.12.egg-info/SOURCES.txt
/usr/lib/python3.12/site-packages/rfc3987-1.3.8-py3.12.egg-info/dependency_links.txt
/usr/lib/python3.12/site-packages/rfc3987-1.3.8-py3.12.egg-info/top_level.txt
/usr/lib/python3.12/site-packages/rfc3987.py
/usr/share/doc/packages/python312-rfc3987
/usr/share/doc/packages/python312-rfc3987/COPYING.txt
/usr/share/doc/packages/python312-rfc3987/README.txt

 
ICM