]> granicus.if.org Git - python/commitdiff
Changed so all the help-generating functions are defined, at module-level,
authorGreg Ward <gward@python.net>
Sat, 24 Jun 2000 01:23:37 +0000 (01:23 +0000)
committerGreg Ward <gward@python.net>
Sat, 24 Jun 2000 01:23:37 +0000 (01:23 +0000)
in the module of the command classes that have command-specific
help options.  This lets us keep the principle of lazily importing
the ccompiler module, and also gets away from defining non-methods
at class level.

Lib/distutils/command/bdist.py
Lib/distutils/command/build.py
Lib/distutils/command/build_clib.py
Lib/distutils/command/build_ext.py
Lib/distutils/command/sdist.py

index 164699362dd773fccb9f24f07332df577bc7dfe9..47d4cbc9652d472b50a514edfbbde265c33a08be 100644 (file)
@@ -14,6 +14,18 @@ from distutils.errors import *
 from distutils.util import get_platform
 
 
+def show_formats ():
+    """Print list of available formats (arguments to "--format" option).
+    """
+    from distutils.fancy_getopt import FancyGetopt 
+    formats=[]
+    for format in bdist.format_commands:
+        formats.append(("formats=" + format, None,
+                        bdist.format_command[format][1]))
+    pretty_printer = FancyGetopt(formats)
+    pretty_printer.print_help("List of available distribution formats:")
+
+
 class bdist (Command):
 
     description = "create a built (binary) distribution"
@@ -24,6 +36,11 @@ class bdist (Command):
                      "formats for distribution (comma-separated list)"),
                    ]
 
+    help_options = [
+        ('help-formats', None,
+         "lists available distribution formats", show_formats),
+       ]
+
     # The following commands do not take a format option from bdist
     no_format_option = ('bdist_rpm',)
 
@@ -38,24 +55,9 @@ class bdist (Command):
                        'ztar':  ('bdist_dumb', "compressed tar file"),
                        'tar':   ('bdist_dumb', "tar file"),
                        'zip':   ('bdist_dumb', "ZIP file"),
-                       }
-
-    def show_formats ():
-        """Print list of available formats (arguments to "--format" option).
-        """
-       from distutils.fancy_getopt import FancyGetopt 
-       formats=[]
-       for format in bdist.format_command.keys():
-           formats.append(("formats="+format, None,
-                            bdist.format_command[format][1]))
-       formats.sort()
-       pretty_printer = FancyGetopt(formats)
-       pretty_printer.print_help("List of available distribution formats:")
-
-    help_options = [
-        ('help-formats', None,
-         "lists available distribution formats",show_formats),
-       ]
+                     }
+    # establish the preferred order
+    format_commands = ['rpm', 'gztar', 'bztar', 'ztar', 'tar', 'zip']
 
 
     def initialize_options (self):
index d5513fc737a1ea71eded5dd6cece42ecdbc646fe..1e87f23bbc4ebff86df1aa0ed0cafc6652845bb5 100644 (file)
@@ -9,7 +9,12 @@ __revision__ = "$Id$"
 import sys, os
 from distutils.core import Command
 from distutils.util import get_platform
-from distutils.ccompiler import show_compilers
+
+
+def show_compilers ():
+    from distutils.ccompiler import show_compilers
+    show_compilers()
+
 
 class build (Command):
 
index 9a82ac091741426c8afb6e1ce0fd62cf5c2ccc0c..7106882d79240d00f9d5b522847673fcae186411 100644 (file)
@@ -23,7 +23,11 @@ import os, string
 from types import *
 from distutils.core import Command
 from distutils.errors import *
-from distutils.ccompiler import new_compiler,show_compilers
+
+
+def show_compilers ():
+    from distutils.ccompiler import show_compilers
+    show_compilers()
 
 
 class build_clib (Command):
@@ -102,6 +106,7 @@ class build_clib (Command):
             return
 
         # Yech -- this is cut 'n pasted from build_ext.py!
+        from distutils.ccompiler import new_compiler
         self.compiler = new_compiler (compiler=self.compiler,
                                       verbose=self.verbose,
                                       dry_run=self.dry_run,
index f3ff1571838650243809a0a3ccdcf6cc2ecfb878..6b7ec74190ed576ddedff5a8e9dbba6b0d1a519c 100644 (file)
@@ -14,7 +14,6 @@ from distutils.core import Command
 from distutils.errors import *
 from distutils.dep_util import newer_group
 from distutils.extension import Extension
-from distutils.ccompiler import show_compilers
 
 # An extension name is just a dot-separated list of Python NAMEs (ie.
 # the same as a fully-qualified module name).
@@ -22,6 +21,11 @@ extension_name_re = re.compile \
     (r'^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$')
 
 
+def show_compilers ():
+    from distutils.ccompiler import show_compilers
+    show_compilers()
+
+
 class build_ext (Command):
     
     description = "build C/C++ extensions (compile/link to build directory)"
@@ -73,12 +77,12 @@ class build_ext (Command):
         ('compiler=', 'c',
          "specify the compiler type"),
         ]
+
     help_options = [
         ('help-compiler', None,
-         "lists available compilers",show_compilers),
+         "list available compilers", show_compilers),
        ]
 
-
     def initialize_options (self):
         self.extensions = None
         self.build_lib = None
index 93e53bbd66b73ce924716206aedad918472e795a..5627ebb9e5fce1ac2627eba1d79d35d19fbf15be 100644 (file)
@@ -13,11 +13,27 @@ from glob import glob
 from distutils.core import Command
 from distutils.util import \
      convert_path, create_tree, remove_tree, newer, write_file, \
-     check_archive_formats, ARCHIVE_FORMATS
+     check_archive_formats
 from distutils.text_file import TextFile
 from distutils.errors import DistutilsExecError, DistutilsOptionError
 
 
+def show_formats ():
+    """Print all possible values for the 'formats' option (used by
+    the "--help-formats" command-line option).
+    """
+    from distutils.fancy_getopt import FancyGetopt
+    from distutils.archive_util import ARCHIVE_FORMATS
+    formats=[]
+    for format in ARCHIVE_FORMATS.keys():
+        formats.append(("formats=" + format, None,
+                        ARCHIVE_FORMATS[format][2]))
+    formats.sort()
+    pretty_printer = FancyGetopt(formats)
+    pretty_printer.print_help(
+        "List of available source distribution formats:")
+
+
 class sdist (Command):
 
     description = "create a source distribution (tarball, zip file, etc.)"
@@ -43,22 +59,6 @@ class sdist (Command):
         ]
 
 
-    # XXX ugh: this has to precede the 'help_options' list, because
-    # it is mentioned there -- also, this is not a method, even though
-    # it's defined in a class: double-ugh!
-    def show_formats ():
-        """Print all possible values for the 'formats' option -- used by
-        the "--help-formats" command-line option.
-        """
-       from distutils.fancy_getopt import FancyGetopt 
-       formats=[]
-       for format in ARCHIVE_FORMATS.keys():
-           formats.append(("formats="+format,None,ARCHIVE_FORMATS[format][2]))
-       formats.sort()
-       pretty_printer = FancyGetopt(formats)
-       pretty_printer.print_help(
-            "List of available source distribution formats:")
-
     help_options = [
         ('help-formats', None,
          "list available distribution formats", show_formats),
@@ -69,7 +69,6 @@ class sdist (Command):
     default_format = { 'posix': 'gztar',
                        'nt': 'zip' }
 
-
     def initialize_options (self):
         # 'template' and 'manifest' are, respectively, the names of
         # the manifest template and manifest file.