diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fbc6136 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/lark-parser-0.8.2.tar.gz +/lark-parser-0.9.0.tar.gz diff --git a/python-lark-parser.spec b/python-lark-parser.spec new file mode 100644 index 0000000..734c602 --- /dev/null +++ b/python-lark-parser.spec @@ -0,0 +1,174 @@ +%global pypi_name lark-parser + +Name: python-%{pypi_name} +Version: 0.9.0 +Release: 11%{?dist} +Summary: Lark is a modern general-purpose parsing library for Python +License: MIT +Url: https://github.com/lark-parser/lark +Source: https://files.pythonhosted.org/packages/source/l/%{pypi_name}/%{pypi_name}-%{version}.tar.gz + +# Adjust imports for Python 3.11, merged upstream +# https://github.com/lark-parser/lark/pull/1140 +Patch: python3.11.patch + +BuildArch: noarch + +%description +Lark is a modern general-purpose parsing library for Python. + +Lark focuses on simplicity and power. It lets you choose between +two parsing algorithms: + +Earley : Parses all context-free grammars (even ambiguous ones)! +It is the default. + +LALR(1): Only LR grammars. Outperforms PLY and most if not all +other pure-python parsing libraries. + +Both algorithms are written in Python and can be used interchangeably +with the same grammar (aside for algorithmic restrictions). +See "Comparison to other parsers" for more details. + +Lark can auto magically build an AST from your grammar, without any +more code on your part. + +Features: + +- EBNF grammar with a little extra +- Earley & LALR(1) +- Builds an AST auto magically based on the grammar +- Automatic line & column tracking +- Automatic token collision resolution (unless both tokens are regexps) +- Python 2 & 3 compatible +- Unicode fully supported + +%package -n python3-%{pypi_name} +Summary: %{summary} +BuildRequires: python3-devel +BuildRequires: python3-setuptools +%{?python_provide:%python_provide python3-%{pypi_name}} + +%description -n python3-%{pypi_name} +Lark is a modern general-purpose parsing library for Python. + +Lark focuses on simplicity and power. It lets you choose between +two parsing algorithms: + +Earley : Parses all context-free grammars (even ambiguous ones)! +It is the default. + +LALR(1): Only LR grammars. Outperforms PLY and most if not all +other pure-python parsing libraries. + +Both algorithms are written in Python and can be used interchangeably +with the same grammar (aside for algorithmic restrictions). +See "Comparison to other parsers" for more details. + +Lark can auto magically build an AST from your grammar, without any +more code on your part. + +Features: + +- EBNF grammar with a little extra +- Earley & LALR(1) +- Builds an AST auto magically based on the grammar +- Automatic line & column tracking +- Automatic token collision resolution (unless both tokens are regexps) +- Python 2 & 3 compatible +- Unicode fully supported + +%prep +%autosetup -p1 -n %{pypi_name}-%{version} + +%build +%py3_build + +%install +%py3_install +rm -rfv %{buildroot}/%{python3_sitelib}/lark-stubs/ + +%check +%{python3} -m tests + +%files -n python3-%{pypi_name} +%license LICENSE +%doc README.md examples +%{python3_sitelib}/lark_parser-*.egg-info +%{python3_sitelib}/lark/ + +%changelog +* Fri Jul 21 2023 Fedora Release Engineering - 0.9.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Python Maint - 0.9.0-10 +- Rebuilt for Python 3.12 + +* Fri Jan 20 2023 Fedora Release Engineering - 0.9.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 0.9.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jul 07 2022 Miro Hrončok - 0.9.0-7 +- Don't import deprecated sre_parse and sre_constants modules + +* Mon Jun 13 2022 Python Maint - 0.9.0-6 +- Rebuilt for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 0.9.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 0.9.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 0.9.0-3 +- Rebuilt for Python 3.10 + +* Wed Jan 27 2021 Fedora Release Engineering - 0.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Oct 05 2020 Miro Hrončok - 0.9.0-1 +- Update to 0.9.0 + +* Wed Jul 29 2020 Fedora Release Engineering - 0.8.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue May 26 2020 Miro Hrončok - 0.8.2-2 +- Rebuilt for Python 3.9 + +* Sat Mar 07 2020 Thomas Andrejak - 0.8.2-1 +- Update to 0.8.2 + +* Mon Feb 24 2020 Thomas Andrejak - 0.8.1-1 +- Update to 0.8.1 + +* Thu Jan 30 2020 Fedora Release Engineering - 0.7.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Nov 06 2019 Thomas Andrejak - 0.7.8-1 +- Update to 0.7.8 + +* Fri Oct 25 2019 Thomas Andrejak - 0.7.7-1 +- Update to 0.7.7 + +* Thu Oct 03 2019 Miro Hrončok - 0.7.1-4 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Mon Aug 19 2019 Miro Hrončok - 0.7.1-3 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 0.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon May 20 2019 Scott K Logan - 0.7.1-1 +- Update to 0.7.1 + +* Sat Feb 02 2019 Fedora Release Engineering - 0.6.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jan 11 2019 Thomas Andrejak - 0.6.4-2 +- Fix package naming + +* Mon Sep 24 2018 Thomas Andrejak - 0.6.4-1 +- Initial package diff --git a/python3.11.patch b/python3.11.patch new file mode 100644 index 0000000..59a9aed --- /dev/null +++ b/python3.11.patch @@ -0,0 +1,33 @@ +From 7bbb353dd258905510289bda3de87a8354daca3c Mon Sep 17 00:00:00 2001 +From: Florian Bruhin +Date: Tue, 26 Apr 2022 13:37:12 +0200 +Subject: [PATCH] Adjust imports for Python 3.11 + +sre_parse and sre_constants are deprecated in 3.11, see https://github.com/python/cpython/issues/91308 +--- + lark/utils.py | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/lark/utils.py b/lark/utils.py +index 36f50d1..29d998b 100644 +--- a/lark/utils.py ++++ b/lark/utils.py +@@ -173,8 +173,13 @@ except ImportError: + import sys, re + Py36 = (sys.version_info[:2] >= (3, 6)) + +-import sre_parse +-import sre_constants ++if sys.version_info >= (3, 11): ++ import re._parser as sre_parse ++ import re._constants as sre_constants ++else: ++ import sre_parse ++ import sre_constants ++ + categ_pattern = re.compile(r'\\p{[A-Za-z_]+}') + def get_regexp_width(expr): + if regex: +-- +2.35.3 + diff --git a/sources b/sources new file mode 100644 index 0000000..68a7fb9 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (lark-parser-0.9.0.tar.gz) = e22f35666aa39cc504eaf48950170bd44eb9d9e15ae2f13d47a4950576be31f1bbabf799847b02e5ee22c0f96fb75c5256c8e4a4aa195caa830444f5b91d6852