## START: Set by rpmautospec
## (rpmautospec version 0.6.0)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 11;
    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

Name:           python-pint
Version:        0.19.2
Release:        %autorelease
Summary:        Physical quantities module

# The entire source is BSD-3-Clause, except:
#   - pint/_vendor/appdirs.py is MIT, but is unbundled in %%prep
#   - pint/_vendor/flexcache.py is also BSD-3-Clause, but is unbundled in
#     %%prep
License:        BSD-3-Clause
URL:            https://github.com/hgrecco/pint
Source0:        %{pypi_source Pint}

# Fix test as NumPy 1.25 changes the rules for equality operator
# https://github.com/hgrecco/pint/commit/b3b18277ecc682bff7ca1fa9e48992f7ec68e47f
#
# Fixes:
#
# test_equal_zero_nan_NP fails with numpy 1.25.1
# https://github.com/hgrecco/pint/issues/1825
Patch:          %{url}/commit/b3b18277ecc682bff7ca1fa9e48992f7ec68e47f.patch

# add min and max to the array function overrides
# https://github.com/hgrecco/pint/commit/1b2b0592f88a1c9fdf9b5649ebade19fa81adea4
#
# Fixes several failures in TestNumpyUnclassified
#
# Cherry-picked to 0.19.
Patch:          0001-add-min-and-max-to-the-array-function-overrides.patch

# Downstream-only: Backport fix for importlib.resources.path removal
#
# Imitate current versions of flexparser, which was split out as a
# separate library in later releases of pint.
#
# This is resolved in current upstream releases of pint; see
# https://src.fedoraproject.org/rpms/python-pint/pull-request/10.
#
# Fixes:
#
# python-pint fails to build with Python 3.13: AttributeError: module
# 'importlib.resources' has no attribute 'path'
# https://bugzilla.redhat.com/show_bug.cgi?id=2256746
Patch:          0001-Downstream-only-Backport-fix-for-importlib.resources.patch

# Compatibility with pytest 8
# https://github.com/hgrecco/pint/commit/ba5fb6566d.patch
Patch:          0001-Minimal-patch-for-compatibility-with-pytest-8.patch

BuildArch:      noarch

%global _description %{expand:
Pint is a Python package to define, operate and manipulate physical quantities:
the product of a numerical value and a unit of measurement. It allows
arithmetic operations between them and conversions from and to different units.

It is distributed with a comprehensive list of physical units, prefixes and
constants.}

%description %{_description}

%package -n python3-pint
Summary:        %{summary}

%description -n python3-pint %{_description}

# We omit the “uncertainties” extra because python-uncertainties is not yet
# packaged.
%pyproject_extras_subpkg -n python3-pint numpy

%prep
%autosetup -n Pint-%{version} -p1

# We are not sure where this was bundled from, but we are pretty sure it was
# bundled from somewhere! We are not building HTML documentation, so we do not
# need it.
rm -rvf docs/_themes

# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters
sed -r -i '/pytest-cov/d' setup.cfg

# Unbundle python-appdirs
# http://github.com/ActiveState/appdirs
# Provides:       bundled(python3dist(appdirs)) = 1.4.4
rm -vf pint/_vendor/appdirs.py
# Unbundle python-flexcache
# https://github.com/hgrecco/flexcache
# Provides:       bundled(python3dist(flexcache)) = 0.2
rm -vf pint/_vendor/flexcache.py
# Add devendored dependencies back in as regular dependencies
sed -r -i 's/^setup_requires/install_requires = appdirs; flexcache\n&/' \
    setup.cfg
# The find-then-modify pattern keeps us from discarding mtimes on sources that
# do not need modification.
find pint -type f -exec \
    gawk '/^from (\.*|pint)\._vendor import (appdirs|flexcache)/ {
        print FILENAME; nextfile }' '{}' '+' |
  xargs -r -t sed -r -i \
      -e 's/^from (\.*|pint)\._vendor (import (appdirs))/\2/' \
      -e 's/^(from )(\.*|pint)\._vendor( import (flexcache))/\1\4\3/'

%generate_buildrequires
# We omit the “uncertainties” extra because python-uncertainties is not yet
# packaged.
%pyproject_buildrequires -x numpy,test

%build
%pyproject_wheel

%install
%pyproject_install
%pyproject_save_files pint

%check
%pytest

%files -n python3-pint -f %{pyproject_files}
%{_bindir}/pint-convert

%changelog
## START: Generated by rpmautospec
* Thu Apr 18 2024 Tomáš Hrnčiar <thrnciar@redhat.com> - 0.19.2-11
- Minimal patch for compatibility with pytest 8

* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.19.2-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.19.2-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Thu Jan 04 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0.19.2-8
- Backport a fix for Python 3.13 compatibility (fix RHBZ#2256753)

* Tue Oct 31 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.19.2-7
- More correctly unbundle flexcache

* Mon Oct 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.19.2-6
- Backport fix for several failures in TestNumpyUnclassified

* Mon Oct 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.19.2-5
- Backport fix for test_equal_zero_nan_NP rather than skipping it

* Mon Oct 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.19.2-4
- Skip and document failure of test_equal_zero_nan_NP on recent numpy

* Mon Oct 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.19.2-3
- Unbundle python-flexcache

* Mon Oct 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.19.2-2
- Drop obsolete patches

* Mon Oct 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.19.2-1
- Update to 0.19.2

* Mon Oct 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.19-1
- Update to 0.19 (fix RHBZ#2137292, fix RHBZ#2220407)
- Unbundle python-appdirs and document bundled python-flexcache

* Mon Oct 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.17-7
- Do not BR pytest-cov

* Mon Oct 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.17-6
- Remove HTML documentation themes that look bundled

* Mon Oct 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.17-5
- Update License to SPDX

* Mon Oct 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.17-4
- Improve dependency generation, add extras metapackages, and finish fully
  porting to pyproject-rpm-macros

* Mon Oct 30 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 0.17-3
- Remove unused/disabled docs conditional

* Fri Aug 25 2023 Mark E. Fuller <fuller@fedoraproject.org> - 0.17-1
- Bump to minimum version required to compile Cantera 3.0.0
- Switch to autorelease in spec

* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.16.1-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Sun Jul 16 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 0.16.1-11
- Support numpy 1.24.x some types removal which were already deprecated
- Workaround python3.12 changes for Fractions which now returns ValueError
  instead of TypeError
- Fix for python3.12 with unittest.assertEquals removal

* Tue Jun 27 2023 Python Maint <python-maint@redhat.com> - 0.16.1-10
- Rebuilt for Python 3.12

* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.16.1-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.16.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Wed Jun 15 2022 Python Maint <python-maint@redhat.com> - 0.16.1-7
- Rebuilt for Python 3.11

* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.16.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.16.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 0.16.1-4
- Rebuilt for Python 3.10

* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.16.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Sun Jan 24 2021 Matthias Runge <mrunge@redhat.com> - 0.16.1-2
- rebuild without bootstrap
- fix FTBFS (rhbz#1914333)

* Mon Sep 21 2020 Lumír Balhar <lbalhar@redhat.com> - 0.13-3
- Fix test dependencies and execution

* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.13-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Tue Jun 23 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 0.13-1
- Update to 0.13

* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 0.10.1-3
- Rebuilt for Python 3.9

* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.10.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Thu Jan 09 2020 Matthias Runge <mrunge@redhat.com> - 0.10.1-1
- update to 0.10.1 (rhbz#1789066)
- modernize specfile

* Thu Sep 05 2019 Matthias Runge <mrunge@redhat.com> - 0.9-5
- skip test_quantity for now (rhbz#1706212)

* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 0.9-5
- Rebuilt for Python 3.8

* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.9-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Wed Jul 10 2019 Matthias Runge <mrunge@redhat.com> - 0.9-3
- Use context manager for assertWarns and fix DeprecationWarning
  resolves: rhbz#1706212

* Sun Mar 17 2019 Miro Hrončok <mhroncok@redhat.com> - 0.9-2
- Subpackages python2-pint, python2-pint-doc have been removed
  See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal

* Mon Feb 25 2019 Yatin Karel <ykarel@redhat.com> - 0.9-1
- Update to 0.9

* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.6-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.6-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 0.6-14
- Rebuilt for Python 3.7

* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.6-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Sat Jan 27 2018 Iryna Shcherbina <ishcherb@redhat.com> - 0.6-12
- Update Python 2 dependency declarations to new packaging standards
  (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.6-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.6-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 0.6-9
- Rebuild for Python 3.6

* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6-8
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.6-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6-6
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5

* Sun Sep 06 2015 Matthias Runge <mrunge@redhat.com> - 0.6-5
- fix uppercase/lowercase naming, fix obsoletes

* Fri Sep 04 2015 Chandan Kumar <chkumar246@gmail.com> - 0.6-4
- Add python2 and python3 subpackages

* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Mon Dec 15 2014 Matthias Runge <mrunge@redhat.com> - 0.6-2
- change BR python-devel to python2-devel (rhbz#1173109)

* Thu Dec 11 2014 Matthias Runge <mrunge@redhat.com> - 0.6-1
- Initial package.

## END: Generated by rpmautospec