2015-04-24 14:31:25 +00:00
|
|
|
#
|
2024-03-16 09:28:52 +00:00
|
|
|
# spec file for package python-packaging
|
2015-04-24 14:31:25 +00:00
|
|
|
#
|
2026-01-29 09:41:43 +00:00
|
|
|
# Copyright (c) 2026 SUSE LLC and contributors
|
2015-04-24 14:31:25 +00:00
|
|
|
#
|
|
|
|
|
# All modifications and additions to the file contributed by third parties
|
|
|
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
|
|
|
# upon. The license for this file, and modifications and additions to the
|
|
|
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
|
|
|
# license for the pristine package is not an Open Source License, in which
|
|
|
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
|
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
|
|
|
# published by the Open Source Initiative.
|
|
|
|
|
|
2018-12-28 08:57:58 +00:00
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
2015-06-25 09:01:38 +00:00
|
|
|
#
|
2015-04-24 14:31:25 +00:00
|
|
|
|
|
|
|
|
|
2022-07-15 20:45:45 +00:00
|
|
|
%define modname packaging
|
|
|
|
|
# in order to avoid rewriting for subpackage generator
|
|
|
|
|
%define mypython python
|
2019-08-14 09:33:53 +00:00
|
|
|
%global flavor @BUILD_FLAVOR@%{nil}
|
2025-05-13 15:38:37 +00:00
|
|
|
%if 0%{?suse_version} >= 1650
|
2022-07-15 20:45:45 +00:00
|
|
|
%if "%{flavor}" == "primary"
|
2023-01-01 13:35:25 +00:00
|
|
|
# this one is goes into Ring0: Bootstrap for primary python stack
|
2022-07-15 20:45:45 +00:00
|
|
|
%define pprefix %{primary_python}
|
|
|
|
|
%define pythons %{primary_python}
|
2022-07-22 11:26:10 +00:00
|
|
|
# Avoid cycle with python-rpm-packaging requiring python3-packaging
|
2022-08-01 08:38:10 +00:00
|
|
|
#!BuildIgnore: python3-packaging
|
2022-07-15 20:45:45 +00:00
|
|
|
%endif
|
|
|
|
|
%if "%{flavor}" == ""
|
|
|
|
|
# The rest is in Ring1
|
|
|
|
|
%define pprefix python
|
|
|
|
|
%{expand:%%define skip_%{primary_python} 1}
|
2022-07-22 11:26:10 +00:00
|
|
|
BuildRequires: python3-packaging
|
2022-07-15 20:45:45 +00:00
|
|
|
%endif
|
2023-03-09 16:40:11 +00:00
|
|
|
%else
|
|
|
|
|
# backport and option d projects for 15.X having one or more python in the buildset don't need the Ring split for bootstrap
|
|
|
|
|
%if "%{flavor}" == "primary"
|
|
|
|
|
%define python_module() invalid-multibuild-flavor-for-15.X
|
|
|
|
|
ExclusiveArch: do-not-build
|
|
|
|
|
%else
|
|
|
|
|
%define pprefix python
|
|
|
|
|
%endif
|
2026-01-29 09:41:43 +00:00
|
|
|
|
2023-03-09 16:40:11 +00:00
|
|
|
%endif
|
2026-01-29 09:41:43 +00:00
|
|
|
|
2019-08-14 09:33:53 +00:00
|
|
|
%if "%{flavor}" == "test"
|
2022-07-15 20:45:45 +00:00
|
|
|
%define pprefix python
|
2019-08-14 09:33:53 +00:00
|
|
|
%define psuffix -test
|
|
|
|
|
%bcond_without test
|
|
|
|
|
%else
|
2018-12-28 08:57:58 +00:00
|
|
|
%bcond_with test
|
2019-08-14 09:33:53 +00:00
|
|
|
%endif
|
2023-01-01 13:35:25 +00:00
|
|
|
|
2026-01-29 09:41:43 +00:00
|
|
|
%{?sle15_python_module_pythons}
|
2022-07-15 20:45:45 +00:00
|
|
|
Name: %{pprefix}-packaging%{?psuffix}
|
Accepting request 1330006 from home:ecsos:python
- update to 26.0:
* Features:
- PEP 751: support pylock (PR #900)
- PEP 794: import name metadata (PR #948)
- Support for writing metadata to a file (PR #846)
- Support __replace__ on Version (PR #1003)
- Support positional pattern matching for Version and SpecifierSet (PR #1004)
* Behavior adaptations:
- PEP 440 handling of prereleases for Specifier.contains,
SpecifierSet.contains, and SpecifierSet.filter (PR #897)
- Handle PEP 440 edge case in SpecifierSet.filter (PR #942)
- Adjust arbitrary equality intersection preservation in SpecifierSet (PR #951)
- Return False instead of raising for .contains with invalid version (PR #932)
- Support arbitrary equality on arbitrary strings for Specifier
and SpecifierSet’s filter and contains method. (PR #954)
- Only try to parse as Version on certain marker keys,
return False on unequal ordered comparisons (PR #939)
* Fixes:
- Update _hash when unpickling Tag() (PR #860)
- Correct comment and simplify implicit prerelease handling in
Specifier.prereleases (PR #896)
- Use explicit _GLibCVersion NamedTuple in _manylinux (PR #868)
- Detect invalid license expressions containing () (PR #879)
- Correct regex for metadata 'name' format (PR #925)
- Improve the message around expecting a semicolon (PR #833)
- Support nested parens in license expressions (PR #931)
- Add space before at symbol in Requirements string (PR #953)
- A root logger use found, use a packaging logger instead (PR #965)
- Better support for subclassing Marker and Requirement (PR #1022)
- Normalize all extras, not just if it comes first (PR #1024)
- Don’t produce a broken repr if Marker fails to construct (PR #1033)
* Performance:
- Avoid recompiling regexes in the tokenizer for a 3x speedup (PR #1019)
- Improve performance in _manylinux.py (PR #869)
- Minor cleanups to Version (PR #913)
- Skip redundant creation of Version’s in specifier comparison (PR #986)
- Cache the Specifier’s Version (PR #985)
- Make Version a little faster (PR #987)
- Minor Version regex cleanup (PR #990)
- Faster regex on Python 3.11.5+ for Version (PR #988, PR #1055)
- Lazily calculate _key in Version (PR #989, PR #1048)
- Faster canonicalize_version (PR #993)
- Use re.fullmatch in a couple more places (PR #992, PR #1029)
- Use map instead of generator (PR #996)
- Deprecate ._version (_Version, a NamedTuple) (PR #995, PR #1062)
- Avoid duplicate Version creation in canonicalize_version (PR #994)
- Add __slots__ to core classes (PR #1001, PR #1002, PR #1032)
- Use Version.__replace__ in specifier comparison (PR #999)
- Use _get_spec_version in more places in Specifier (PR #1005)
- Pull set construction out of function (PR #1012)
- Letter normalization dict for prereleases and the like (PR #1014)
- Use str.partition in _parse_project_urls (PR #1013)
- Avoid normalizing extras again when comparing (PR #1028)
- Speed up Version.__str__ by about 10% (PR #997)
- Much faster canonicalize_name by avoiding a regex
(PR #1030, PR #1047, PR #1064)
- Faster zero stripping (PR #1058)
* Type annotations:
- Fix a type annotation (PR #907)
- Fix type hint of function used with contextlib.contextmanager (PR #1046)
- Fix tags return type in parse_wheel_filename docs (PR #973)
- Add type hint for _version in .version.Version (PR #927)
- Changed static type annotations in prereleases setter method
in specifier.py (PR #930)
- Statically type our test suite (PR #982)
* Internal:
- Test and declare support for Python 3.14 (PR #901)
- Change our license metadata to use an SPDX license expression
(PR #881, PR #924)
- Expand the Ruff checks run on our codebase (PR #835, PR #957,
PR #959, PR #963, PR #956, PR #961, PR #964, PR #958, PR #960,
PR #968, PR #967, PR #966, PR #969, PR #980, PR #979, PR #962,
PR #984, PR #972)
- Add spell checking (PR #904, PR #910, PR #1015)
- Improve links back to source in the documentation (PR #991)
- Add case insensitivity tests for arbitrary equality (PR #975)
- Fix incorrectly implicitly concatenated string in specifiers test (PR #946)
- Simpler else instead of assert in a check (PR #1027, PR #1031)
- Synchronize documentation and code for markers (PR #1008)
- Use the GitHub Actions slim runner for the all pass check (PR #1021)
- Use actionlint to check CI workflows (PR #1052)
- Use Trusted Publishing (PR #893, PR #1043, PR #1045, PR #1051)
- Use zizmor to check CI (PR #1035)
- Test on first public release of CPython 3.11 and newer (PR #1056)
Since the final release candidate: Faster canonicalize_name,
especially on Python 3.12 and 3.13, where performance regressed
previously (PR #1064), and reintroduce (deprecated) support for
Version._.version (PR #1062).
OBS-URL: https://build.opensuse.org/request/show/1330006
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=89
2026-01-30 11:49:47 +00:00
|
|
|
Version: 26.0
|
2015-04-24 14:31:25 +00:00
|
|
|
Release: 0
|
|
|
|
|
Summary: Core utilities for Python packages
|
2022-07-15 11:00:25 +00:00
|
|
|
License: Apache-2.0 AND BSD-2-Clause
|
2023-01-01 13:35:25 +00:00
|
|
|
URL: https://packaging.pypa.io/
|
|
|
|
|
#SourceRepository: https://github.com/pypa/packaging
|
2020-05-05 07:24:20 +00:00
|
|
|
Source: https://files.pythonhosted.org/packages/source/p/packaging/packaging-%{version}.tar.gz
|
2023-01-01 13:35:25 +00:00
|
|
|
BuildRequires: %{python_module base >= 3.7}
|
|
|
|
|
# python-flit-core is bootstrapped in Ring0 as well
|
|
|
|
|
BuildRequires: %{python_module flit-core >= 3.3}
|
2018-12-28 08:57:58 +00:00
|
|
|
BuildRequires: fdupes
|
2017-02-23 13:18:40 +00:00
|
|
|
BuildRequires: python-rpm-macros
|
2020-05-05 07:24:20 +00:00
|
|
|
#!BuildIgnore: post-build-checks-malwarescan
|
2018-12-28 08:57:58 +00:00
|
|
|
BuildArch: noarch
|
2017-02-23 13:18:40 +00:00
|
|
|
%if %{with test}
|
2022-07-22 11:26:10 +00:00
|
|
|
BuildRequires: %{python_module packaging = %{version}}
|
2017-02-23 13:18:40 +00:00
|
|
|
BuildRequires: %{python_module pretend}
|
2023-01-01 13:35:25 +00:00
|
|
|
BuildRequires: %{python_module pytest >= 6.2}
|
Accepting request 1330006 from home:ecsos:python
- update to 26.0:
* Features:
- PEP 751: support pylock (PR #900)
- PEP 794: import name metadata (PR #948)
- Support for writing metadata to a file (PR #846)
- Support __replace__ on Version (PR #1003)
- Support positional pattern matching for Version and SpecifierSet (PR #1004)
* Behavior adaptations:
- PEP 440 handling of prereleases for Specifier.contains,
SpecifierSet.contains, and SpecifierSet.filter (PR #897)
- Handle PEP 440 edge case in SpecifierSet.filter (PR #942)
- Adjust arbitrary equality intersection preservation in SpecifierSet (PR #951)
- Return False instead of raising for .contains with invalid version (PR #932)
- Support arbitrary equality on arbitrary strings for Specifier
and SpecifierSet’s filter and contains method. (PR #954)
- Only try to parse as Version on certain marker keys,
return False on unequal ordered comparisons (PR #939)
* Fixes:
- Update _hash when unpickling Tag() (PR #860)
- Correct comment and simplify implicit prerelease handling in
Specifier.prereleases (PR #896)
- Use explicit _GLibCVersion NamedTuple in _manylinux (PR #868)
- Detect invalid license expressions containing () (PR #879)
- Correct regex for metadata 'name' format (PR #925)
- Improve the message around expecting a semicolon (PR #833)
- Support nested parens in license expressions (PR #931)
- Add space before at symbol in Requirements string (PR #953)
- A root logger use found, use a packaging logger instead (PR #965)
- Better support for subclassing Marker and Requirement (PR #1022)
- Normalize all extras, not just if it comes first (PR #1024)
- Don’t produce a broken repr if Marker fails to construct (PR #1033)
* Performance:
- Avoid recompiling regexes in the tokenizer for a 3x speedup (PR #1019)
- Improve performance in _manylinux.py (PR #869)
- Minor cleanups to Version (PR #913)
- Skip redundant creation of Version’s in specifier comparison (PR #986)
- Cache the Specifier’s Version (PR #985)
- Make Version a little faster (PR #987)
- Minor Version regex cleanup (PR #990)
- Faster regex on Python 3.11.5+ for Version (PR #988, PR #1055)
- Lazily calculate _key in Version (PR #989, PR #1048)
- Faster canonicalize_version (PR #993)
- Use re.fullmatch in a couple more places (PR #992, PR #1029)
- Use map instead of generator (PR #996)
- Deprecate ._version (_Version, a NamedTuple) (PR #995, PR #1062)
- Avoid duplicate Version creation in canonicalize_version (PR #994)
- Add __slots__ to core classes (PR #1001, PR #1002, PR #1032)
- Use Version.__replace__ in specifier comparison (PR #999)
- Use _get_spec_version in more places in Specifier (PR #1005)
- Pull set construction out of function (PR #1012)
- Letter normalization dict for prereleases and the like (PR #1014)
- Use str.partition in _parse_project_urls (PR #1013)
- Avoid normalizing extras again when comparing (PR #1028)
- Speed up Version.__str__ by about 10% (PR #997)
- Much faster canonicalize_name by avoiding a regex
(PR #1030, PR #1047, PR #1064)
- Faster zero stripping (PR #1058)
* Type annotations:
- Fix a type annotation (PR #907)
- Fix type hint of function used with contextlib.contextmanager (PR #1046)
- Fix tags return type in parse_wheel_filename docs (PR #973)
- Add type hint for _version in .version.Version (PR #927)
- Changed static type annotations in prereleases setter method
in specifier.py (PR #930)
- Statically type our test suite (PR #982)
* Internal:
- Test and declare support for Python 3.14 (PR #901)
- Change our license metadata to use an SPDX license expression
(PR #881, PR #924)
- Expand the Ruff checks run on our codebase (PR #835, PR #957,
PR #959, PR #963, PR #956, PR #961, PR #964, PR #958, PR #960,
PR #968, PR #967, PR #966, PR #969, PR #980, PR #979, PR #962,
PR #984, PR #972)
- Add spell checking (PR #904, PR #910, PR #1015)
- Improve links back to source in the documentation (PR #991)
- Add case insensitivity tests for arbitrary equality (PR #975)
- Fix incorrectly implicitly concatenated string in specifiers test (PR #946)
- Simpler else instead of assert in a check (PR #1027, PR #1031)
- Synchronize documentation and code for markers (PR #1008)
- Use the GitHub Actions slim runner for the all pass check (PR #1021)
- Use actionlint to check CI workflows (PR #1052)
- Use Trusted Publishing (PR #893, PR #1043, PR #1045, PR #1051)
- Use zizmor to check CI (PR #1035)
- Test on first public release of CPython 3.11 and newer (PR #1056)
Since the final release candidate: Faster canonicalize_name,
especially on Python 3.12 and 3.13, where performance regressed
previously (PR #1064), and reintroduce (deprecated) support for
Version._.version (PR #1062).
OBS-URL: https://build.opensuse.org/request/show/1330006
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=89
2026-01-30 11:49:47 +00:00
|
|
|
BuildRequires: %{python_module tomli-w}
|
2017-02-23 13:18:40 +00:00
|
|
|
%endif
|
2022-07-22 11:26:10 +00:00
|
|
|
%if "%{flavor}" == "primary"
|
2022-07-15 11:00:25 +00:00
|
|
|
# See boo#1186870, we can't provide ourselves to pythondistdeps.py
|
2022-07-15 20:45:45 +00:00
|
|
|
Provides: %{mypython}%{python_version}dist(%{modname}) = %{version}-%{release}
|
|
|
|
|
Provides: %{mypython}3-%{modname} = %{version}-%{release}
|
2022-07-22 11:26:10 +00:00
|
|
|
Provides: %{mypython}3dist(%{modname}) = %{version}-%{release}
|
2022-07-15 20:45:45 +00:00
|
|
|
Obsoletes: %{mypython}3-%{modname} < %{version}-%{release}
|
2022-07-22 11:26:10 +00:00
|
|
|
Requires: %{mypython}(abi) = %{python_version}
|
2021-06-18 08:53:40 +00:00
|
|
|
%endif
|
2017-02-23 13:18:40 +00:00
|
|
|
%python_subpackages
|
2015-04-24 14:31:25 +00:00
|
|
|
|
|
|
|
|
%description
|
2023-01-01 13:35:25 +00:00
|
|
|
Reusable core utilities for various Python Packaging interoperability specifications.
|
|
|
|
|
|
|
|
|
|
This library provides utilities that implement the interoperability specifications
|
|
|
|
|
which have clearly one correct behaviour (eg: PEP 440) or benefit greatly from having
|
|
|
|
|
a single shared implementation (eg: PEP 425).
|
2015-04-24 14:31:25 +00:00
|
|
|
|
|
|
|
|
%prep
|
2021-11-07 11:12:09 +00:00
|
|
|
%autosetup -p1 -n packaging-%{version}
|
2015-04-24 14:31:25 +00:00
|
|
|
|
2022-07-15 11:00:25 +00:00
|
|
|
%if !%{with test}
|
2015-04-24 14:31:25 +00:00
|
|
|
%build
|
2023-01-01 13:35:25 +00:00
|
|
|
%{python_expand # build using pythonXX-base bundled pip with the installed flit-core backend
|
|
|
|
|
$python -m venv venv-%{$python_bin_suffix} --system-site-packages
|
|
|
|
|
venv-%{$python_bin_suffix}/bin/pip wheel %{pyproject_wheel_args} .
|
2022-07-15 11:00:25 +00:00
|
|
|
}
|
2022-04-25 08:24:47 +00:00
|
|
|
%endif
|
2019-08-14 09:33:53 +00:00
|
|
|
|
|
|
|
|
%if !%{with test}
|
2015-04-24 14:31:25 +00:00
|
|
|
%install
|
2023-01-01 13:35:25 +00:00
|
|
|
%{python_expand # install wheel (into venv sitelib) and move to buildroot system sitelib
|
|
|
|
|
venv-%{$python_bin_suffix}/bin/pip install %{pyproject_install_args} packaging==%{version}
|
|
|
|
|
venvsite=%{buildroot}${PWD}/venv-%{$python_bin_suffix}/lib/python%{$python_bin_suffix}/site-packages
|
|
|
|
|
mkdir -p %{buildroot}%{$python_sitelib}
|
|
|
|
|
mv ${venvsite}/packaging* %{buildroot}%{$python_sitelib}/
|
|
|
|
|
pushd %{buildroot}
|
|
|
|
|
rmdir -p $(realpath --relative-to ${PWD} ${venvsite})
|
|
|
|
|
popd
|
2022-07-15 11:00:25 +00:00
|
|
|
%fdupes %{buildroot}%{$python_sitelib}
|
2017-02-23 13:18:40 +00:00
|
|
|
}
|
2022-07-15 11:00:25 +00:00
|
|
|
%endif
|
2015-04-24 14:31:25 +00:00
|
|
|
|
2022-07-15 11:00:25 +00:00
|
|
|
%if %{with test}
|
|
|
|
|
%check
|
|
|
|
|
%pytest
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%if !%{with test}
|
2017-02-23 13:18:40 +00:00
|
|
|
%files %{python_files}
|
Accepting request 682967 from home:jayvdb:coala:python3-bears
- Fix check that egg-info is a directory to work with %check enabled,
and better explain how it works
- Remove unnecessary build dependency on base
- Re-add test dependency on pyparsing with minimum version defined upstream,
and replace inline comment with GitHub issue URL
- Add LICENSE.APACHE LICENSE.BSD to %license
- Update to v19.0
* Fix string representation of PEP 508 direct URL requirements with markers.
* Better handling of file URLs
This allows for using ``file:///absolute/path``, which was previously
prevented due to the missing ``netloc``
This allows for all file URLs that ``urlunparse`` turns back into the
original URL to be valid
- from v18.0
* Improve error messages when invalid requirements are given
- Drop pyparsing dependency as its not needed and creates circular
dependency on older distributions
- Reduce amount of duplicities
- Update to version 17.1
* Fix utils.canonicalize_version when supplying non PEP 440 versions.
- Update to version 17.0
* Drop support for python 2.6, 3.2, and 3.3.
* Define minimal pyparsing version to 2.0.2 (#91).
* Add epoch, release, pre, dev, and post attributes to Version and LegacyVersion (#34).
* Add Version().is_devrelease and LegacyVersion().is_devrelease to make it easy to determine if a release is a development release.
* Add utils.canonicalize_version to canonicalize version strings or Version instances (#121).
- fix pyparsing requirement
- update for single-spec
- drop setuptools dependency, as this is itself now a dependency
of setuptools
- run tests conditionally, to minimize dependency tree
- ensure egg-info is a directory (distutils would install it as file)
- update to 16.8:
* Fix markers that utilize ``in`` so that they render correctly.
* Fix an erroneous test on Python RC releases.
- update to 16.7:
* Add support for the deprecated ``python_implementation`` marker which was
an undocumented setuptools marker in addition to the newer markers.
* Add support for the deprecated, PEP 345 environment markers in addition to
the newer markers.
- update to 16.5:
* Fix a regression in parsing requirements with whitespaces between the comma
separators.
* Fix a regression in parsing requirements like ``foo (==4)``.
* Fix a bug where ``packaging.requirements:Requirement`` was overly strict when
matching legacy requirements.
* Add a function that implements the name canonicalization from PEP 503.
* Implement requirement specifiers from PEP 508.
* Relicense so that packaging is available under *either* the Apache License,
Version 2.0 or a 2 Clause BSD license.
* Support installation of packaging when only distutils is available.
* Fix ``==`` comparison when there is a prefix and a local version in play.
(:issue:`41`).
* Implement environment markers from PEP 508.
- Adjust Requires according to requires.txt
- update to 15.3:
* Normalize post-release spellings for rev/r prefixes. :issue:`35`
- update to 15.2:
* Fix an error where the arbitary specifier (``===``) was not correctly
allowing pre-releases when it was being used.
* Expose the specifier and version parts through properties on the
``Specifier`` classes.
* Allow iterating over the ``SpecifierSet`` to get access to all of the
``Specifier`` instances.
* Allow testing if a version is contained within a specifier via the ``in``
operator.
- Initial packaging
OBS-URL: https://build.opensuse.org/request/show/682967
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=23
2019-03-09 07:47:44 +00:00
|
|
|
%license LICENSE LICENSE.APACHE LICENSE.BSD
|
2023-01-01 13:35:25 +00:00
|
|
|
%doc README.rst
|
2017-02-23 13:18:40 +00:00
|
|
|
%{python_sitelib}/packaging
|
2023-01-01 13:35:25 +00:00
|
|
|
%{python_sitelib}/packaging-%{version}.dist-info
|
2022-07-15 11:00:25 +00:00
|
|
|
%endif
|
2019-08-14 09:33:53 +00:00
|
|
|
|
2015-04-24 14:31:25 +00:00
|
|
|
%changelog
|