summaryrefslogtreecommitdiff
path: root/python-tatsu.spec
blob: 7b711a98a58e3d1c5c69c4ac8f2fb834a84711d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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
* Sun Apr 23 2023 Python_Bot <Python_Bot@openeuler.org> - 5.8.3-1
- Package Spec generated