This version is not yet released and is under active development.
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
This allows for all file URLs that
urlunparseturns back into the original URL to be valid.
17.1 - 2017-02-28¶
utils.canonicalize_versionwhen supplying non PEP 440 versions.
17.0 - 2017-02-28¶
- Drop support for python 2.6, 3.2, and 3.3.
- Define minimal pyparsing version to 2.0.2 (#91).
LegacyVersion().is_devreleaseto make it easy to determine if a release is a development release.
utils.canonicalize_versionto canonicalize version strings or
16.8 - 2016-10-29¶
- Fix markers that utilize
inso that they render correctly.
- Fix an erroneous test on Python RC releases.
16.7 - 2016-04-23¶
- Add support for the deprecated
python_implementationmarker which was an undocumented setuptools marker in addition to the newer markers.
16.6 - 2016-03-29¶
- Add support for the deprecated, PEP 345 environment markers in addition to the newer markers.
16.5 - 2016-02-26¶
- Fix a regression in parsing requirements with whitespaces between the comma separators.
16.4 - 2016-02-22¶
- Fix a regression in parsing requirements like
16.3 - 2016-02-21¶
- Fix a bug where
packaging.requirements:Requirementwas overly strict when matching legacy requirements.
16.2 - 2016-02-09¶
- Add a function that implements the name canonicalization from PEP 503.
16.1 - 2016-02-07¶
- Implement requirement specifiers from PEP 508.
16.0 - 2016-01-19¶
- 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.
==comparison when there is a prefix and a local version in play. (#41).
- Implement environment markers from PEP 508.
15.2 - 2015-05-13¶
- 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
- Allow iterating over the
SpecifierSetto get access to all of the
- Allow testing if a version is contained within a specifier via the
15.1 - 2015-04-13¶
- Fix a logic error that was causing inconsistent answers about whether or not
a pre-release was contained within a
15.0 - 2015-01-02¶
LegacyVersion().is_postreleaseto make it easy to determine if a release is a post release.
LegacyVersion().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
<Vand which instead special cased the handling of pre-releases, post-releases, and local versions when using
14.5 - 2014-12-17¶
- Normalize release candidates as
- Expose the
VERSION_PATTERNconstant, a regular expression matching a valid version.
14.4 - 2014-12-15¶
- Ensure that versions are normalized before comparison when used in a
specifier with a less than (
<) or greater than (
14.3 - 2014-11-19¶
- 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
14.2 - 2014-09-10¶
- Add prerelease support to
- Remove the ability to do
item in Specifier()and replace it with
Specifier().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.
14.1 - 2014-09-08¶
Versionto be sorted together.
packaging.version.parse()to enable easily parsing a version string as either a
LegacyVersiondepending on it’s PEP 440 validity.
14.0 - 2014-09-05¶
- Initial release.