Issue #21313: Tolerate truncated buildinfo in sys.version
This commit is contained in:
parent
1bf197eb14
commit
4e50553823
|
@ -1146,9 +1146,11 @@ def processor():
|
|||
### Various APIs for extracting information from sys.version
|
||||
|
||||
_sys_version_parser = re.compile(
|
||||
r'([\w.+]+)\s*'
|
||||
'\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*'
|
||||
'\[([^\]]+)\]?', re.ASCII)
|
||||
r'([\w.+]+)\s*' # "version<space>"
|
||||
r'\(#?([^,]+)' # "(#buildno"
|
||||
r'(?:,\s*([\w ]*)' # ", builddate"
|
||||
r'(?:,\s*([\w :]*))?)?\)\s*' # ", buildtime)<space>"
|
||||
r'\[([^\]]+)\]?', re.ASCII) # "[compiler]"
|
||||
|
||||
_ironpython_sys_version_parser = re.compile(
|
||||
r'IronPython\s*'
|
||||
|
@ -1227,6 +1229,8 @@ def _sys_version(sys_version=None):
|
|||
'failed to parse Jython sys.version: %s' %
|
||||
repr(sys_version))
|
||||
version, buildno, builddate, buildtime, _ = match.groups()
|
||||
if builddate is None:
|
||||
builddate = ''
|
||||
compiler = sys.platform
|
||||
|
||||
elif "PyPy" in sys_version:
|
||||
|
@ -1249,7 +1253,10 @@ def _sys_version(sys_version=None):
|
|||
version, buildno, builddate, buildtime, compiler = \
|
||||
match.groups()
|
||||
name = 'CPython'
|
||||
builddate = builddate + ' ' + buildtime
|
||||
if builddate is None:
|
||||
builddate = ''
|
||||
elif buildtime:
|
||||
builddate = builddate + ' ' + buildtime
|
||||
|
||||
if hasattr(sys, '_mercurial'):
|
||||
_, branch, revision = sys._mercurial
|
||||
|
|
|
@ -76,6 +76,22 @@ class PlatformTest(unittest.TestCase):
|
|||
('IronPython', '1.0.60816', '', '', '', '', '.NET 2.0.50727.42')),
|
||||
('IronPython 1.0 (1.0.61005.1977) on .NET 2.0.50727.42',
|
||||
('IronPython', '1.0.0', '', '', '', '', '.NET 2.0.50727.42')),
|
||||
('2.4.3 (truncation, date, t) \n[GCC]',
|
||||
('CPython', '2.4.3', '', '', 'truncation', 'date t', 'GCC')),
|
||||
('2.4.3 (truncation, date, ) \n[GCC]',
|
||||
('CPython', '2.4.3', '', '', 'truncation', 'date', 'GCC')),
|
||||
('2.4.3 (truncation, date,) \n[GCC]',
|
||||
('CPython', '2.4.3', '', '', 'truncation', 'date', 'GCC')),
|
||||
('2.4.3 (truncation, date) \n[GCC]',
|
||||
('CPython', '2.4.3', '', '', 'truncation', 'date', 'GCC')),
|
||||
('2.4.3 (truncation, d) \n[GCC]',
|
||||
('CPython', '2.4.3', '', '', 'truncation', 'd', 'GCC')),
|
||||
('2.4.3 (truncation, ) \n[GCC]',
|
||||
('CPython', '2.4.3', '', '', 'truncation', '', 'GCC')),
|
||||
('2.4.3 (truncation,) \n[GCC]',
|
||||
('CPython', '2.4.3', '', '', 'truncation', '', 'GCC')),
|
||||
('2.4.3 (truncation) \n[GCC]',
|
||||
('CPython', '2.4.3', '', '', 'truncation', '', 'GCC')),
|
||||
):
|
||||
# branch and revision are not "parsed", but fetched
|
||||
# from sys._mercurial. Ignore them
|
||||
|
|
|
@ -131,6 +131,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #21313: Fix the "platform" module to tolerate when sys.version
|
||||
contains truncated build information.
|
||||
|
||||
- Issue #26839: On Linux, :func:`os.urandom` now calls ``getrandom()`` with
|
||||
``GRND_NONBLOCK`` to fall back on reading ``/dev/urandom`` if the urandom
|
||||
entropy pool is not initialized yet. Patch written by Colm Buckley.
|
||||
|
|
Loading…
Reference in New Issue