Package: packaging2
packaging2 is friendly fork of packaging to work around the drop for
LegacyVersion support. Seehttps://github.com/pypa/packaging/issues/530Reusable core utilities for various Python Packaginginteroperability 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).Thepackaging2project includes the following: version handling, specifiers,
markers, requirements, tags, utilities.DocumentationThedocumentationprovides information and the API for the following:Version HandlingSpecifiersMarkersRequirementsTagsUtilitiesInstallationUsepipto install these utilities:pip install packaging2DiscussionIf you run into bugs, you can file them in ourissue tracker.Code of ConductEveryone interacting in the packaging project’s codebases, issue trackers, chat
rooms, and mailing lists is expected to follow thePSF Code of Conduct.ContributingTheCONTRIBUTING.rstfile outlines how to contribute to this project as
well as how to report a potential security issue. The documentation for this
project also covers information aboutproject developmentandsecurity.Project HistoryPlease review theCHANGELOG.rstfile or theChangelog documentationfor
recent changes and project history.Changelog21.4 - 2022-12-22Fork of v21.3 to packaging2 as a workaround ofhttps://github.com/pypa/packaging/issues/530and reinstate support for LegacyVersion and LegacySpecifier21.3 - 2021-11-17Add app3-none-anytag (#311)Replace the blank pyparsing 3 exclusion with a 3.0.5 exclusion (#481,#486)Fix a spelling mistake (#479)21.2 - 2021-10-29Update documentation entry for 21.1.21.1 - 2021-10-29Update pin to pyparsing to exclude 3.0.0.21.0 - 2021-07-03PEP 656: musllinux support (#411)Drop support for Python 2.7, Python 3.4 and Python 3.5.Replace distutils usage with sysconfig (#396)Add support for zip files inparse_sdist_filename(#429)Use cached_hashattribute to short-circuit tag equality comparisons (#417)Specify the default value for thespecifierargument toSpecifierSet(#437)Proper keyword-only “warn” argument in packaging.tags (#403)Correctly remove prerelease suffixes from ~= check (#366)Fix type hints forVersion.postandVersion.dev(#393)Use typing aliasUnparsedVersion(#398)Improve type inference forpackaging.specifiers.filter()(#430)Tighten the return type ofcanonicalize_version()(#402)20.9 - 2021-01-29Runisortover the code base (#377)Add support for themacosx_10_*_universal2platform tags (#379)Introducepackaging.utils.parse_wheel_filename()andparse_sdist_filename()(#387and#389)20.8 - 2020-12-11Revert back to setuptools for compatibility purposes for some Linux distros (#363)Do not insert an underscore in wheel tags when the interpreter version number
is more than 2 digits (#372)20.7 - 2020-11-28No unreleased changes.20.6 - 2020-11-28NoteThis release was subsequently yanked, and these changes were included in 20.7.Fix flit configuration, to include LICENSE files (#357)Makeintela recognized CPU architecture for theuniversalmacOS platform tag (#361)Add some missing type hints topackaging.requirements(issue:350)20.5 - 2020-11-27Officially support Python 3.9 (#343)Deprecate theLegacyVersionandLegacySpecifierclasses (#321)HandleOSErroron non-dynamic executables when attempting to resolve
the glibc version string.20.4 - 2020-05-19Canonicalize version before comparing specifiers. (#282)Change type hint forcanonicalize_nameto returnpackaging.utils.NormalizedName.
This enables the use of static typing tools (like mypy) to detect mixing of
normalized and un-normalized names.20.3 - 2020-03-05Fix changelog for 20.2.20.2 - 2020-03-05Fix a bug that caused a 32-bit OS that runs on a 64-bit ARM CPU (e.g. ARM-v8,
aarch64), to report the wrong bitness.20.1 - 2020-01-24Fix a bug caused by reuse of an exhausted iterator. (#257)20.0 - 2020-01-06Add type hints (#191)Add proper trove classifiers for PyPy support (#198)Scale back depending onctypesfor manylinux support detection (#171)Usesys.implementation.namewhere appropriate forpackaging.tags(#193)Expand upon the API provided bypackaging.tags:interpreter_name(),mac_platforms(),compatible_tags(),cpython_tags(),generic_tags()(#187)Officially support Python 3.8 (#232)Addmajor,minor, andmicroaliases topackaging.version.Version(#226)Properly markpackaginghas being fully typed by adding apy.typedfile (#226)19.2 - 2019-09-18Remove dependency onattrs(#178,#179)Use appropriate fallbacks for CPython ABI tag (#181,#185)Add manylinux2014 support (#186)Improve ABI detection (#181)Properly handle debug wheels for Python 3.8 (#172)Improve detection of debug builds on Windows (#194)19.1 - 2019-07-30Add thepackaging.tagsmodule. (#156)Correctly handle two-digit versions inpython_version(#119)19.0 - 2019-01-20Fix string representation of PEP 508 direct URL requirements with markers.Better handling of file URLsThis allows for usingfile:///absolute/path, which was previously
prevented due to the missingnetloc.This allows for all file URLs thaturlunparseturns back into the
original URL to be valid.18.0 - 2018-09-26Improve error messages when invalid requirements are given. (#129)17.1 - 2017-02-28Fixutils.canonicalize_versionwhen supplying non PEP 440 versions.17.0 - 2017-02-28Drop support for python 2.6, 3.2, and 3.3.Define minimal pyparsing version to 2.0.2 (#91).Addepoch,release,pre,dev, andpostattributes toVersionandLegacyVersion(#34).AddVersion().is_devreleaseandLegacyVersion().is_devreleaseto
make it easy to determine if a release is a development release.Addutils.canonicalize_versionto canonicalize version strings orVersioninstances (#121).16.8 - 2016-10-29Fix markers that utilizeinso that they render correctly.Fix an erroneous test on Python RC releases.16.7 - 2016-04-23Add support for the deprecatedpython_implementationmarker which was
an undocumented setuptools marker in addition to the newer markers.16.6 - 2016-03-29Add support for the deprecated, PEP 345 environment markers in addition to
the newer markers.16.5 - 2016-02-26Fix a regression in parsing requirements with whitespaces between the comma
separators.16.4 - 2016-02-22Fix a regression in parsing requirements likefoo(==4).16.3 - 2016-02-21Fix a bug wherepackaging.requirements:Requirementwas overly strict when
matching legacy requirements.16.2 - 2016-02-09Add a function that implements the name canonicalization from PEP 503.16.1 - 2016-02-07Implement requirement specifiers from PEP 508.16.0 - 2016-01-19Relicense so that packaging is available undereitherthe 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.
(#41).Implement environment markers from PEP 508.15.3 - 2015-08-01Normalize post-release spellings for rev/r prefixes.#3515.2 - 2015-05-13Fix an error where the arbitrary specifier (===) was not correctly
allowing pre-releases when it was being used.Expose the specifier and version parts through properties on theSpecifierclasses.Allow iterating over theSpecifierSetto get access to all of theSpecifierinstances.Allow testing if a version is contained within a specifier via theinoperator.15.1 - 2015-04-13Fix a logic error that was causing inconsistent answers about whether or not
a pre-release was contained within aSpecifierSetor not.15.0 - 2015-01-02AddVersion().is_postreleaseandLegacyVersion().is_postreleaseto
make it easy to determine if a release is a post release.AddVersion().base_versionandLegacyVersion().base_versionto make
it easy to get the public version without any pre or post release markers.Support the update to PEP 440 which removed the implied!=V.*when using
either>Vor<Vand which instead special cased the handling of
pre-releases, post-releases, and local versions when using>Vor<V.14.5 - 2014-12-17Normalize release candidates asrcinstead ofc.Expose theVERSION_PATTERNconstant, a regular expression matching
a valid version.14.4 - 2014-12-15Ensure that versions are normalized before comparison when used in a
specifier with a less than (<) or greater than (>) operator.14.3 - 2014-11-19BACKWARDS INCOMPATIBLERefactor specifier support so that it can sanely
handle legacy specifiers as well as PEP 440 specifiers.BACKWARDS INCOMPATIBLEMove the specifier support out ofpackaging.versionintopackaging.specifiers.14.2 - 2014-09-10Add prerelease support toSpecifier.Remove the ability to doitem in Specifier()and replace it withSpecifier().contains(item)in order to allow flags that signal if a
prerelease should be accepted or not.Add a methodSpecifier().filter()which will take an iterable and returns
an iterable with items that do not match the specifier filtered out.14.1 - 2014-09-08AllowLegacyVersionandVersionto be sorted together.Addpackaging.version.parse()to enable easily parsing a version string
as either aVersionor aLegacyVersiondepending on it’s PEP 440
validity.14.0 - 2014-09-05Initial release.