Kaydet (Commit) 0ad9b772 authored tarafından Benjamin Peterson's avatar Benjamin Peterson

add support for PyPy

üst 94e4e2a7
...@@ -1270,6 +1270,11 @@ _ironpython_sys_version_parser = re.compile( ...@@ -1270,6 +1270,11 @@ _ironpython_sys_version_parser = re.compile(
'(?: \(([\d\.]+)\))?' '(?: \(([\d\.]+)\))?'
' on (.NET [\d\.]+)') ' on (.NET [\d\.]+)')
_pypy_sys_version_parser = re.compile(
r'([\w.+]+)\s*'
'\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*'
'\[PyPy [^\]]+\]?')
_sys_version_cache = {} _sys_version_cache = {}
def _sys_version(sys_version=None): def _sys_version(sys_version=None):
...@@ -1325,6 +1330,16 @@ def _sys_version(sys_version=None): ...@@ -1325,6 +1330,16 @@ def _sys_version(sys_version=None):
version, buildno, builddate, buildtime, _ = match.groups() version, buildno, builddate, buildtime, _ = match.groups()
compiler = sys.platform compiler = sys.platform
elif "PyPy" in sys_version:
# PyPy
name = "PyPy"
match = _pypy_sys_version_parser.match(sys_version)
if match is None:
raise ValueError("failed to parse PyPy sys.version: %s" %
repr(sys_version))
version, buildno, builddate, buildtime = match.groups()
compiler = ""
else: else:
# CPython # CPython
match = _sys_version_parser.match(sys_version) match = _sys_version_parser.match(sys_version)
......
...@@ -93,6 +93,11 @@ class PlatformTest(unittest.TestCase): ...@@ -93,6 +93,11 @@ class PlatformTest(unittest.TestCase):
: :
("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]",
('PyPy', 'trunk', '63378'), self.save_platform)
:
("PyPy", "2.5.2", "trunk", "63378", ('63378', 'Mar 26 2009'),
"")
} }
for (version_tag, subversion, sys_platform), info in \ for (version_tag, subversion, sys_platform), info in \
sys_versions.iteritems(): sys_versions.iteritems():
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment