summaryrefslogtreecommitdiff
path: root/python-rfc3987.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-rfc3987.spec')
-rw-r--r--python-rfc3987.spec282
1 files changed, 282 insertions, 0 deletions
diff --git a/python-rfc3987.spec b/python-rfc3987.spec
new file mode 100644
index 0000000..ca586bc
--- /dev/null
+++ b/python-rfc3987.spec
@@ -0,0 +1,282 @@
+%global _empty_manifest_terminate_build 0
+Name: python-rfc3987
+Version: 1.3.8
+Release: 1
+Summary: Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)
+License: GNU GPLv3+
+URL: http://pypi.python.org/pypi/rfc3987
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/14/bb/f1395c4b62f251a1cb503ff884500ebd248eed593f41b469f89caa3547bd/rfc3987-1.3.8.tar.gz
+BuildArch: noarch
+
+
+%description
+**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',
+ >>> assert all([ d['scheme'] == 'http',
+**compose** (\*\*parts)
+ Returns an URI composed_ from named parts.
+**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():
+ 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'
+**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('^%(URI)s$')
+ >>> assert uri.match('http://tools.ietf.org/html/rfc3986#appendix-A')
+ >>> assert not get_compiled_pattern('^%(relative_ref)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('^%(IRI)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:
+ >>> for r in patterns.keys():
+**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
+
+%package -n python3-rfc3987
+Summary: Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)
+Provides: python-rfc3987
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-rfc3987
+**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',
+ >>> assert all([ d['scheme'] == 'http',
+**compose** (\*\*parts)
+ Returns an URI composed_ from named parts.
+**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():
+ 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'
+**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('^%(URI)s$')
+ >>> assert uri.match('http://tools.ietf.org/html/rfc3986#appendix-A')
+ >>> assert not get_compiled_pattern('^%(relative_ref)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('^%(IRI)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:
+ >>> for r in patterns.keys():
+**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
+
+%package help
+Summary: Development documents and examples for rfc3987
+Provides: python3-rfc3987-doc
+%description help
+**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',
+ >>> assert all([ d['scheme'] == 'http',
+**compose** (\*\*parts)
+ Returns an URI composed_ from named parts.
+**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():
+ 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'
+**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('^%(URI)s$')
+ >>> assert uri.match('http://tools.ietf.org/html/rfc3986#appendix-A')
+ >>> assert not get_compiled_pattern('^%(relative_ref)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('^%(IRI)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:
+ >>> for r in patterns.keys():
+**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
+
+%prep
+%autosetup -n rfc3987-1.3.8
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-rfc3987 -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu Mar 09 2023 Python_Bot <Python_Bot@openeuler.org> - 1.3.8-1
+- Package Spec generated