diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-10 22:29:54 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 22:29:54 +0000 |
commit | 9a844e64e92af2bce33b8c8cf3dd480e5250ae7d (patch) | |
tree | 121e8a2bd3cb699b3d94bac956fa13f58da39d42 /python-tatsu.spec | |
parent | 2fdc81962361bf2bddaf12f983f5aeddc0e33b97 (diff) |
automatic import of python-tatsu
Diffstat (limited to 'python-tatsu.spec')
-rw-r--r-- | python-tatsu.spec | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/python-tatsu.spec b/python-tatsu.spec new file mode 100644 index 0000000..c5f4f4e --- /dev/null +++ b/python-tatsu.spec @@ -0,0 +1,130 @@ +%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 +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 5.8.3-1 +- Package Spec generated |