[Python-checkins] distutils2: Provide replacement for platform.python_implementation for 2.4 and 2.5

eric.araujo python-checkins at python.org
Mon Sep 19 15:12:39 CEST 2011


http://hg.python.org/distutils2/rev/bd7bfeab5db1
changeset: 1154:bd7bfeab5db1
user: Éric Araujo <merwok at netwok.org>
date: Sun Sep 18 23:31:36 2011 +0200
summary:
 Provide replacement for platform.python_implementation for 2.4 and 2.5
files:
 distutils2/compat.py | 13 +++++++++++++
 distutils2/markers.py | 13 +++++--------
 distutils2/tests/test_markers.py | 6 ++----
 3 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/distutils2/compat.py b/distutils2/compat.py
--- a/distutils2/compat.py
+++ b/distutils2/compat.py
@@ -4,6 +4,7 @@
 Python 3.2, for internal use only. Whole modules are in _backport.
 """
 
+import os
 import re
 import sys
 import codecs
@@ -178,3 +179,15 @@
 def wrapped(func):
 return func
 return wrapped
+
+try:
+ from platform import python_implementation
+except ImportError:
+ def python_implementation():
+ if 'PyPy' in sys.version:
+ return 'PyPy'
+ if os.name == 'java':
+ return 'Jython'
+ if sys.version.startswith('IronPython'):
+ return 'IronPython'
+ return 'CPython'
diff --git a/distutils2/markers.py b/distutils2/markers.py
--- a/distutils2/markers.py
+++ b/distutils2/markers.py
@@ -1,16 +1,12 @@
 """Parser for the environment markers micro-language defined in PEP 345."""
 
+import os
 import sys
 import platform
-import os
-
 from tokenize import generate_tokens, NAME, OP, STRING, ENDMARKER
 from StringIO import StringIO as BytesIO
-try:
- python_implementation = platform.python_implementation()
-except AttributeError:
- # FIXME import from compat
- python_implementation = 'CPython'
+
+from distutils2.compat import python_implementation
 
 __all__ = ['interpret']
 
@@ -37,7 +33,8 @@
 'os.name': os.name,
 'platform.version': platform.version(),
 'platform.machine': platform.machine(),
- 'platform.python_implementation': python_implementation}
+ 'platform.python_implementation': python_implementation(),
+ }
 
 
 class _Operation(object):
diff --git a/distutils2/tests/test_markers.py b/distutils2/tests/test_markers.py
--- a/distutils2/tests/test_markers.py
+++ b/distutils2/tests/test_markers.py
@@ -2,6 +2,7 @@
 import os
 import sys
 import platform
+from distutils2.compat import python_implementation
 from distutils2.markers import interpret
 
 from distutils2.tests import unittest
@@ -17,10 +18,7 @@
 os_name = os.name
 platform_version = platform.version()
 platform_machine = platform.machine()
- try:
- platform_python_implementation = platform.python_implementation()
- except AttributeError: # FIXME import from compat
- platform_python_implementation = 'CPython'
+ platform_python_implementation = python_implementation()
 
 self.assertTrue(interpret("sys.platform == '%s'" % sys_platform))
 self.assertTrue(interpret(
-- 
Repository URL: http://hg.python.org/distutils2


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /