- Fix markers that utilize
in
so that they render correctly. - Fix an erroneous test on Python RC releases.
- 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.
- 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.
- Normalize post-release spellings for rev/r prefixes. :issue:`35`
- 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 theSpecifier
instances. - Allow testing if a version is contained within a specifier via the
in
operator.
- Fix a logic error that was causing inconsistent answers about whether or not
a pre-release was contained within a
SpecifierSet
or not.
- Add
Version().is_postrelease
andLegacyVersion().is_postrelease
to make it easy to determine if a release is a post release. - Add
Version().base_version
andLegacyVersion().base_version
to 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>V
or<V
and which instead special cased the handling of pre-releases, post-releases, and local versions when using>V
or<V
.
- Normalize release candidates as
rc
instead ofc
. - Expose the
VERSION_PATTERN
constant, a regular expression matching a valid version.
- Ensure that versions are normalized before comparison when used in a
specifier with a less than (
<
) or greater than (>
) operator.
- BACKWARDS INCOMPATIBLE Refactor specifier support so that it can sanely handle legacy specifiers as well as PEP 440 specifiers.
- BACKWARDS INCOMPATIBLE Move the specifier support out of
packaging.version
intopackaging.specifiers
.
- Add prerelease support to
Specifier
. - Remove the ability to do
item 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 method
Specifier().filter()
which will take an iterable and returns an iterable with items that do not match the specifier filtered out.
- Allow
LegacyVersion
andVersion
to be sorted together. - Add
packaging.version.parse()
to enable easily parsing a version string as either aVersion
or aLegacyVersion
depending on it's PEP 440 validity.
- Initial release.