%global _empty_manifest_terminate_build 0 Name: python-parse Version: 1.19.0 Release: 1 Summary: parse() is the opposite of format() License: BSD License URL: https://github.com/r1chardj0n3s/parse Source0: https://mirrors.nju.edu.cn/pypi/web/packages/89/a1/82ce536be577ba09d4dcee45db58423a180873ad38a2d014d26ab7b7cb8a/parse-1.19.0.tar.gz BuildArch: noarch %description A basic version of the `Format String Syntax`_ is supported with anonymous (fixed-position), named and formatted fields:: {[field name]:[format spec]} Field names must be a valid Python identifiers, including dotted names; element indexes imply dictionaries (see below for example). Numbered fields are also not supported: the result of parsing will include the parsed fields in the order they are parsed. The conversion of fields to types other than strings is done based on the type in the format specification, which mirrors the ``format()`` behaviour. There are no "!" field conversions like ``format()`` has. Some simple parse() format string examples: >>> parse("Bring me a {}", "Bring me a shrubbery") >>> r = parse("The {} who {} {}", "The knights who say Ni!") >>> print(r) >>> print(r.fixed) ('knights', 'say', 'Ni!') >>> print(r[0]) knights >>> print(r[1:]) ('say', 'Ni!') >>> r = parse("Bring out the holy {item}", "Bring out the holy hand grenade") >>> print(r) >>> print(r.named) {'item': 'hand grenade'} >>> print(r['item']) hand grenade >>> 'item' in r True Note that `in` only works if you have named fields. Dotted names and indexes are possible with some limits. Only word identifiers are supported (ie. no numeric indexes) and the application must make additional sense of the result: >>> r = parse("Mmm, {food.type}, I love it!", "Mmm, spam, I love it!") >>> print(r) >>> print(r.named) {'food.type': 'spam'} >>> print(r['food.type']) spam >>> r = parse("My quest is {quest[name]}", "My quest is to seek the holy grail!") >>> print(r) >>> print(r['quest']) {'name': 'to seek the holy grail!'} >>> print(r['quest']['name']) to seek the holy grail! If the text you're matching has braces in it you can match those by including a double-brace ``{{`` or ``}}`` in your format string, just like format() does. %package -n python3-parse Summary: parse() is the opposite of format() Provides: python-parse BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-parse A basic version of the `Format String Syntax`_ is supported with anonymous (fixed-position), named and formatted fields:: {[field name]:[format spec]} Field names must be a valid Python identifiers, including dotted names; element indexes imply dictionaries (see below for example). Numbered fields are also not supported: the result of parsing will include the parsed fields in the order they are parsed. The conversion of fields to types other than strings is done based on the type in the format specification, which mirrors the ``format()`` behaviour. There are no "!" field conversions like ``format()`` has. Some simple parse() format string examples: >>> parse("Bring me a {}", "Bring me a shrubbery") >>> r = parse("The {} who {} {}", "The knights who say Ni!") >>> print(r) >>> print(r.fixed) ('knights', 'say', 'Ni!') >>> print(r[0]) knights >>> print(r[1:]) ('say', 'Ni!') >>> r = parse("Bring out the holy {item}", "Bring out the holy hand grenade") >>> print(r) >>> print(r.named) {'item': 'hand grenade'} >>> print(r['item']) hand grenade >>> 'item' in r True Note that `in` only works if you have named fields. Dotted names and indexes are possible with some limits. Only word identifiers are supported (ie. no numeric indexes) and the application must make additional sense of the result: >>> r = parse("Mmm, {food.type}, I love it!", "Mmm, spam, I love it!") >>> print(r) >>> print(r.named) {'food.type': 'spam'} >>> print(r['food.type']) spam >>> r = parse("My quest is {quest[name]}", "My quest is to seek the holy grail!") >>> print(r) >>> print(r['quest']) {'name': 'to seek the holy grail!'} >>> print(r['quest']['name']) to seek the holy grail! If the text you're matching has braces in it you can match those by including a double-brace ``{{`` or ``}}`` in your format string, just like format() does. %package help Summary: Development documents and examples for parse Provides: python3-parse-doc %description help A basic version of the `Format String Syntax`_ is supported with anonymous (fixed-position), named and formatted fields:: {[field name]:[format spec]} Field names must be a valid Python identifiers, including dotted names; element indexes imply dictionaries (see below for example). Numbered fields are also not supported: the result of parsing will include the parsed fields in the order they are parsed. The conversion of fields to types other than strings is done based on the type in the format specification, which mirrors the ``format()`` behaviour. There are no "!" field conversions like ``format()`` has. Some simple parse() format string examples: >>> parse("Bring me a {}", "Bring me a shrubbery") >>> r = parse("The {} who {} {}", "The knights who say Ni!") >>> print(r) >>> print(r.fixed) ('knights', 'say', 'Ni!') >>> print(r[0]) knights >>> print(r[1:]) ('say', 'Ni!') >>> r = parse("Bring out the holy {item}", "Bring out the holy hand grenade") >>> print(r) >>> print(r.named) {'item': 'hand grenade'} >>> print(r['item']) hand grenade >>> 'item' in r True Note that `in` only works if you have named fields. Dotted names and indexes are possible with some limits. Only word identifiers are supported (ie. no numeric indexes) and the application must make additional sense of the result: >>> r = parse("Mmm, {food.type}, I love it!", "Mmm, spam, I love it!") >>> print(r) >>> print(r.named) {'food.type': 'spam'} >>> print(r['food.type']) spam >>> r = parse("My quest is {quest[name]}", "My quest is to seek the holy grail!") >>> print(r) >>> print(r['quest']) {'name': 'to seek the holy grail!'} >>> print(r['quest']['name']) to seek the holy grail! If the text you're matching has braces in it you can match those by including a double-brace ``{{`` or ``}}`` in your format string, just like format() does. %prep %autosetup -n parse-1.19.0 %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-parse -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri Apr 21 2023 Python_Bot - 1.19.0-1 - Package Spec generated