]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
added local get_platform/set_platform APIs in distutils.sysconfig
authorTarek Ziadé <ziade.tarek@gmail.com>
Tue, 26 Jan 2010 22:46:15 +0000 (22:46 +0000)
committerTarek Ziadé <ziade.tarek@gmail.com>
Tue, 26 Jan 2010 22:46:15 +0000 (22:46 +0000)
Lib/distutils/command/bdist.py
Lib/distutils/command/bdist_dumb.py
Lib/distutils/command/bdist_msi.py
Lib/distutils/command/bdist_wininst.py
Lib/distutils/command/build.py
Lib/distutils/command/build_ext.py
Lib/distutils/command/install.py
Lib/distutils/msvc9compiler.py
Lib/distutils/tests/test_util.py
Lib/distutils/util.py

index 764024a00832f27a926cec37f0ff94c55ed98e38..d7910b14d6e8f1a801000a4c48a41c9966c097e6 100644 (file)
@@ -6,8 +6,8 @@ distribution)."""
 __revision__ = "$Id$"
 
 import os
-from sysconfig import get_platform
 
+from distutils.util import get_platform
 from distutils.core import Command
 from distutils.errors import DistutilsPlatformError, DistutilsOptionError
 
index f7331d59b9c55cb2d19bce3ecf97985f6b55f9ce..7c60d39be9121f0cb08c102862130c8af4f503b6 100644 (file)
@@ -8,8 +8,9 @@ __revision__ = "$Id$"
 
 import os
 
-from sysconfig import get_python_version, get_platform
+from sysconfig import get_python_version
 
+from distutils.util import get_platform
 from distutils.core import Command
 from distutils.dir_util import remove_tree, ensure_relative
 from distutils.errors import DistutilsPlatformError
index 5ecf73b9e550fa419aa891085632a47f46dad8c7..72578498f785a716cb253a1a1423788a0ac0a7c3 100644 (file)
@@ -7,13 +7,14 @@
 Implements the bdist_msi command.
 """
 import sys, os
-from sysconfig import get_python_version, get_platform
+from sysconfig import get_python_version
 
 from distutils.core import Command
 from distutils.dir_util import remove_tree
 from distutils.version import StrictVersion
 from distutils.errors import DistutilsOptionError
 from distutils import log
+from distutils.util import get_platform
 
 import msilib
 from msilib import schema, sequence, text
index 0ece0306bc396d2bf87dfa25f3f26065851b80ca..88c0532f810ee3839a0e329891419bd415f89ee2 100644 (file)
@@ -9,12 +9,13 @@ import sys
 import os
 import string
 
-from sysconfig import get_python_version, get_platform
+from sysconfig import get_python_version
 
 from distutils.core import Command
 from distutils.dir_util import remove_tree
 from distutils.errors import DistutilsOptionError, DistutilsPlatformError
 from distutils import log
+from distutils.util import get_platform
 
 class bdist_wininst (Command):
 
