#8964: fix platform._sys_version to handle IronPython 2.6+.
This commit is contained in:
parent
c318442571
commit
f076f53386
|
@ -1248,6 +1248,14 @@ _ironpython_sys_version_parser = re.compile(
|
||||||
'(?: \(([\d\.]+)\))?'
|
'(?: \(([\d\.]+)\))?'
|
||||||
' on (.NET [\d\.]+)', re.ASCII)
|
' on (.NET [\d\.]+)', re.ASCII)
|
||||||
|
|
||||||
|
# IronPython covering 2.6 and 2.7
|
||||||
|
_ironpython26_sys_version_parser = re.compile(
|
||||||
|
r'([\d.]+)\s*'
|
||||||
|
'\(IronPython\s*'
|
||||||
|
'[\d.]+\s*'
|
||||||
|
'\(([\d.]+)\) on ([\w.]+ [\d.]+(?: \(\d+-bit\))?)\)'
|
||||||
|
)
|
||||||
|
|
||||||
_pypy_sys_version_parser = re.compile(
|
_pypy_sys_version_parser = re.compile(
|
||||||
r'([\w.+]+)\s*'
|
r'([\w.+]+)\s*'
|
||||||
'\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*'
|
'\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*'
|
||||||
|
@ -1285,19 +1293,24 @@ def _sys_version(sys_version=None):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
# Parse it
|
# Parse it
|
||||||
if sys_version[:10] == 'IronPython':
|
if 'IronPython' in sys_version:
|
||||||
# IronPython
|
# IronPython
|
||||||
name = 'IronPython'
|
name = 'IronPython'
|
||||||
match = _ironpython_sys_version_parser.match(sys_version)
|
if sys_version.startswith('IronPython'):
|
||||||
|
match = _ironpython_sys_version_parser.match(sys_version)
|
||||||
|
else:
|
||||||
|
match = _ironpython26_sys_version_parser.match(sys_version)
|
||||||
|
|
||||||
if match is None:
|
if match is None:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
'failed to parse IronPython sys.version: %s' %
|
'failed to parse IronPython sys.version: %s' %
|
||||||
repr(sys_version))
|
repr(sys_version))
|
||||||
|
|
||||||
version, alt_version, compiler = match.groups()
|
version, alt_version, compiler = match.groups()
|
||||||
buildno = ''
|
buildno = ''
|
||||||
builddate = ''
|
builddate = ''
|
||||||
|
|
||||||
elif sys.platform[:4] == 'java':
|
elif sys.platform.startswith('java'):
|
||||||
# Jython
|
# Jython
|
||||||
name = 'Jython'
|
name = 'Jython'
|
||||||
match = _sys_version_parser.match(sys_version)
|
match = _sys_version_parser.match(sys_version)
|
||||||
|
|
|
@ -91,15 +91,28 @@ class PlatformTest(unittest.TestCase):
|
||||||
("CPython", "2.6.1", "tags/r261", "67515",
|
("CPython", "2.6.1", "tags/r261", "67515",
|
||||||
('r261:67515', 'Dec 6 2008 15:26:00'),
|
('r261:67515', 'Dec 6 2008 15:26:00'),
|
||||||
'GCC 4.0.1 (Apple Computer, Inc. build 5370)'),
|
'GCC 4.0.1 (Apple Computer, Inc. build 5370)'),
|
||||||
|
|
||||||
("IronPython 2.0 (2.0.0.0) on .NET 2.0.50727.3053", None, "cli")
|
("IronPython 2.0 (2.0.0.0) on .NET 2.0.50727.3053", None, "cli")
|
||||||
:
|
:
|
||||||
("IronPython", "2.0.0", "", "", ("", ""),
|
("IronPython", "2.0.0", "", "", ("", ""),
|
||||||
".NET 2.0.50727.3053"),
|
".NET 2.0.50727.3053"),
|
||||||
|
|
||||||
|
("2.6.1 (IronPython 2.6.1 (2.6.10920.0) on .NET 2.0.50727.1433)", None, "cli")
|
||||||
|
:
|
||||||
|
("IronPython", "2.6.1", "", "", ("", ""),
|
||||||
|
".NET 2.0.50727.1433"),
|
||||||
|
|
||||||
|
("2.7.4 (IronPython 2.7.4 (2.7.0.40) on Mono 4.0.30319.1 (32-bit))", None, "cli")
|
||||||
|
:
|
||||||
|
("IronPython", "2.7.4", "", "", ("", ""),
|
||||||
|
"Mono 4.0.30319.1 (32-bit)"),
|
||||||
|
|
||||||
("2.5 (trunk:6107, Mar 26 2009, 13:02:18) \n[Java HotSpot(TM) Client VM (\"Apple Computer, Inc.\")]",
|
("2.5 (trunk:6107, Mar 26 2009, 13:02:18) \n[Java HotSpot(TM) Client VM (\"Apple Computer, Inc.\")]",
|
||||||
('Jython', 'trunk', '6107'), "java1.5.0_16")
|
('Jython', 'trunk', '6107'), "java1.5.0_16")
|
||||||
:
|
:
|
||||||
("Jython", "2.5.0", "trunk", "6107",
|
("Jython", "2.5.0", "trunk", "6107",
|
||||||
('trunk:6107', 'Mar 26 2009'), "java1.5.0_16"),
|
('trunk:6107', 'Mar 26 2009'), "java1.5.0_16"),
|
||||||
|
|
||||||
("2.5.2 (63378, Mar 26 2009, 18:03:29)\n[PyPy 1.0.0]",
|
("2.5.2 (63378, Mar 26 2009, 18:03:29)\n[PyPy 1.0.0]",
|
||||||
('PyPy', 'trunk', '63378'), self.save_platform)
|
('PyPy', 'trunk', '63378'), self.save_platform)
|
||||||
:
|
:
|
||||||
|
|
|
@ -791,6 +791,7 @@ Nick Mathewson
|
||||||
Simon Mathieu
|
Simon Mathieu
|
||||||
Laura Matson
|
Laura Matson
|
||||||
Graham Matthews
|
Graham Matthews
|
||||||
|
Martin Matusiak
|
||||||
Dieter Maurer
|
Dieter Maurer
|
||||||
Daniel May
|
Daniel May
|
||||||
Madison May
|
Madison May
|
||||||
|
|
|
@ -78,6 +78,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #8964: fix platform._sys_version to handle IronPython 2.6+.
|
||||||
|
Patch by Martin Matusiak.
|
||||||
|
|
||||||
- Issue #16038: CVE-2013-1752: ftplib: Limit amount of data read by
|
- Issue #16038: CVE-2013-1752: ftplib: Limit amount of data read by
|
||||||
limiting the call to readline(). Original patch by Michał
|
limiting the call to readline(). Original patch by Michał
|
||||||
Jastrzębski and Giampaolo Rodola.
|
Jastrzębski and Giampaolo Rodola.
|
||||||
|
|
Loading…
Reference in New Issue