from allmydata.util import verlib
def normalized_version(verstr, what=None):
try:
- return verlib.NormalizedVersion(verlib.suggest_normalized_version(verstr))
+ suggested = verlib.suggest_normalized_version(verstr) or verstr
+ return verlib.NormalizedVersion(suggested)
except (StandardError, verlib.IrrationalVersionError):
cls, value, trace = sys.exc_info()
raise PackagingError, ("could not parse %s due to %s: %s"
% (name, pr_ver, pr_loc, imp_comment))
continue
+ # If the pkg_resources version is identical to the imported version, don't attempt
+ # to normalize them, since it is unnecessary and may fail (ticket #2499).
+ if imp_ver != 'unknown' and pr_ver == imp_ver:
+ continue
+
try:
pr_normver = normalized_version(pr_ver)
except Exception, e: