mirror of https://github.com/python/cpython
bpo-26544: Get rid of dependence from distutils in platform. (GH-8356)
This commit is contained in:
parent
b44a1d4f71
commit
7d81e8f599
|
@ -132,6 +132,35 @@ except AttributeError:
|
|||
# Standard Unix uses /dev/null
|
||||
DEV_NULL = '/dev/null'
|
||||
|
||||
# Helper for comparing two version number strings.
|
||||
# Based on the description of the PHP's version_compare():
|
||||
# http://php.net/manual/en/function.version-compare.php
|
||||
|
||||
_ver_stages = {
|
||||
# any string not found in this dict, will get 0 assigned
|
||||
'dev': 10,
|
||||
'alpha': 20, 'a': 20,
|
||||
'beta': 30, 'b': 30,
|
||||
'c': 40,
|
||||
'RC': 50, 'rc': 50,
|
||||
# number, will get 100 assigned
|
||||
'pl': 200, 'p': 200,
|
||||
}
|
||||
|
||||
_component_re = re.compile(r'([0-9]+|[._+-])')
|
||||
|
||||
def _comparable_version(version):
|
||||
result = []
|
||||
for v in _component_re.split(version):
|
||||
if v not in '._+-':
|
||||
try:
|
||||
v = int(v, 10)
|
||||
t = 100
|
||||
except ValueError:
|
||||
t = _ver_stages.get(v, 0)
|
||||
result.extend((t, v))
|
||||
return result
|
||||
|
||||
### Platform specific APIs
|
||||
|
||||
_libc_search = re.compile(b'(__libc_init)'
|
||||
|
@ -155,7 +184,7 @@ def libc_ver(executable=sys.executable, lib='', version='', chunksize=16384):
|
|||
The file is read and scanned in chunks of chunksize bytes.
|
||||
|
||||
"""
|
||||
from distutils.version import LooseVersion as V
|
||||
V = _comparable_version
|
||||
if hasattr(os.path, 'realpath'):
|
||||
# Python 2.2 introduced os.path.realpath(); it is used
|
||||
# here to work around problems with Cygwin not being
|
||||
|
|
Loading…
Reference in New Issue