diff options
-rw-r--r-- | .hgtags | 1 | ||||
-rw-r--r-- | CHANGES.txt | 12 | ||||
-rw-r--r-- | ez_setup.py | 2 | ||||
-rw-r--r-- | pkg_resources.py | 36 | ||||
-rw-r--r-- | setuptools/_vendor/packaging/__about__.py | 2 | ||||
-rw-r--r-- | setuptools/_vendor/packaging/version.py | 74 | ||||
-rw-r--r-- | setuptools/_vendor/vendored.txt | 2 | ||||
-rw-r--r-- | setuptools/version.py | 2 |
8 files changed, 80 insertions, 51 deletions
@@ -167,3 +167,4 @@ d62bf4e407b3b9b5bedcc1396a9ba46f35571902 8.0.1 1c03d512e39d5cfd711ae3ed7e316769f427e43b 8.0.2 6c3467488123ce70b1dd009145a02f51fb78cdcc 8.0.3 2c467afffe9fe1e14618b576fac6b4f7c412a61e 8.0.4 +3f87370b6863e5a4e831b394ef1a58e0e97a4336 8.1 diff --git a/CHANGES.txt b/CHANGES.txt index 4048ac8d..3621ed77 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -3,11 +3,21 @@ CHANGES ======= --- -8.1 +8.2 --- * Pull Request #85: Search egg-base when adding egg-info to manifest. +--- +8.1 +--- + +* Upgrade ``packaging`` to 14.5, giving preference to "rc" as designator for + release candidates over "c". +* PEP-440 warnings are now raised as their own class, + ``pkg_resources.PEP440Warning``, instead of RuntimeWarning. +* Disabled warnings on empty versions. + ----- 8.0.4 ----- diff --git a/ez_setup.py b/ez_setup.py index 6c77135b..969a073a 100644 --- a/ez_setup.py +++ b/ez_setup.py @@ -36,7 +36,7 @@ try: except ImportError: USER_SITE = None -DEFAULT_VERSION = "8.0.5" +DEFAULT_VERSION = "8.2" DEFAULT_URL = "https://pypi.python.org/packages/source/s/setuptools/" def _python_cmd(*args): diff --git a/pkg_resources.py b/pkg_resources.py index 5af4c869..87fd2782 100644 --- a/pkg_resources.py +++ b/pkg_resources.py @@ -80,6 +80,13 @@ import setuptools._vendor.packaging.specifiers packaging = setuptools._vendor.packaging +class PEP440Warning(RuntimeWarning): + """ + Used when there is an issue with a version or specifier not complying with + PEP 440. + """ + + class _SetuptoolsVersionMixin(object): def __hash__(self): @@ -272,6 +279,9 @@ __all__ = [ 'ResolutionError', 'VersionConflict', 'DistributionNotFound', 'UnknownExtra', 'ExtractionError', + # Warnings + 'PEP440Warning', + # Parsing functions and string utilities 'parse_requirements', 'parse_version', 'safe_name', 'safe_version', 'get_platform', 'compatible_platforms', 'yield_lines', 'split_sections', @@ -2415,15 +2425,23 @@ class Distribution(object): self._parsed_version = parse_version(self.version) if isinstance( self._parsed_version, packaging.version.LegacyVersion): - warnings.warn( - "'%s (%s)' is being parsed as a legacy, non PEP 440, " - "version. You may find odd behavior and sort order. In " - "particular it will be sorted as less than 0.0. It is " - "recommend to migrate to PEP 440 compatible versions." % ( - self.project_name, self.version, - ), - RuntimeWarning, - ) + # While an empty version is techincally a legacy version and + # is not a valid PEP 440 version, it's also unlikely to + # actually come from someone and instead it is more likely that + # it comes from setuptools attempting to parse a filename and + # including it in the list. So for that we'll gate this warning + # on if the version is anything at all or not. + if self.version: + warnings.warn( + "'%s (%s)' is being parsed as a legacy, non PEP 440, " + "version. You may find odd behavior and sort order. " + "In particular it will be sorted as less than 0.0. It " + "is recommend to migrate to PEP 440 compatible " + "versions." % ( + self.project_name, self.version, + ), + PEP440Warning, + ) return self._parsed_version diff --git a/setuptools/_vendor/packaging/__about__.py b/setuptools/_vendor/packaging/__about__.py index d3e3dacf..d3e50f1e 100644 --- a/setuptools/_vendor/packaging/__about__.py +++ b/setuptools/_vendor/packaging/__about__.py @@ -22,7 +22,7 @@ __title__ = "packaging" __summary__ = "Core utilities for Python packages" __uri__ = "https://github.com/pypa/packaging" -__version__ = "14.4" +__version__ = "14.5" __author__ = "Donald Stufft" __email__ = "donald@stufft.io" diff --git a/setuptools/_vendor/packaging/version.py b/setuptools/_vendor/packaging/version.py index e76e9607..8d779a48 100644 --- a/setuptools/_vendor/packaging/version.py +++ b/setuptools/_vendor/packaging/version.py @@ -21,7 +21,7 @@ from ._structures import Infinity __all__ = [ - "parse", "Version", "LegacyVersion", "InvalidVersion", + "parse", "Version", "LegacyVersion", "InvalidVersion", "VERSION_PATTERN" ] @@ -156,44 +156,44 @@ def _legacy_cmpkey(version): return epoch, parts +# Deliberately not anchored to the start and end of the string, to make it +# easier for 3rd party code to reuse +VERSION_PATTERN = r""" + v? + (?: + (?:(?P<epoch>[0-9]+)!)? # epoch + (?P<release>[0-9]+(?:\.[0-9]+)*) # release segment + (?P<pre> # pre-release + [-_\.]? + (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview)) + [-_\.]? + (?P<pre_n>[0-9]+)? + )? + (?P<post> # post release + (?:-(?P<post_n1>[0-9]+)) + | + (?: + [-_\.]? + (?P<post_l>post|rev|r) + [-_\.]? + (?P<post_n2>[0-9]+)? + ) + )? + (?P<dev> # dev release + [-_\.]? + (?P<dev_l>dev) + [-_\.]? + (?P<dev_n>[0-9]+)? + )? + ) + (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version +""" + class Version(_BaseVersion): _regex = re.compile( - r""" - ^ - \s* - v? - (?: - (?:(?P<epoch>[0-9]+)!)? # epoch - (?P<release>[0-9]+(?:\.[0-9]+)*) # release segment - (?P<pre> # pre-release - [-_\.]? - (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview)) - [-_\.]? - (?P<pre_n>[0-9]+)? - )? - (?P<post> # post release - (?:-(?P<post_n1>[0-9]+)) - | - (?: - [-_\.]? - (?P<post_l>post|rev|r) - [-_\.]? - (?P<post_n2>[0-9]+)? - ) - )? - (?P<dev> # dev release - [-_\.]? - (?P<dev_l>dev) - [-_\.]? - (?P<dev_n>[0-9]+)? - )? - ) - (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version - \s* - $ - """, + r"^\s*" + VERSION_PATTERN + r"\s*$", re.VERBOSE | re.IGNORECASE, ) @@ -297,8 +297,8 @@ def _parse_letter_version(letter, number): letter = "a" elif letter == "beta": letter = "b" - elif letter in ["rc", "pre", "preview"]: - letter = "c" + elif letter in ["c", "pre", "preview"]: + letter = "rc" return letter, int(number) if not letter and number: diff --git a/setuptools/_vendor/vendored.txt b/setuptools/_vendor/vendored.txt index 576aa8db..723e026b 100644 --- a/setuptools/_vendor/vendored.txt +++ b/setuptools/_vendor/vendored.txt @@ -1 +1 @@ -packaging==14.4 +packaging==14.5 diff --git a/setuptools/version.py b/setuptools/version.py index d9d36010..ad8076ba 100644 --- a/setuptools/version.py +++ b/setuptools/version.py @@ -1 +1 @@ -__version__ = '8.0.5' +__version__ = '8.2' |