- 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
* Improve parser error messaging around mistakes in/around
- Ignore python3.6.2 since the test doesn't support it.
- Add Provides: for python*dist(packaging): work around boo#1186870
- add no-legacyversion-warning.patch to restore compatibility with 20.4
* Fix a bug that caused a 32-bit OS that runs on a 64-bit ARM CPU
- add issue_254.patch to fix tests under non-x86_64 pplatforms
* Add proper trove classifiers for PyPy support
* Scale back depending on ctypes for manylinux support detection
* Officially support Python 3.8
* Add major, minor, and micro aliases to packaging.version.Version
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=84
* Do specifier matching correctly when the specifier contains
an epoch number and has more components than the version
(:issue:`683`)
* Support the experimental --disable-gil builds in
packaging.tags (:issue:`727`)
* BREAKING: Make optional metadata.Metadata attributes default
to None (:issue:`733`)
* Fix errors when trying to access the
description_content_type, keywords, and requires_python
attributes on metadata.Metadata when those values have not
been provided (:issue:`733`)
* Fix a bug preventing the use of the built in ExceptionGroup
on versions of Python that support it (:issue:`725`)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=78
- Update ot 23.2:
* parse_marker should consume the entire source string in #687
* Create a Security Policy file in #695
* Add python 3.12 to CI in #689
* Remove URL validation from requirement parsing in #684
* Add types for packaging.version._Version in #665
* Add PyPy 3.10 to CI in #699
* Remove unused argument in _manylinux._is_compatible in #700
* Canonicalize names for requirements comparison in #696
* Add platform tag support for LoongArch in #693
* Ability to install armv7l manylinux/musllinux wheels on armv8l in #690
* Include CHANGELOG.rst in sdist in #704
* Update pyupgrade to Python 3.7+ in #580
* Fix version pattern pre-releases in #705
* Fix typos found by codespell in #706
* Support enriched metadata in #686
* Correct rST syntax in CHANGELOG.rst in #709
* fix: platform tag for GraalPy in #711
* Document that this library uses a calendar-based versioning scheme in #717
* fix: Update copyright date for docs in #713
* Bump pip version to avoid known vulnerabilities in #720
* Typing annotations fixed in version.py in #723
* parse_{sdist,wheel}_filename: don't raise InvalidVersion in #721
* Fix code blocks in CHANGELOG.md in #724
OBS-URL: https://build.opensuse.org/request/show/1124436
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=76
* chore: add typed classifier
* Improve parser error messaging around mistakes in/around
version specifiers
* Upgrade to latest mypy
* Delete print() from test_tags
* Update our linters
* Improve error for local version label with unsupported operators
* Parse raw metadata
* Handle prefix match with zeros at end of prefix correctly
* Relax typing of _key on _BaseVersion
* Replace spaces in platform names with underscores
* Import underlying parser function as an underscored variable
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=70
- Update to v23.0
* Remove unused LPAREN token from tokenizer by @hrnciar in #630
* Reorganise the project layout and version management by
@pradyunsg in #626
* Correctly handle non-normalised specifiers in requirements by
@pradyunsg in #634
* Use stable Python 3.11 in tests by @153957 in #641
* Fix typing for specifiers.BaseSpecifier.filter() by @henryiii
in #643
* Correctly handle trailing whitespace on URL requirements by
@pradyunsg in #642
* refactor _generic_api to use EXT_SUFFIX by @mattip in #607
* Allow "extra" to be None in the marker environment by
@pradyunsg in #650
* Fix typos by @kianmeng in #648
* Update changelog for release by @pradyunsg in #656
OBS-URL: https://build.opensuse.org/request/show/1058267
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=66
- Update to v22.0
* Fix compatible version specifier incorrectly strip trailing '0'
by @kasium in #493
* Remove support for Python 3.6 by @abravalheri in #500
* Use concurrency limit in ci by @blink1073 in #510
* Fix issue link in changelog. by @bdice in #509
* chore: test with PyPy 3.8 & 3.9 by @mayeut in #512
* Accept locally installed prereleases by @q0w in #515
* Always run GHA workflows when they change by @mayeut in #516
* Add __hash__/__eq__ to requirements by @abravalheri in #499
* Upgrade to setup-python v3 and use caching for GHA by
@brettcannon in #521
* allow pre-release versions in marker evaluation by @graingert
in #523
* Error out from workflow on missing interpreter by @mayeut in
#525
* chore: update pre-commit config to the latest repos' versions
by @mayeut in #534
* chore: remove Windows PyPy 3.9 workaround on GHA by @mayeut in
#533
* Use pipx to run nox / build in GHA workflows by @mayeut in #517
* Run tests with all PyPy versions locally by @mayeut in #535
* Adhere to PEP 685 when evaluating markers with extras by
@hroncok in #545
* chore: update mypy and move to toml by @henryiii in #547
* Normalize extra comparison in markers for output by
@brettcannon in #549
* Evaluate markers under environment with empty "extra" by
@MrMino in #550
* Do not set extra in default_environment() by @sbidoul in #554
OBS-URL: https://build.opensuse.org/request/show/1045815
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=64
* Update documentation entry for 21.1.
* Update pin to pyparsing to exclude 3.0.0.
* PEP 656: musllinux support
* Drop support for Python 2.7, Python 3.4 and Python 3.5.
* Replace distutils usage with sysconfig
* Add support for zip files in ``parse_sdist_filename``
* Use cached ``_hash`` attribute to short-circuit tag equality comparisons
* Specify the default value for the ``specifier`` argument to ``SpecifierSet``
* Proper keyword-only "warn" argument in packaging.tags
* Correctly remove prerelease suffixes from ~= check
* Fix type hints for ``Version.post`` and ``Version.dev``
* Use typing alias ``UnparsedVersion``
* Improve type inference for ``packaging.specifiers.filter()``
* Tighten the return type of ``canonicalize_version()``
- drop no-legacyversion-warning.patch: setuptools has been updated
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=50
* Revert back to setuptools for compatibility purposes for some Linux distros (:issue:`363`)
* Do not insert an underscore in wheel tags when the interpreter version number
is more than 2 digits (:issue:`372`)
* Fix flit configuration, to include LICENSE files (:issue:`357`)
* Make `intel` a recognized CPU architecture for the `universal` macOS platform tag (:issue:`361`)
* Add some missing type hints to `packaging.requirements` (issue:`350`)
* Officially support Python 3.9 (:issue:`343`)
* Deprecate the ``LegacyVersion`` and ``LegacySpecifier`` classes (:issue:`321`)
* Handle ``OSError`` on non-dynamic executables when attempting to resolve
the glibc version string.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=44
* Fix a bug caused by reuse of an exhausted iterator.
* Add type hints
* Add proper trove classifiers for PyPy support
* Scale back depending on ctypes for manylinux support detection
* Use sys.implementation.name where appropriate for packaging.tags
* Expand upon the API provded by packaging.tags
* Officially support Python 3.8
* Add major, minor, and micro aliases to packaging.version.Version
* Properly mark packaging has being fully typed by adding a py.typed file
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=35
* Many buildsystem tweaks to accomodate for distribution shipping
- Remove all the merged patches:
* 0001-Fix-test-failures-test_linux_platforms_manylinux-for.patch
* 0002-Fix-check-for-64-bit-OS.patch
* 0003-Add-additional-test-to-get-100-branch-coverage.patch
* 0004-Fix-test_macos_version_detection-failure-on-32-bit-L.patch
* 0005-Drop-dependency-on-attrs.patch
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=33
- 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
- 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).
OBS-URL: https://build.opensuse.org/request/show/590421
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-packaging?expand=0&rev=19