commit f24d09bfb85611219e9696a6add284ccdbf8c997 Author: tigro Date: Sun Jan 5 23:04:42 2025 +0300 import python-cattrs-24.1.2-3.el10 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fcf3e34 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/cattrs-24.1.2.tar.gz diff --git a/.python-cattrs.metadata b/.python-cattrs.metadata new file mode 100644 index 0000000..51987d5 --- /dev/null +++ b/.python-cattrs.metadata @@ -0,0 +1 @@ +47a60e9de97b86cb39db7993ae2a48448a707727 SOURCES/cattrs-24.1.2.tar.gz diff --git a/SPECS/python-cattrs.spec b/SPECS/python-cattrs.spec new file mode 100644 index 0000000..e47075b --- /dev/null +++ b/SPECS/python-cattrs.spec @@ -0,0 +1,406 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.7.2) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 3; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +# Currently, the version of python-pymongo in Rawhide is too old; at least +# 4.4.0 is required. See: https://bugzilla.redhat.com/show_bug.cgi?id=1823014 +%bcond bson 0 + +# Not currently in EPEL10: +%bcond cbor2 %{expr:!0%{?el10}} + +# Not currently in EPEL10: +%bcond msgpack %{expr:!0%{?el10}} + +# Not currently in EPEL10: +%bcond msgspec %{expr:!0%{?el10}} + +# Not currently in EPEL10: +%bcond orjson %{expr:!0%{?el10}} + +# Sphinx-generated HTML documentation is not suitable for packaging; see +# https://bugzilla.redhat.com/show_bug.cgi?id=2006555 for discussion. +# +# We can generate PDF documentation as a substitute. EPEL10 does not have the +# necessary dependencies, and this will probably remain true of EPELs. +%bcond doc_pdf %{expr:!0%{?rhel}} + +Name: python-cattrs +Version: 24.1.2 +Release: %autorelease +Summary: Python library for structuring and unstructuring data + +# SPDX +License: MIT +URL: https://github.com/python-attrs/cattrs +# The GitHub archive contains tests and docs, which the PyPI sdist lacks +Source: %{url}/archive/v%{version}/cattrs-%{version}.tar.gz + +# Because an extras metapackage is conditionalized on architecture, the base +# package cannot be noarch – but the rest of the binary packages *are* noarch, +# with no compiled code. +%global debug_package %{nil} + +BuildRequires: python3-devel + +# There is no obvious, straightforward way to generate dependencies from +# [tool.pdm.dev-dependencies] in pyproject.toml, so we maintain them here +# manually. + +# test = [ +# "hypothesis>=6.79.4", +BuildRequires: %{py3_dist hypothesis} >= 6.79.4 +# "pytest>=7.4.0", +BuildRequires: %{py3_dist pytest} >= 7.4 +# "pytest-benchmark>=4.0.0", +# We choose not to run benchmarks with the tests. +# BuildRequires: %%{py3_dist pytest-benchmark} >= 4.0.0 +# "immutables>=0.20", +BuildRequires: %{py3_dist immutables} >= 0.20 +# "typing-extensions>=4.7.1", +BuildRequires: %{py3_dist typing-extensions} >= 4.7.1 +# "coverage>=7.4.0", +# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters +# BuildRequires: %%{py3_dist coverage} >= 7.4.0 +# "pytest-xdist>=3.4.0", +BuildRequires: %{py3_dist pytest-xdist} >= 3.4 +#] + +%if %{with doc_pdf} +# docs = [ +# "sphinx>=5.3.0", +BuildRequires: %{py3_dist sphinx} >= 5.3 +# "furo>=2024.1.29", +BuildRequires: %{py3_dist furo} >= 2023.3.27 +# "sphinx-copybutton>=0.5.2", +# Loosened until https://bugzilla.redhat.com/show_bug.cgi?id=2186733 is fixed. +BuildRequires: %{py3_dist sphinx-copybutton} >= 0.5.1 +# "myst-parser>=1.0.0", +BuildRequires: %{py3_dist myst-parser} >= 1 +# "pendulum>=2.1.2", +BuildRequires: %{py3_dist pendulum} >= 2.1.2 +# "sphinx-autobuild", +# sphinx-autobuild is useful for developers, but not needed to build the docs +# BuildRequires: %%{py3_dist sphinx-autobuild} +# "typing-extensions>=4.8.0", +BuildRequires: %{py3_dist typing-extensions} >= 4.8 +# ] + +BuildRequires: make +BuildRequires: python3-sphinx-latex +BuildRequires: latexmk +BuildRequires: /usr/bin/xindy +BuildRequires: tex-xetex-bin +%endif + +%global msgspec_enabled 0 +%if %{with msgspec} +%ifnarch s390x %{ix86} +%global msgspec_enabled 1 +%endif +%endif + +%global _description %{expand: +cattrs is an open source Python library for structuring and +unstructuring data. cattrs works best with attrs classes and the usual +Python collections, but other kinds of classes are supported by +manually registering converters.} + +%description %_description + + +%package -n python3-cattrs +Summary: %{summary} + +BuildArch: noarch + +Obsoletes: python3-cattrs+bson < 23.2.3-1 + +%description -n python3-cattrs %_description + + +%package doc +Summary: Documentation for python-cattrs + +# If the msgspec extra (which is unavailable on s390x and i686) is enabled, +# then the -doc subpackage becomes arch-dependent, because the presence of +# msgspec affects the contents of the documentation. +%if %{without msgspec} +BuildArch: noarch +%endif + +%description doc %{_description} + + +# Most extras metapackages are noarch: +%pyproject_extras_subpkg -n python3-cattrs -a ujson pyyaml tomlkit +%if %{with bson} +%pyproject_extras_subpkg -n python3-cattrs -a bson +%endif +%if %{with cbor2} +%pyproject_extras_subpkg -n python3-cattrs -a cbor2 +%endif +%if %{msgspec_enabled} +# python-msgspec is ExcludeArch: s390x i686; the extras metapackage is arched +# because it is not present on every architecture +%pyproject_extras_subpkg -n python3-cattrs msgspec +%endif +%if %{with msgpack} +%pyproject_extras_subpkg -n python3-cattrs -a msgpack +%endif +%if %{with orjson} +%pyproject_extras_subpkg -n python3-cattrs -a orjson +%endif + + +%prep +%autosetup -n cattrs-%{version} + +# Don’t run benchmarks when testing (we don’t depend on pytest-benchmark) +sed -r -i 's/ --benchmark[^[:blank:]"]*//g' pyproject.toml + +# The version-finding code in docs/conf.py relies on a real installed +# “distribution” with metadata, which we don’t have at the time the +# documentation is built. +sed -r -i 's/^(version = ).*/\1 "%{version}"/' docs/conf.py + +# Remove bundled fonts to show they are not packaged: +rm -rv docs/_static/fonts/ + +# Since pdflatex cannot handle Unicode inputs in general: +echo "latex_engine = 'xelatex'" >> docs/conf.py + + +%generate_buildrequires +export SETUPTOOLS_SCM_PRETEND_VERSION='%{version}' +%{pyproject_buildrequires \ + -x ujson \ +%if %{with orjson} + -x orjson \ +%endif +%if %{with msgpack} + -x msgpack \ +%endif + -x pyyaml \ + -x tomlkit \ +%if %{with cbor2} + -x cbor2 \ +%endif +%if %{with bson} + -x bson \ +%endif +%if %{msgspec_enabled} + -x msgspec \ +%endif + %{nil}} + + +%build +export SETUPTOOLS_SCM_PRETEND_VERSION='%{version}' +%pyproject_wheel + +%if %{with doc_pdf} +PYTHONPATH="${PWD}/src" %make_build -C docs latex \ + SPHINXBUILD=sphinx-build \ + SPHINXOPTS='-j%{?_smp_build_ncpus}' +%make_build -C docs/_build/latex LATEXMKOPTS='-quiet' +%endif + + +%install +%pyproject_install +%pyproject_save_files -l cattrs cattr + + +%check +%if %{without bson} +# These unconditionally import bson, so they error during test collection +ignore="${ignore-} --ignore=tests/test_preconf.py" +ignore="${ignore-} --ignore=tests/preconf/test_pyyaml.py" +%endif + +%if !%{msgspec_enabled} +# These unconditionally import msgspec, so they error during test collection +ignore="${ignore-} --ignore=tests/preconf/test_msgspec_cpython.py" +%endif + +%if v"0%{python3_version}" >= v"3.13" +# Deselect tests failing on Python 3.13 +# https://github.com/python-attrs/cattrs/issues/547#issuecomment-2353748516 +# Some appear to be related to https://github.com/python/cpython/issues/120645 +k="${k-}${k+ and }not test_310_optional_field_roundtrip" +k="${k-}${k+ and }not test_310_union_field_roundtrip" +k="${k-}${k+ and }not test_nested_roundtrip" +k="${k-}${k+ and }not test_nested_roundtrip_tuple" +k="${k-}${k+ and }not test_nodefs_generated_unstructuring_cl" +k="${k-}${k+ and }not test_omit_default_roundtrip" +k="${k-}${k+ and }not test_optional_field_roundtrip" +k="${k-}${k+ and }not test_renaming" +k="${k-}${k+ and }not test_simple_roundtrip" +k="${k-}${k+ and }not test_simple_roundtrip_defaults" +k="${k-}${k+ and }not test_simple_roundtrip_tuple" +k="${k-}${k+ and }not test_simple_roundtrip_with_extra_keys_forbidden" +k="${k-}${k+ and }not test_structure_simple_from_dict_default" +k="${k-}${k+ and }not test_union_field_roundtrip" +k="${k-}${k+ and }not test_unmodified_generated_structuring" +k="${k-}${k+ and }not test_unstructure_deeply_nested_generics_list[False]" +k="${k-}${k+ and }not test_unstructure_deeply_nested_generics_list[True]" +# Flaky: +k="${k-}${k+ and }not test_individual_overrides" +%endif + +%pytest --ignore-glob='bench/*' ${ignore-} -k "${k-}" -n auto + + +%files -n python3-cattrs -f %{pyproject_files} + + +%files doc +%license LICENSE +%doc HISTORY.md +%doc README.md +%if %{with doc_pdf} +%doc docs/_build/latex/cattrs.pdf +%endif + + +%changelog +* Sun Jan 05 2025 Arkady L. Shane - 24.1.2-3 +- Rebuilt for MSVSphere 10 + +## START: Generated by rpmautospec +* Fri Oct 11 2024 Benjamin A. Beasley - 24.1.2-3 +- Deconditionalize using pytest-xdist +- It is now available in EPEL10. + +* Fri Oct 11 2024 Benjamin A. Beasley - 24.1.2-2 +- Enable the msgspec extra on Fedora F41 and later +- The python-msgspec package now works with Python 3.13. + +* Sun Sep 22 2024 Benjamin A. Beasley - 24.1.2-1 +- Update to 24.1.2 (close RHBZ#2314095) + +* Tue Sep 17 2024 Benjamin A. Beasley - 24.1.1-2 +- Add conditionals to prepare for EPEL10 branching + +* Mon Sep 16 2024 Benjamin A. Beasley - 24.1.1-1 +- Update to 24.1.1 (close RHBZ#2301121, fix RHBZ#2309012) + +* Mon Sep 16 2024 Benjamin A. Beasley - 23.2.3-10 +- Enable the cbor2 extra + +* Mon Sep 16 2024 Benjamin A. Beasley - 23.2.3-9 +- Remove bundled fonts before building to show they are not packaged + +* Fri Jul 19 2024 Fedora Release Engineering - 23.2.3-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jun 10 2024 Python Maint - 23.2.3-6 +- Rebuilt for Python 3.13 + +* Mon Jun 10 2024 Miro Hrončok - 23.2.3-5 +- Drop unneeded build dependency on sphinx-autobuild + +* Fri Jan 26 2024 Fedora Release Engineering - 23.2.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 23.2.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Jan 02 2024 Benjamin A. Beasley - 23.2.3-2 +- Assert that the .dist-info directory contains a license file +- Do not package a duplicate license file + +* Tue Dec 12 2023 Benjamin A. Beasley - 23.2.3-1 +- Update to 23.2.3 (close RHBZ#2252344, fix RHBZ#2237277) +- Drop “bson” extra because python-pymongo is too old + +* Tue Dec 12 2023 Benjamin A. Beasley - 23.1.2-2 +- Confirm License is SPDX MIT + +* Mon Aug 28 2023 Benjamin A. Beasley - 23.1.2-1 +- Update to 23.1.2 (close RHBZ#2211212) + +* Fri Jul 21 2023 Fedora Release Engineering - 22.2.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Apr 13 2023 Benjamin A. Beasley - 22.2.0-13 +- Depend on python-orjson now that it is available + +* Sat Mar 18 2023 Benjamin A. Beasley - 22.2.0-12 +- Don’t assume %%_smp_mflags is -j%%_smp_build_ncpus + +* Wed Mar 01 2023 Miro Hrončok - 22.2.0-11 +- Explicitly BuildRequire setuptools to build the documentation + +* Thu Jan 26 2023 Benjamin A. Beasley - 22.2.0-10 +- Build and package Sphinx documentation + +* Thu Jan 26 2023 Benjamin A. Beasley - 22.2.0-9 +- Run the tests + +* Fri Jan 20 2023 Fedora Release Engineering - 22.2.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Dec 07 2022 Ankur Sinha (Ankur Sinha Gmail) - 22.2.0-7 +- chore: check in sources + +* Wed Dec 07 2022 Ankur Sinha (Ankur Sinha Gmail) - 22.2.0-6 +- feat: remove more more unneeded BRs + +* Wed Dec 07 2022 Ankur Sinha (Ankur Sinha Gmail) - 22.2.0-5 +- feat: remove unneeded BRs + +* Wed Dec 07 2022 Ankur Sinha (Ankur Sinha Gmail) - 22.2.0-4 +- chore: remove macro for consistency + +* Wed Dec 07 2022 Ankur Sinha (Ankur Sinha Gmail) - 22.2.0-3 +- fix: explicitly mention license file + +* Wed Dec 07 2022 Ankur Sinha (Ankur Sinha Gmail) - 22.2.0-2 +- feat: loosed poetry call + +* Wed Dec 07 2022 Ankur Sinha (Ankur Sinha Gmail) - 22.2.0-1 +- feat: ready for re-review + +* Wed Dec 07 2022 Ankur Sinha (Ankur Sinha Gmail) - 22.1.0-1 +- wip: requires orjson, which requires maturin + +* Mon Aug 19 2019 Miro Hrončok - 0.9.0-5 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 0.9.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Feb 02 2019 Fedora Release Engineering - 0.9.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Oct 17 2018 Zbigniew Jędrzejewski-Szmek - 0.9.0-2 +- Subpackage python2-cattrs has been removed + See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal + +* Thu Sep 13 2018 Miro Hrončok - 0.9.0-1 +- Update to 0.9.0 to fix Python 3.7 FTBFS (#1605625) + +* Fri Jul 13 2018 Fedora Release Engineering - 0.6.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 19 2018 Miro Hrončok - 0.6.0-4 +- Rebuilt for Python 3.7 + +* Fri Feb 09 2018 Fedora Release Engineering - 0.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Mon Jan 29 2018 Eric Smith 0.6.0-2 +- Added missing BuildRequires for python2-enum34. + +* Thu Jan 11 2018 Eric Smith 0.6.0-1 +- Initial version. + +## END: Generated by rpmautospec