%global _empty_manifest_terminate_build 0 Name: python-TatSu Version: 5.8.3 Release: 1 Summary: TatSu takes a grammar in a variation of EBNF as input, and outputs a memoizing PEG/Packrat parser in Python. License: BSD-3-Clause-Attribution URL: https://github.com/neogeny/tatsu Source0: https://mirrors.nju.edu.cn/pypi/web/packages/dd/e6/f46e17ed341ff7584b23a63508c781e6e5e984a9e6eb0b66b273991a02eb/TatSu-5.8.3.zip BuildArch: noarch Requires: python3-regex %description |TatSu| is a tool that takes grammars in a variation of `EBNF`_ as input, and outputs `memoizing`_ (`Packrat`_) `PEG`_ parsers in `Python`_. Why use a PEG_ parser? Because `regular languages`_ (those parsable with Python's ``re`` package) *"cannot count"*. Any language with nested structures or with balancing of demarcations requires more than regular expressions to be parsed. |TatSu| can compile a grammar stored in a string into a ``tatsu.grammars.Grammar`` object that can be used to parse any given input, much like the `re`_ module does with regular expressions, or it can generate a Python_ module that implements the parser. |TatSu| supports `left-recursive`_ rules in PEG_ grammars using the algorithm_ by *Laurent* and *Mens*. The generated AST_ has the expected left associativity. Starting with version 5.8.0 |TatSu| requires Python 3.10 or later. While no code in |TatSu| yet depends on new language or standard library features, the authors don't want to be constrained by Python version comaptibility consideration when developing features that will be part future releases. Therefore, to simplify version pinning for users of the library, they decided to proactively bump the Python minimum required version to 3.10. |TatSu| releases in the 5.7 series closely track releases in the 5.8 series while maintaining compatibility with Python 3.8 and later. Bug fixes are back-ported from 5.8 releases. Features are back-ported from the 5.8 releases unless they depend on Python features not available on the supported Python versions. Refer to the `CHANGELOG`_ for details. %package -n python3-TatSu Summary: TatSu takes a grammar in a variation of EBNF as input, and outputs a memoizing PEG/Packrat parser in Python. Provides: python-TatSu BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-TatSu |TatSu| is a tool that takes grammars in a variation of `EBNF`_ as input, and outputs `memoizing`_ (`Packrat`_) `PEG`_ parsers in `Python`_. Why use a PEG_ parser? Because `regular languages`_ (those parsable with Python's ``re`` package) *"cannot count"*. Any language with nested structures or with balancing of demarcations requires more than regular expressions to be parsed. |TatSu| can compile a grammar stored in a string into a ``tatsu.grammars.Grammar`` object that can be used to parse any given input, much like the `re`_ module does with regular expressions, or it can generate a Python_ module that implements the parser. |TatSu| supports `left-recursive`_ rules in PEG_ grammars using the algorithm_ by *Laurent* and *Mens*. The generated AST_ has the expected left associativity. Starting with version 5.8.0 |TatSu| requires Python 3.10 or later. While no code in |TatSu| yet depends on new language or standard library features, the authors don't want to be constrained by Python version comaptibility consideration when developing features that will be part future releases. Therefore, to simplify version pinning for users of the library, they decided to proactively bump the Python minimum required version to 3.10. |TatSu| releases in the 5.7 series closely track releases in the 5.8 series while maintaining compatibility with Python 3.8 and later. Bug fixes are back-ported from 5.8 releases. Features are back-ported from the 5.8 releases unless they depend on Python features not available on the supported Python versions. Refer to the `CHANGELOG`_ for details. %package help Summary: Development documents and examples for TatSu Provides: python3-TatSu-doc %description help |TatSu| is a tool that takes grammars in a variation of `EBNF`_ as input, and outputs `memoizing`_ (`Packrat`_) `PEG`_ parsers in `Python`_. Why use a PEG_ parser? Because `regular languages`_ (those parsable with Python's ``re`` package) *"cannot count"*. Any language with nested structures or with balancing of demarcations requires more than regular expressions to be parsed. |TatSu| can compile a grammar stored in a string into a ``tatsu.grammars.Grammar`` object that can be used to parse any given input, much like the `re`_ module does with regular expressions, or it can generate a Python_ module that implements the parser. |TatSu| supports `left-recursive`_ rules in PEG_ grammars using the algorithm_ by *Laurent* and *Mens*. The generated AST_ has the expected left associativity. Starting with version 5.8.0 |TatSu| requires Python 3.10 or later. While no code in |TatSu| yet depends on new language or standard library features, the authors don't want to be constrained by Python version comaptibility consideration when developing features that will be part future releases. Therefore, to simplify version pinning for users of the library, they decided to proactively bump the Python minimum required version to 3.10. |TatSu| releases in the 5.7 series closely track releases in the 5.8 series while maintaining compatibility with Python 3.8 and later. Bug fixes are back-ported from 5.8 releases. Features are back-ported from the 5.8 releases unless they depend on Python features not available on the supported Python versions. Refer to the `CHANGELOG`_ for details. %prep %autosetup -n TatSu-5.8.3 %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-TatSu -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Sun Apr 23 2023 Python_Bot - 5.8.3-1 - Package Spec generated