[Python-checkins] r73944 - python/trunk/Lib/distutils/command/build_ext.py

tarek.ziade python-checkins at python.org
Sat Jul 11 12:48:32 CEST 2009


Author: tarek.ziade
Date: Sat Jul 11 12:48:31 2009
New Revision: 73944

Log:
cleaned up distutils.build_ext module

Modified:
   python/trunk/Lib/distutils/command/build_ext.py

Modified: python/trunk/Lib/distutils/command/build_ext.py
==============================================================================
--- python/trunk/Lib/distutils/command/build_ext.py	(original)
+++ python/trunk/Lib/distutils/command/build_ext.py	Sat Jul 11 12:48:31 2009
@@ -6,8 +6,7 @@
 
 __revision__ = "$Id$"
 
-import sys, os, string, re
-from types import *
+import sys, os, re
 from warnings import warn
 
 from distutils.core import Command
@@ -41,7 +40,7 @@
     show_compilers()
 
 
-class build_ext (Command):
+class build_ext(Command):
 
     description = "build C/C++ extensions (compile/link to build directory)"
 
@@ -149,7 +148,7 @@
 
     compiler = property(_get_compiler, _set_compiler)
 
-    def initialize_options (self):
+    def initialize_options(self):
         self.extensions = None
         self.build_lib = None
         self.plat_name = None
@@ -213,13 +212,13 @@
             self.libraries = []
         if self.library_dirs is None:
             self.library_dirs = []
-        elif type(self.library_dirs) is StringType:
-            self.library_dirs = string.split(self.library_dirs, os.pathsep)
+        elif isinstance(self.library_dirs, str):
+            self.library_dirs = self.library_dirs.split(os.pathsep)
 
         if self.rpath is None:
             self.rpath = []
-        elif type(self.rpath) is StringType:
-            self.rpath = string.split(self.rpath, os.pathsep)
+        elif isinstance(self.rpath, str):
+            self.rpath = self.rpath.split(os.pathsep)
 
         # for extensions under windows use different directories
         # for Release and Debug builds.
@@ -296,7 +295,7 @@
 
         if self.define:
             defines = self.define.split(',')
-            self.define = map(lambda symbol: (symbol, '1'), defines)
+            self.define = [(symbol, '1') for symbol in defines]
 
         # The option for macros to undefine is also a string from the
         # option parsing, but has to be a list.  Multiple symbols can also
@@ -512,7 +511,7 @@
 
     def build_extension(self, ext):
         sources = ext.sources
-        if sources is None or type(sources) not in (ListType, TupleType):
+        if sources is None or not isinstance(sources, (list, tuple)):
             raise DistutilsSetupError, \
                   ("in 'ext_modules' option (extension '%s'), " +
                    "'sources' must be present and must be " +
@@ -593,14 +592,12 @@
             target_lang=language)
 
 
-    def swig_sources (self, sources, extension):
-
+    def swig_sources(self, sources, extension):
         """Walk the list of source files in 'sources', looking for SWIG
         interface (.i) files.  Run SWIG on all that are found, and
         return a modified 'sources' list with SWIG source files replaced
         by the generated C (or C++) files.
         """
-
         new_sources = []
         swig_sources = []
         swig_targets = {}
@@ -649,9 +646,7 @@
 
         return new_sources
 
-    # swig_sources ()
-
-    def find_swig (self):
+    def find_swig(self):
         """Return the name of the SWIG executable.  On Unix, this is
         just "swig" -- it should be in the PATH.  Tries a bit harder on
         Windows.
@@ -680,8 +675,6 @@
                   ("I don't know how to find (much less run) SWIG "
                    "on platform '%s'") % os.name
 
-    # find_swig ()
-
     # -- Name generators -----------------------------------------------
     # (extension names, filenames, whatever)
     def get_ext_fullpath(self, ext_name):
@@ -726,29 +719,28 @@
         "foo\bar.pyd").
         """
         from distutils.sysconfig import get_config_var
-        ext_path = string.split(ext_name, '.')
+        ext_path = ext_name.split('.')
         # OS/2 has an 8 character module (extension) limit :-(
         if os.name == "os2":
             ext_path[len(ext_path) - 1] = ext_path[len(ext_path) - 1][:8]
         # extensions in debug_mode are named 'module_d.pyd' under windows
         so_ext = get_config_var('SO')
         if os.name == 'nt' and self.debug:
-            return apply(os.path.join, ext_path) + '_d' + so_ext
+            return os.path.join(*ext_path) + '_d' + so_ext
         return os.path.join(*ext_path) + so_ext
 
-    def get_export_symbols (self, ext):
+    def get_export_symbols(self, ext):
         """Return the list of symbols that a shared extension has to
         export.  This either uses 'ext.export_symbols' or, if it's not
         provided, "init" + module_name.  Only relevant on Windows, where
         the .pyd file (DLL) must export the module "init" function.
         """
-
-        initfunc_name = "init" + string.split(ext.name,'.')[-1]
+        initfunc_name = "init" + ext.name.split('.')[-1]
         if initfunc_name not in ext.export_symbols:
             ext.export_symbols.append(initfunc_name)
         return ext.export_symbols
 
-    def get_libraries (self, ext):
+    def get_libraries(self, ext):
         """Return the list of libraries to link against when building a
         shared extension.  On most platforms, this is just 'ext.libraries';
         on Windows and OS/2, we add the Python library (eg. python20.dll).
@@ -821,5 +813,3 @@
                 return ext.libraries + [pythonlib]
             else:
                 return ext.libraries
-
-# class build_ext


More information about the Python-checkins mailing list