From 6d98caab2c4103cba53e6c601fc127990298ab56 Mon Sep 17 00:00:00 2001 From: Donald Stufft Date: Wed, 17 Dec 2014 20:49:13 -0500 Subject: Don't warn on empty non PEP 440 versions Empty versions which are not PEP 440 are more likely to be the fault of setuptools internals rather than anything a user has done so these warnings are needless spam in that situation. --- pkg_resources.py | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'pkg_resources.py') diff --git a/pkg_resources.py b/pkg_resources.py index 5af4c869..f3ac6c50 100644 --- a/pkg_resources.py +++ b/pkg_resources.py @@ -2415,15 +2415,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, + ), + RuntimeWarning, + ) return self._parsed_version -- cgit v1.2.1