summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2020-10-06 20:14:33 -0400
committerJason R. Coombs <jaraco@jaraco.com>2020-10-06 20:20:50 -0400
commite91d5d084d88f04df24118c861bbdf4ff0c03d97 (patch)
tree54258d70c3722e7163b156ced61193d95f225bfd
parentf67c1b099d24a37a0c65bf08f88cb46e261d2a61 (diff)
downloadpython-setuptools-git-e91d5d084d88f04df24118c861bbdf4ff0c03d97.tar.gz
Honor 'sic' versions in egg_info. Ref #2181.
-rw-r--r--setuptools/__init__.py8
-rw-r--r--setuptools/command/egg_info.py7
2 files changed, 12 insertions, 3 deletions
diff --git a/setuptools/__init__.py b/setuptools/__init__.py
index 4d9b8357..c75cca56 100644
--- a/setuptools/__init__.py
+++ b/setuptools/__init__.py
@@ -4,6 +4,7 @@ from fnmatch import fnmatchcase
import functools
import os
import re
+from functools import singledispatch
import _distutils_hack.override # noqa: F401
@@ -13,6 +14,7 @@ from distutils.util import convert_path
from ._deprecation_warning import SetuptoolsDeprecationWarning
+import pkg_resources
import setuptools.version
from setuptools.extension import Extension
from setuptools.dist import Distribution
@@ -24,6 +26,7 @@ __all__ = [
'setup', 'Distribution', 'Command', 'Extension', 'Require',
'SetuptoolsDeprecationWarning',
'find_packages', 'find_namespace_packages',
+ 'normalize_version',
]
__version__ = setuptools.version.__version__
@@ -237,5 +240,10 @@ class sic(str):
"""Treat this string as-is (https://en.wikipedia.org/wiki/Sic)"""
+# Implement 'normalize_version' to bypass safe_version for `sic` versions
+normalize_version = singledispatch(pkg_resources.safe_version)
+normalize_version.register(sic)(lambda version: version)
+
+
# Apply monkey patches
monkey.patch_all()
diff --git a/setuptools/command/egg_info.py b/setuptools/command/egg_info.py
index 0b7ad677..069f76c7 100644
--- a/setuptools/command/egg_info.py
+++ b/setuptools/command/egg_info.py
@@ -16,14 +16,14 @@ import warnings
import time
import collections
-from setuptools import Command
+from setuptools import Command, normalize_version
from setuptools.command.sdist import sdist
from setuptools.command.sdist import walk_revctrl
from setuptools.command.setopt import edit_config
from setuptools.command import bdist_egg
from pkg_resources import (
parse_requirements, safe_name, parse_version,
- safe_version, yield_lines, EntryPoint, iter_entry_points, to_filename)
+ yield_lines, EntryPoint, iter_entry_points, to_filename)
import setuptools.unicode_utils as unicode_utils
from setuptools.glob import glob
@@ -123,7 +123,8 @@ class InfoCommon:
return safe_name(self.distribution.get_name())
def tagged_version(self):
- return safe_version(self._maybe_tag(self.distribution.get_version()))
+ return normalize_version(
+ self._maybe_tag(self.distribution.get_version()))
def _maybe_tag(self, version):
"""