diff --git a/Lib/distutils/command/build.py b/Lib/distutils/command/build.py
index 84e0502..d394e4b 100644
--- a/Lib/distutils/command/build.py
+++ b/Lib/distutils/command/build.py
@@ -9,13 +9,11 @@
 from distutils.errors import DistutilsOptionError
 from distutils.util import get_platform
 
-
-def show_compilers ():
+def show_compilers():
     from distutils.ccompiler import show_compilers
     show_compilers()
 
-
-class build (Command):
+class build(Command):
 
     description = "build everything needed to install"
 
@@ -53,7 +51,7 @@
          "list available compilers", show_compilers),
         ]
 
-    def initialize_options (self):
+    def initialize_options(self):
         self.build_base = 'build'
         # these are decided only after 'build_base' has its final value
         # (unless overridden by the user or client)
@@ -68,8 +66,7 @@
         self.force = 0
         self.executable = None
 
-    def finalize_options (self):
-
+    def finalize_options(self):
         if self.plat_name is None:
             self.plat_name = get_platform()
         else:
@@ -118,11 +115,8 @@
 
         if self.executable is None:
             self.executable = os.path.normpath(sys.executable)
-    # finalize_options ()
 
-
-    def run (self):
-
+    def run(self):
         # Run all relevant sub-commands.  This will be some subset of:
         #  - build_py      - pure Python modules
         #  - build_clib    - standalone C libraries
@@ -131,7 +125,6 @@
         for cmd_name in self.get_sub_commands():
             self.run_command(cmd_name)
 
-
     # -- Predicates for the sub-command list ---------------------------
 
     def has_pure_modules (self):
@@ -146,11 +139,8 @@
     def has_scripts (self):
         return self.distribution.has_scripts()
 
-
     sub_commands = [('build_py',      has_pure_modules),
                     ('build_clib',    has_c_libraries),
                     ('build_ext',     has_ext_modules),
                     ('build_scripts', has_scripts),
                    ]
-
-# class build
