]> granicus.if.org Git - python/commitdiff
[from 1999-11-04]
authorGreg Ward <gward@python.net>
Fri, 3 Dec 1999 16:18:56 +0000 (16:18 +0000)
committerGreg Ward <gward@python.net>
Fri, 3 Dec 1999 16:18:56 +0000 (16:18 +0000)
Bunch of little bug fixes that appeared in building non-packagized
distributions.  Mainly:
  - brain-slip typo in 'get_package_dir()'
  - don't try to os.path.join() an empty path tuple -- it doesn't like it
  - more type-safety in 'build_module()'

Lib/distutils/command/build_py.py

index 4067ca4cd6a8d51baa928a2985e33ce29e84c3ac..b3cc1e95cc6b1851976ca0cc9edb117910508c4e 100644 (file)
@@ -93,12 +93,15 @@ class BuildPy (Command):
         if type (package) is StringType:
             path = string.split (package, '.')
         elif type (package) in (TupleType, ListType):
-            path = list (path)
+            path = list (package)
         else:
             raise TypeError, "'package' must be a string, list, or tuple"
 
         if not self.package_dir:
-            return apply (os.path.join, path)
+            if path:
+                return apply (os.path.join, path)
+            else:
+                return ''
         else:
             tail = []
             while path:
@@ -113,7 +116,10 @@ class BuildPy (Command):
             else:
                 # arg! everything failed, we might as well have not even
                 # looked in package_dir -- oh well
-                return apply (os.path.join, tail)
+                if tail:
+                    return apply (os.path.join, tail)
+                else:
+                    return ''
 
     # get_package_dir ()
 
@@ -134,7 +140,7 @@ class BuildPy (Command):
                        "but is not a directory") % package_dir
 
         # Require __init__.py for all but the "root package"
-        if package != "":
+        if package:
             init_py = os.path.join (package_dir, "__init__.py")
             if not os.path.isfile (init_py):
                 self.warn (("package init file '%s' not found " +
@@ -233,11 +239,14 @@ class BuildPy (Command):
 
         if type (package) is StringType:
             package = string.split (package, '.')
+        elif type (package) not in (ListType, TupleType):
+            raise TypeError, \
+                  "'package' must be a string (dot-separated), list, or tuple"
 
         # Now put the module source file into the "build" area -- this is
         # easy, we just copy it somewhere under self.build_dir (the build
         # directory for Python source).
-        outfile_path = package
+        outfile_path = list (package)
         outfile_path.append (module + ".py")
         outfile_path.insert (0, self.build_dir)
         outfile = apply (os.path.join, outfile_path)