## START: Set by rpmautospec ## (rpmautospec version 0.3.5) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 6; 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 # Break a circular dependency with sphinx-autodoc-typehints %bcond bootstrap 0 # 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. %bcond doc 1 Name: python-typeguard Version: 4.0.0 Release: %autorelease Summary: Run-time type checker for Python # SPDX License: MIT URL: https://github.com/agronholm/typeguard Source: %{pypi_source typeguard} # Fixed deprecation warnings on Python 3.12 # https://github.com/agronholm/typeguard/commit/f377be389765ed0db104b41d78fce3c45e72e149 # # Fixes: # # DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14 # https://github.com/agronholm/typeguard/issues/368 # # Backported to 4.0.0. Patch: 0001-Fixed-deprecation-warnings-on-Python-3.12.patch BuildArch: noarch BuildRequires: python3-devel %if %{with doc} BuildRequires: make BuildRequires: python3-sphinx-latex BuildRequires: latexmk %endif %global common_description %{expand: This library provides run-time type checking for functions defined with PEP 484 argument (and return) type annotations.} %description %{common_description} %package -n python3-typeguard Summary: %{summary} %description -n python3-typeguard %{common_description} %if %{with doc} %package doc Summary: Documentation for typeguard %description doc %{common_description} %endif %prep %autosetup -n typeguard-%{version} -p1 # Because we do not build Sphinx-generated HTML documentation, and conf.py does # not import the HTML theme package, we do not need to require it at build # time. sed -r -i 's/^([[:blank:]]*)(.(sphinx_rtd_theme))\b/\1# \2/' pyproject.toml %if %{with bootstrap} sed -r -i 's/^([[:blank:]]*)(.(sphinx-autodoc-typehints))\b/\1# \2/' \ pyproject.toml sed -r -i 's/^([[:blank:]]*)(.(sphinx_autodoc_typehints))\b/\1# \2/' \ docs/conf.py %endif # In docs/conf.py, packaging is used to access the version from the typeguard # package distribution. This works for upstream, but it doesn’t work when we # haven’t installed the package with proper dist-info metadata yet. sed -r -i 's/get_version\("typeguard"\)/"%{version}"/' docs/conf.py # Drop intersphinx mappings, since we can’t download remote inventories and # can’t easily produce working hyperlinks from inventories in local # documentation packages. echo 'intersphinx_mapping.clear()' >> docs/conf.py %generate_buildrequires export SETUPTOOLS_SCM_PRETEND_VERSION='%{version}' %pyproject_buildrequires -x test%{?with_doc:,doc} %build export SETUPTOOLS_SCM_PRETEND_VERSION='%{version}' %pyproject_wheel %if %{with doc} PYTHONPATH="${PWD}/src" sphinx-build -b latex -j%{?_smp_build_ncpus} \ docs %{_vpath_builddir}/_latex %make_build -C %{_vpath_builddir}/_latex LATEXMKOPTS='-quiet' %endif %install export SETUPTOOLS_SCM_PRETEND_VERSION='%{version}' %pyproject_install %pyproject_save_files typeguard %check %pytest %files -n python3-typeguard -f %{pyproject_files} # pyproject_files handles LICENSE; verify with “rpm -qL -p …” %if %{without doc} %doc README.rst %endif %if %{with doc} %files doc %license LICENSE %doc README.rst %doc %{_vpath_builddir}/_latex/typeguard.pdf %endif %changelog * Wed Jul 12 2023 Benjamin A. Beasley - 4.0.0-6 - When PDF docs are disabled, omit the -doc subpackage * Wed Jul 12 2023 Benjamin A. Beasley - 4.0.0-5 - Non-bootstrap build for Python 3.12 * Tue Jun 20 2023 Benjamin A. Beasley - 4.0.0-4 - Bootstrap for Python 3.12 * Tue Jun 20 2023 Benjamin A. Beasley - 4.0.0-3 - Add a bootstrap conditional * Tue Jun 20 2023 Benjamin A. Beasley - 4.0.0-2 - Fixed deprecation warnings on Python 3.12 * Sun Jun 18 2023 Benjamin A. Beasley - 4.0.0-1 - Update to 4.0.0 (close RHBZ#2160261) * Sun Jun 18 2023 Benjamin A. Beasley - 3.0.2-1 - Update to 3.0.2 (close RHBZ#2159587) * Sun Jun 18 2023 Benjamin A. Beasley - 2.13.3-10 - Use new (rpm 4.17.1+) bcond style * Sun May 07 2023 Benjamin A. Beasley - 2.13.3-8 - Fix package import error while building documentation * Sat Mar 18 2023 Benjamin A. Beasley - 2.13.3-7 - Don’t assume %%_smp_mflags is -j%%_smp_build_ncpus * Fri Jan 20 2023 Fedora Release Engineering - 2.13.3-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Tue Aug 16 2022 Benjamin A. Beasley - 2.13.3-5 - Add -doc subpackage with Sphinx-generated PDF docs * Tue Aug 16 2022 Benjamin A. Beasley - 2.13.3-4 - Port to pyproject-rpm-macros - Clean up obsolete macros and stale dependencies/BR’s * Fri Jul 22 2022 Fedora Release Engineering - 2.13.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Mon Jun 13 2022 Python Maint - 2.13.3-2 - Rebuilt for Python 3.11 * Sat Jan 29 2022 Michel Alexandre Salim - 2.13.3-1 - Update to 2.13.3 (fixes: rhbz#2025745) * Fri Jan 21 2022 Fedora Release Engineering - 2.13.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Sun Nov 07 2021 Davide Cavalca - 2.13.0-1 - Update to 2.13.0; Fixes: RHBZ#2012648 * Tue Jun 08 2021 Davide Cavalca - 2.12.1-1 - Update to 2.12.1 - Gate out broken tests * Fri Jun 04 2021 Python Maint - 2.10.0-4 - Rebuilt for Python 3.10 * Wed Jan 27 2021 Fedora Release Engineering - 2.10.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Thu Jan 14 2021 Michel Alexandre Salim - 2.10.0-2 - Fix egginfo on Fedora < 33 so the auto-generated Provides has the right version * Mon Oct 26 2020 Christopher Brown - 2.10.0-1 - Update to 2.10.0 - Remove conditional as python 3.9 now supported * Mon Jul 6 2020 Christopher Brown - 2.9.1-1 - Fix description - Remove egg-info in prep - Add conditional for python 3.9 * Wed May 27 2020 Christopher Brown - 2.7.1-2 - Remove dep generator - Simplify description - Fix file glob * Wed May 6 2020 Christopher Brown - 2.7.1-1 - Initial package at 2.7.1