index b84e40d6c96d356783ab3f0afdada8135f102031..f84bf359dc60938e79e1be7beca84051929aa2c7 100644 (file)
@@ -5,8 +5,8 @@ Implements the Distutils 'build' command."""
 __revision__ = "$Id$"
 
 import sys, os
-from sysconfig import get_platform
 
+from distutils.util import get_platform
 from distutils.core import Command
 from distutils.errors import DistutilsOptionError
 
index 13bd030eb61a5b92edf5b0dab4b6c156d22f868d..420d7f171dcdd17ff60d4c58d1d8c4711dde4a08 100644 (file)
@@ -9,14 +9,12 @@ __revision__ = "$Id$"
 import sys, os, re
 from warnings import warn
 
-from sysconfig import get_platform
-
+from distutils.util import get_platform
 from distutils.core import Command
 from distutils.errors import *
 from distutils.ccompiler import customize_compiler
 from distutils.dep_util import newer_group
 from distutils.extension import Extension
-
 from distutils import log
 
 # this keeps compatibility from 2.3 to 2.5
index 68d6227adafc437cc509e572bfe67baf519b6a05..b5336fefd67672a6fe1e6df0603c9440b7bde825 100644 (file)
@@ -7,15 +7,14 @@ __revision__ = "$Id$"
 import sys
 import os
 
-from sysconfig import (get_config_vars, get_platform, get_paths, get_path,
-                       get_config_var)
+from sysconfig import get_config_vars, get_paths, get_path, get_config_var
 
 from distutils import log
 from distutils.core import Command
 from distutils.debug import DEBUG
 from distutils.errors import DistutilsPlatformError
 from distutils.file_util import write_file
-from distutils.util import convert_path, change_root
+from distutils.util import convert_path, change_root, get_platform
 from distutils.errors import DistutilsOptionError
 
 def _subst_vars(s, local_vars):
index 6ac24f83dce715cd0bbae3898206aa9ea11ebfa6..41d67faf59c212759b0b8caeb4e581ffbe97ea1a 100644 (file)
@@ -23,9 +23,9 @@ from distutils.errors import (DistutilsExecError, DistutilsPlatformError,
                               CompileError, LibError, LinkError)
 from distutils.ccompiler import CCompiler, gen_lib_options
 from distutils import log
-import _winreg
+from distutils.util import get_platform
 
-_sysconfig = __import__('sysconfig')
+import _winreg
 
 RegOpenKeyEx = _winreg.OpenKeyEx
 RegEnumKey = _winreg.EnumKey
@@ -327,7 +327,7 @@ class MSVCCompiler(CCompiler) :
         # multi-init means we would need to check platform same each time...
         assert not self.initialized, "don't init multiple times"
         if plat_name is None:
-            plat_name = _sysconfig.get_platform()
+            plat_name = get_platform()
         # sanity check for platforms to prevent obscure errors later.
         ok_plats = 'win32', 'win-amd64', 'win-ia64'
         if plat_name not in ok_plats:
@@ -348,12 +348,12 @@ class MSVCCompiler(CCompiler) :
             # On AMD64, 'vcvars32.bat amd64' is a native build env; to cross
             # compile use 'x86' (ie, it runs the x86 compiler directly)
             # No idea how itanium handles this, if at all.
-            if plat_name == _sysconfig.get_platform() or plat_name == 'win32':
+            if plat_name == get_platform() or plat_name == 'win32':
                 # native build or cross-compile to win32
                 plat_spec = PLAT_TO_VCVARS[plat_name]
             else:
                 # cross compile from win32 -> some 64bit
-                plat_spec = PLAT_TO_VCVARS[_sysconfig.get_platform()] + '_' + \
+                plat_spec = PLAT_TO_VCVARS[get_platform()] + '_' + \
                             PLAT_TO_VCVARS[plat_name]
 
             vc_env = query_vcvarsall(VERSION, plat_spec)
index 50f9ac173f9b033dc5f438190ca058aa7be63db0..348b42be03f8eeafbd00d27f8f3a730c2ec1184a 100644 (file)
@@ -90,99 +90,12 @@ class UtilTestCase(support.EnvironGuard, unittest.TestCase):
     def _get_uname(self):
         return self._uname
 
-    def _test_get_platform(self):
-
-        # windows XP, 32bits
-        os.name = 'nt'
-        sys.version = ('2.4.4 (#71, Oct 18 2006, 08:34:43) '
-                       '[MSC v.1310 32 bit (Intel)]')
-        sys.platform = 'win32'
-        self.assertEquals(get_platform(), 'win32')
-
-        # windows XP, amd64
-        os.name = 'nt'
-        sys.version = ('2.4.4 (#71, Oct 18 2006, 08:34:43) '
-                       '[MSC v.1310 32 bit (Amd64)]')
-        sys.platform = 'win32'
-        self.assertEquals(get_platform(), 'win-amd64')
-
-        # windows XP, itanium
-        os.name = 'nt'
-        sys.version = ('2.4.4 (#71, Oct 18 2006, 08:34:43) '
-                       '[MSC v.1310 32 bit (Itanium)]')
-        sys.platform = 'win32'
-        self.assertEquals(get_platform(), 'win-ia64')
-
-        # macbook
-        os.name = 'posix'
-        sys.version = ('2.5 (r25:51918, Sep 19 2006, 08:49:13) '
-                       '\n[GCC 4.0.1 (Apple Computer, Inc. build 5341)]')
-        sys.platform = 'darwin'
-        self._set_uname(('Darwin', 'macziade', '8.11.1',
-                   ('Darwin Kernel Version 8.11.1: '
-                    'Wed Oct 10 18:23:28 PDT 2007; '
-                    'root:xnu-792.25.20~1/RELEASE_I386'), 'i386'))
-        os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.3'
-
-        get_config_vars()['CFLAGS'] = ('-fno-strict-aliasing -DNDEBUG -g '
-                                       '-fwrapv -O3 -Wall -Wstrict-prototypes')
-
-        self.assertEquals(get_platform(), 'macosx-10.3-i386')
-
-        # macbook with fat binaries (fat, universal or fat64)
-        os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.4'
-        get_config_vars()['CFLAGS'] = ('-arch ppc -arch i386 -isysroot '
-                                       '/Developer/SDKs/MacOSX10.4u.sdk  '
-                                       '-fno-strict-aliasing -fno-common '
-                                       '-dynamic -DNDEBUG -g -O3')
-
-        self.assertEquals(get_platform(), 'macosx-10.4-fat')
-
-        get_config_vars()['CFLAGS'] = ('-arch x86_64 -arch i386 -isysroot '
-                                       '/Developer/SDKs/MacOSX10.4u.sdk  '
-                                       '-fno-strict-aliasing -fno-common '
-                                       '-dynamic -DNDEBUG -g -O3')
-
-        self.assertEquals(get_platform(), 'macosx-10.4-intel')
-
-        get_config_vars()['CFLAGS'] = ('-arch x86_64 -arch ppc -arch i386 -isysroot '
-                                       '/Developer/SDKs/MacOSX10.4u.sdk  '
-                                       '-fno-strict-aliasing -fno-common '
-                                       '-dynamic -DNDEBUG -g -O3')
-        self.assertEquals(get_platform(), 'macosx-10.4-fat3')
-
-        get_config_vars()['CFLAGS'] = ('-arch ppc64 -arch x86_64 -arch ppc -arch i386 -isysroot '
-                                       '/Developer/SDKs/MacOSX10.4u.sdk  '
-                                       '-fno-strict-aliasing -fno-common '
-                                       '-dynamic -DNDEBUG -g -O3')
-        self.assertEquals(get_platform(), 'macosx-10.4-universal')
-
-        get_config_vars()['CFLAGS'] = ('-arch x86_64 -arch ppc64 -isysroot '
-                                       '/Developer/SDKs/MacOSX10.4u.sdk  '
-                                       '-fno-strict-aliasing -fno-common '
-                                       '-dynamic -DNDEBUG -g -O3')
-
-        self.assertEquals(get_platform(), 'macosx-10.4-fat64')
-
-        for arch in ('ppc', 'i386', 'x86_64', 'ppc64'):
-            get_config_vars()['CFLAGS'] = ('-arch %s -isysroot '
-                                           '/Developer/SDKs/MacOSX10.4u.sdk  '
-                                           '-fno-strict-aliasing -fno-common '
-                                           '-dynamic -DNDEBUG -g -O3'%(arch,))
-
-            self.assertEquals(get_platform(), 'macosx-10.4-%s'%(arch,))
-
-        # linux debian sarge
-        os.name = 'posix'
-        sys.version = ('2.3.5 (#1, Jul  4 2007, 17:28:59) '
-                       '\n[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)]')
-        sys.platform = 'linux2'
-        self._set_uname(('Linux', 'aglae', '2.6.21.1dedibox-r7',
-                    '#1 Mon Apr 30 17:25:38 CEST 2007', 'i686'))
-
-        self.assertEquals(get_platform(), 'linux-i686')
-
-        # XXX more platforms to tests here
+    def test_get_platform(self):
+        platform = util.get_platform()
+        self.assertEquals(platform, get_platform())
+        util.set_platform('MyOwnPlatform')
+        self.assertEquals('MyOwnPlatform', util.get_platform())
+        util.set_platform(platform)
 
     def test_convert_path(self):
         # linux/mac
index 8650d450c3d42ea12fc88018d8f2de79f4c53f6e..fbd3a67243824b04f677439bf24988c7b2481969 100644 (file)
@@ -16,10 +16,27 @@ from distutils.version import LooseVersion
 from distutils.errors import DistutilsByteCompileError
 
 _sysconfig = __import__('sysconfig')
+_PLATFORM = None
 
-# kept for backward compatibility
-# since this API was relocated
-get_platform = _sysconfig.get_platform
+def get_platform():
+    """Return a string that identifies the current platform.
+
+    By default, will return the value returned by sysconfig.get_platform(),
+    but it can be changed by calling set_platform().
+    """
+    global _PLATFORM
+    if _PLATFORM is None:
+        _PLATFORM = _sysconfig.get_platform()
+    return _PLATFORM
+
+def set_platform(identifier):
+    """Sets the platform string identifier returned by get_platform().
+
+    Note that this change doesn't impact the value returned by
+    sysconfig.get_platform() and is local to Distutils
+    """
+    global _PLATFORM
+    _PLATFORM = identifier
 
 def convert_path(pathname):
     """Return 'pathname' as a name that will work on the native filesystem.