diff options
-rw-r--r-- | Lib/distutils/cmd.py | 54 | ||||
-rw-r--r-- | Lib/distutils/dir_util.py | 60 | ||||
-rw-r--r-- | Lib/distutils/fancy_getopt.py | 109 | ||||
-rw-r--r-- | Lib/distutils/filelist.py | 69 |
4 files changed, 145 insertions, 147 deletions
diff --git a/Lib/distutils/cmd.py b/Lib/distutils/cmd.py index 7866d1b..ce44829 100644 --- a/Lib/distutils/cmd.py +++ b/Lib/distutils/cmd.py @@ -59,13 +59,13 @@ class Command: # late import because of mutual dependence between these classes from distutils.dist import Distribution - if not isinstance (dist, Distribution): + if not isinstance(dist, Distribution): raise TypeError, "dist must be a Distribution instance" if self.__class__ is Command: raise RuntimeError, "Command is an abstract class" self.distribution = dist - self.initialize_options () + self.initialize_options() # Per-command versions of the global flags, so that the user can # customize Distutils' behaviour command-by-command and let some @@ -98,9 +98,9 @@ class Command: def __getattr__ (self, attr): if attr in ('verbose', 'dry_run'): - myval = getattr (self, "_" + attr) + myval = getattr(self, "_" + attr) if myval is None: - return getattr (self.distribution, attr) + return getattr(self.distribution, attr) else: return myval else: @@ -109,7 +109,7 @@ class Command: def ensure_finalized (self): if not self.finalized: - self.finalize_options () + self.finalize_options() self.finalized = 1 @@ -273,7 +273,7 @@ class Command: # -- Convenience methods for commands ------------------------------ def get_command_name (self): - if hasattr (self, 'command_name'): + if hasattr(self, 'command_name'): return self.command_name else: return self.__class__.__name__ @@ -296,12 +296,12 @@ class Command: # Option_pairs: list of (src_option, dst_option) tuples - src_cmd_obj = self.distribution.get_command_obj (src_cmd) - src_cmd_obj.ensure_finalized () + src_cmd_obj = self.distribution.get_command_obj(src_cmd) + src_cmd_obj.ensure_finalized() for (src_option, dst_option) in option_pairs: - if getattr (self, dst_option) is None: - setattr (self, dst_option, - getattr (src_cmd_obj, src_option)) + if getattr(self, dst_option) is None: + setattr(self, dst_option, + getattr(src_cmd_obj, src_option)) def get_finalized_command (self, command, create=1): @@ -310,8 +310,8 @@ class Command: 'command', call its 'ensure_finalized()' method, and return the finalized command object. """ - cmd_obj = self.distribution.get_command_obj (command, create) - cmd_obj.ensure_finalized () + cmd_obj = self.distribution.get_command_obj(command, create) + cmd_obj.ensure_finalized() return cmd_obj # XXX rename to 'get_reinitialized_command()'? (should do the @@ -325,7 +325,7 @@ class Command: Distribution, which creates and finalizes the command object if necessary and then invokes its 'run()' method. """ - self.distribution.run_command (command) + self.distribution.run_command(command) def get_sub_commands (self): @@ -345,8 +345,8 @@ class Command: # -- External world manipulation ----------------------------------- def warn (self, msg): - sys.stderr.write ("warning: %s: %s\n" % - (self.get_command_name(), msg)) + sys.stderr.write("warning: %s: %s\n" % + (self.get_command_name(), msg)) def execute (self, func, args, msg=None, level=1): @@ -389,17 +389,17 @@ class Command: def move_file (self, src, dst, level=1): """Move a file respecting verbose and dry-run flags.""" - return file_util.move_file (src, dst, - self.verbose >= level, - self.dry_run) + return file_util.move_file(src, dst, + self.verbose >= level, + self.dry_run) def spawn (self, cmd, search_path=1, level=1): """Spawn an external command respecting verbose and dry-run flags.""" from distutils.spawn import spawn - spawn (cmd, search_path, - self.verbose >= level, - self.dry_run) + spawn(cmd, search_path, + self.verbose >= level, + self.dry_run) def make_archive (self, base_name, format, @@ -421,15 +421,15 @@ class Command: """ if exec_msg is None: exec_msg = "generating %s from %s" % \ - (outfile, string.join (infiles, ', ')) + (outfile, string.join(infiles, ', ')) if skip_msg is None: skip_msg = "skipping %s (inputs unchanged)" % outfile # Allow 'infiles' to be a single string - if type (infiles) is StringType: + if type(infiles) is StringType: infiles = (infiles,) - elif type (infiles) not in (ListType, TupleType): + elif type(infiles) not in (ListType, TupleType): raise TypeError, \ "'infiles' must be a string, or a list or tuple of strings" @@ -437,11 +437,11 @@ class Command: # exist, is out-of-date, or the 'force' flag is true) then # perform the action that presumably regenerates it if self.force or dep_util.newer_group (infiles, outfile): - self.execute (func, args, exec_msg, level) + self.execute(func, args, exec_msg, level) # Otherwise, print the "skip" message else: - self.announce (skip_msg, level) + self.announce(skip_msg, level) # make_file () diff --git a/Lib/distutils/dir_util.py b/Lib/distutils/dir_util.py index 85f8a18..768cb4e 100644 --- a/Lib/distutils/dir_util.py +++ b/Lib/distutils/dir_util.py @@ -40,21 +40,21 @@ def mkpath (name, mode=0777, verbose=0, dry_run=0): # the creation of the whole path? (quite easy to do the latter since # we're not using a recursive algorithm) - name = os.path.normpath (name) + name = os.path.normpath(name) created_dirs = [] - if os.path.isdir (name) or name == '': + if os.path.isdir(name) or name == '': return created_dirs - if _path_created.get (name): + if _path_created.get(name): return created_dirs - (head, tail) = os.path.split (name) + (head, tail) = os.path.split(name) tails = [tail] # stack of lone dirs to create - while head and tail and not os.path.isdir (head): + while head and tail and not os.path.isdir(head): #print "splitting '%s': " % head, - (head, tail) = os.path.split (head) + (head, tail) = os.path.split(head) #print "to ('%s','%s')" % (head, tail) - tails.insert (0, tail) # push next higher dir onto stack + tails.insert(0, tail) # push next higher dir onto stack #print "stack of tails:", tails @@ -63,8 +63,8 @@ def mkpath (name, mode=0777, verbose=0, dry_run=0): # that does *not* exist) for d in tails: #print "head = %s, d = %s: " % (head, d), - head = os.path.join (head, d) - if _path_created.get (head): + head = os.path.join(head, d) + if _path_created.get(head): continue if verbose: @@ -72,7 +72,7 @@ def mkpath (name, mode=0777, verbose=0, dry_run=0): if not dry_run: try: - os.mkdir (head) + os.mkdir(head) created_dirs.append(head) except OSError, exc: raise DistutilsFileError, \ @@ -97,13 +97,13 @@ def create_tree (base_dir, files, mode=0777, verbose=0, dry_run=0): # First get the list of directories to create need_dir = {} for file in files: - need_dir[os.path.join (base_dir, os.path.dirname (file))] = 1 + need_dir[os.path.join(base_dir, os.path.dirname(file))] = 1 need_dirs = need_dir.keys() need_dirs.sort() # Now create them for dir in need_dirs: - mkpath (dir, mode, verbose, dry_run) + mkpath(dir, mode, verbose, dry_run) # create_tree () @@ -136,11 +136,11 @@ def copy_tree (src, dst, from distutils.file_util import copy_file - if not dry_run and not os.path.isdir (src): + if not dry_run and not os.path.isdir(src): raise DistutilsFileError, \ "cannot copy tree '%s': not a directory" % src try: - names = os.listdir (src) + names = os.listdir(src) except os.error, (errno, errstr): if dry_run: names = [] @@ -149,32 +149,32 @@ def copy_tree (src, dst, "error listing files in '%s': %s" % (src, errstr) if not dry_run: - mkpath (dst, verbose=verbose) + mkpath(dst, verbose=verbose) outputs = [] for n in names: - src_name = os.path.join (src, n) - dst_name = os.path.join (dst, n) + src_name = os.path.join(src, n) + dst_name = os.path.join(dst, n) - if preserve_symlinks and os.path.islink (src_name): - link_dest = os.readlink (src_name) + if preserve_symlinks and os.path.islink(src_name): + link_dest = os.readlink(src_name) if verbose: print "linking %s -> %s" % (dst_name, link_dest) if not dry_run: - os.symlink (link_dest, dst_name) - outputs.append (dst_name) + os.symlink(link_dest, dst_name) + outputs.append(dst_name) - elif os.path.isdir (src_name): - outputs.extend ( - copy_tree (src_name, dst_name, - preserve_mode, preserve_times, preserve_symlinks, - update, verbose, dry_run)) + elif os.path.isdir(src_name): + outputs.extend( + copy_tree(src_name, dst_name, + preserve_mode, preserve_times, preserve_symlinks, + update, verbose, dry_run)) else: - copy_file (src_name, dst_name, - preserve_mode, preserve_times, - update, None, verbose, dry_run) - outputs.append (dst_name) + copy_file(src_name, dst_name, + preserve_mode, preserve_times, + update, None, verbose, dry_run) + outputs.append(dst_name) return outputs diff --git a/Lib/distutils/fancy_getopt.py b/Lib/distutils/fancy_getopt.py index f935200..6f8b8c0 100644 --- a/Lib/distutils/fancy_getopt.py +++ b/Lib/distutils/fancy_getopt.py @@ -22,14 +22,14 @@ from distutils.errors import * # utilities, we use '-' in place of '_'. (The spirit of LISP lives on!) # The similarities to NAME are again not a coincidence... longopt_pat = r'[a-zA-Z](?:[a-zA-Z0-9-]*)' -longopt_re = re.compile (r'^%s$' % longopt_pat) +longopt_re = re.compile(r'^%s$' % longopt_pat) # For recognizing "negative alias" options, eg. "quiet=!verbose" -neg_alias_re = re.compile ("^(%s)=!(%s)$" % (longopt_pat, longopt_pat)) +neg_alias_re = re.compile("^(%s)=!(%s)$" % (longopt_pat, longopt_pat)) # This is used to translate long options to legitimate Python identifiers # (for use as attributes of some object). -longopt_xlate = string.maketrans ('-', '_') +longopt_xlate = string.maketrans('-', '_') # This records (option, value) pairs in the order seen on the command line; # it's close to what getopt.getopt() returns, but with short options @@ -107,7 +107,7 @@ class FancyGetopt: "option conflict: already an option '%s'" % long_option else: option = (long_option, short_option, help_string) - self.option_table.append (option) + self.option_table.append(option) self.option_index[long_option] = option @@ -120,7 +120,7 @@ class FancyGetopt: """Translate long option name 'long_option' to the form it has as an attribute of some object: ie., translate hyphens to underscores.""" - return string.translate (long_option, longopt_xlate) + return string.translate(long_option, longopt_xlate) def _check_alias_dict (self, aliases, what): @@ -137,7 +137,7 @@ class FancyGetopt: def set_aliases (self, alias): """Set the aliases for this option parser.""" - self._check_alias_dict (alias, "alias") + self._check_alias_dict(alias, "alias") self.alias = alias def set_negative_aliases (self, negative_alias): @@ -145,15 +145,15 @@ class FancyGetopt: 'negative_alias' should be a dictionary mapping option names to option names, both the key and value must already be defined in the option table.""" - self._check_alias_dict (negative_alias, "negative alias") + self._check_alias_dict(negative_alias, "negative alias") self.negative_alias = negative_alias def _grok_option_table (self): - """Populate the various data structures that keep tabs on - the option table. Called by 'getopt()' before it can do - anything worthwhile.""" - + """Populate the various data structures that keep tabs on the + option table. Called by 'getopt()' before it can do anything + worthwhile. + """ self.long_opts = [] self.short_opts = [] self.short2long.clear() @@ -163,7 +163,7 @@ class FancyGetopt: (long, short, help) = option except ValueError: raise DistutilsGetoptError, \ - "invalid option tuple " + str (option) + "invalid option tuple " + str(option) # Type- and value-check the option names if type(long) is not StringType or len(long) < 2: @@ -172,12 +172,12 @@ class FancyGetopt: "must be a string of length >= 2") % long if (not ((short is None) or - (type (short) is StringType and len (short) == 1))): + (type(short) is StringType and len(short) == 1))): raise DistutilsGetoptError, \ ("invalid short option '%s': " "must a single character or None") % short - self.long_opts.append (long) + self.long_opts.append(long) if long[-1] == '=': # option takes an argument? if short: short = short + ':' @@ -216,14 +216,14 @@ class FancyGetopt: # later translate it to an attribute name on some object. Have # to do this a bit late to make sure we've removed any trailing # '='. - if not longopt_re.match (long): + if not longopt_re.match(long): raise DistutilsGetoptError, \ ("invalid long option name '%s' " + "(must be letters, numbers, hyphens only") % long - self.attr_name[long] = self.get_attr_name (long) + self.attr_name[long] = self.get_attr_name(long) if short: - self.short_opts.append (short) + self.short_opts.append(short) self.short2long[short[0]] = long # for option_table @@ -239,8 +239,8 @@ class FancyGetopt: (args, object). If 'object' is supplied, it is modified in place and 'getopt()' just returns 'args'; in both cases, the returned 'args' is a modified copy of the passed-in 'args' list, which is - left untouched.""" - + left untouched. + """ if args is None: args = sys.argv[1:] if object is None: @@ -251,17 +251,17 @@ class FancyGetopt: self._grok_option_table() - short_opts = string.join (self.short_opts) + short_opts = string.join(self.short_opts) try: - (opts, args) = getopt.getopt (args, short_opts, self.long_opts) + (opts, args) = getopt.getopt(args, short_opts, self.long_opts) except getopt.error, msg: raise DistutilsArgError, msg for (opt, val) in opts: - if len (opt) == 2 and opt[0] == '-': # it's a short option + if len(opt) == 2 and opt[0] == '-': # it's a short option opt = self.short2long[opt[1]] - elif len (opt) > 2 and opt[0:2] == '--': + elif len(opt) > 2 and opt[0:2] == '--': opt = opt[2:] else: @@ -277,7 +277,7 @@ class FancyGetopt: raise DistutilsInternalError, \ "this can't happen: bad option value '%s'" % value - alias = self.negative_alias.get (opt) + alias = self.negative_alias.get(opt) if alias: opt = alias val = 0 @@ -285,8 +285,8 @@ class FancyGetopt: val = 1 attr = self.attr_name[opt] - setattr (object, attr, val) - self.option_order.append ((opt, val)) + setattr(object, attr, val) + self.option_order.append((opt, val)) # for opts @@ -301,8 +301,8 @@ class FancyGetopt: def get_option_order (self): """Returns the list of (option, value) tuples processed by the previous run of 'getopt()'. Raises RuntimeError if - 'getopt()' hasn't been called yet.""" - + 'getopt()' hasn't been called yet. + """ if self.option_order is None: raise RuntimeError, "'getopt()' hasn't been called yet" else: @@ -311,8 +311,8 @@ class FancyGetopt: def generate_help (self, header=None): """Generate help text (a list of strings, one per suggested line of - output) from the option table for this FancyGetopt object.""" - + output) from the option table for this FancyGetopt object. + """ # Blithely assume the option table is good: probably wouldn't call # 'generate_help()' unless you've already called 'getopt()'. @@ -321,7 +321,7 @@ class FancyGetopt: for option in self.option_table: long = option[0] short = option[1] - l = len (long) + l = len(long) if long[-1] == '=': l = l - 1 if short is not None: @@ -363,29 +363,29 @@ class FancyGetopt: for (long,short,help) in self.option_table: - text = wrap_text (help, text_width) + text = wrap_text(help, text_width) if long[-1] == '=': long = long[0:-1] # Case 1: no short option at all (makes life easy) if short is None: if text: - lines.append (" --%-*s %s" % (max_opt, long, text[0])) + lines.append(" --%-*s %s" % (max_opt, long, text[0])) else: - lines.append (" --%-*s " % (max_opt, long)) + lines.append(" --%-*s " % (max_opt, long)) # Case 2: we have a short option, so we have to include it # just after the long option else: opt_names = "%s (-%s)" % (long, short) if text: - lines.append (" --%-*s %s" % - (max_opt, opt_names, text[0])) + lines.append(" --%-*s %s" % + (max_opt, opt_names, text[0])) else: - lines.append (" --%-*s" % opt_names) + lines.append(" --%-*s" % opt_names) for l in text[1:]: - lines.append (big_indent + l) + lines.append(big_indent + l) # for self.option_table @@ -396,20 +396,19 @@ class FancyGetopt: def print_help (self, header=None, file=None): if file is None: file = sys.stdout - for line in self.generate_help (header): - file.write (line + "\n") - # print_help () + for line in self.generate_help(header): + file.write(line + "\n") # class FancyGetopt def fancy_getopt (options, negative_opt, object, args): - parser = FancyGetopt (options) - parser.set_negative_aliases (negative_opt) - return parser.getopt (args, object) + parser = FancyGetopt(options) + parser.set_negative_aliases(negative_opt) + return parser.getopt(args, object) -WS_TRANS = string.maketrans (string.whitespace, ' ' * len (string.whitespace)) +WS_TRANS = string.maketrans(string.whitespace, ' ' * len(string.whitespace)) def wrap_text (text, width): """wrap_text(text : string, width : int) -> [string] @@ -420,13 +419,13 @@ def wrap_text (text, width): if text is None: return [] - if len (text) <= width: + if len(text) <= width: return [text] - text = string.expandtabs (text) - text = string.translate (text, WS_TRANS) - chunks = re.split (r'( +|-+)', text) - chunks = filter (None, chunks) # ' - ' results in empty strings + text = string.expandtabs(text) + text = string.translate(text, WS_TRANS) + chunks = re.split(r'( +|-+)', text) + chunks = filter(None, chunks) # ' - ' results in empty strings lines = [] while chunks: @@ -435,9 +434,9 @@ def wrap_text (text, width): cur_len = 0 # length of current line while chunks: - l = len (chunks[0]) + l = len(chunks[0]) if cur_len + l <= width: # can squeeze (at least) this chunk in - cur_line.append (chunks[0]) + cur_line.append(chunks[0]) del chunks[0] cur_len = cur_len + l else: # this line is full @@ -452,7 +451,7 @@ def wrap_text (text, width): # chunk that's too big too fit on a line -- so we break # down and break it up at the line width if cur_len == 0: - cur_line.append (chunks[0][0:width]) + cur_line.append(chunks[0][0:width]) chunks[0] = chunks[0][width:] # all-whitespace chunks at the end of a line can be discarded @@ -463,7 +462,7 @@ def wrap_text (text, width): # and store this line in the list-of-all-lines -- as a single # string, of course! - lines.append (string.join (cur_line, '')) + lines.append(string.join(cur_line, '')) # while chunks @@ -501,5 +500,5 @@ say, "How should I know?"].)""" for w in (10, 20, 30, 40): print "width: %d" % w - print string.join (wrap_text (text, w), "\n") + print string.join(wrap_text(text, w), "\n") print diff --git a/Lib/distutils/filelist.py b/Lib/distutils/filelist.py index 84f36d2..211b65f 100644 --- a/Lib/distutils/filelist.py +++ b/Lib/distutils/filelist.py @@ -55,7 +55,7 @@ class FileList: # -- Fallback warning/debug functions ------------------------------ def __warn (self, msg): - sys.stderr.write ("warning: %s\n" % msg) + sys.stderr.write("warning: %s\n" % msg) def __debug_print (self, msg): """Print 'msg' to stdout if the global DEBUG (taken from the @@ -87,7 +87,7 @@ class FileList: def remove_duplicates (self): # Assumes list has been sorted! - for i in range (len(self.files)-1, 0, -1): + for i in range(len(self.files)-1, 0, -1): if self.files[i] == self.files[i-1]: del self.files[i] @@ -95,21 +95,21 @@ class FileList: # -- "File template" methods --------------------------------------- def _parse_template_line (self, line): - words = string.split (line) + words = string.split(line) action = words[0] patterns = dir = dir_pattern = None if action in ('include', 'exclude', 'global-include', 'global-exclude'): - if len (words) < 2: + if len(words) < 2: raise DistutilsTemplateError, \ "'%s' expects <pattern1> <pattern2> ..." % action patterns = map(convert_path, words[1:]) elif action in ('recursive-include', 'recursive-exclude'): - if len (words) < 3: + if len(words) < 3: raise DistutilsTemplateError, \ "'%s' expects <dir> <pattern1> <pattern2> ..." % action @@ -117,7 +117,7 @@ class FileList: patterns = map(convert_path, words[2:]) elif action in ('graft', 'prune'): - if len (words) != 2: + if len(words) != 2: raise DistutilsTemplateError, \ "'%s' expects a single <dir_pattern>" % action @@ -146,13 +146,13 @@ class FileList: if action == 'include': self.debug_print("include " + string.join(patterns)) for pattern in patterns: - if not self.include_pattern (pattern, anchor=1): + if not self.include_pattern(pattern, anchor=1): self.warn("no files found matching '%s'" % pattern) elif action == 'exclude': self.debug_print("exclude " + string.join(patterns)) for pattern in patterns: - if not self.exclude_pattern (pattern, anchor=1): + if not self.exclude_pattern(pattern, anchor=1): self.warn( "no previously-included files found matching '%s'"% pattern) @@ -160,15 +160,15 @@ class FileList: elif action == 'global-include': self.debug_print("global-include " + string.join(patterns)) for pattern in patterns: - if not self.include_pattern (pattern, anchor=0): - self.warn (("no files found matching '%s' " + - "anywhere in distribution") % - pattern) + if not self.include_pattern(pattern, anchor=0): + self.warn(("no files found matching '%s' " + + "anywhere in distribution") % + pattern) elif action == 'global-exclude': self.debug_print("global-exclude " + string.join(patterns)) for pattern in patterns: - if not self.exclude_pattern (pattern, anchor=0): + if not self.exclude_pattern(pattern, anchor=0): self.warn(("no previously-included files matching '%s' " + "found anywhere in distribution") % pattern) @@ -177,8 +177,8 @@ class FileList: self.debug_print("recursive-include %s %s" % (dir, string.join(patterns))) for pattern in patterns: - if not self.include_pattern (pattern, prefix=dir): - self.warn (("no files found matching '%s' " + + if not self.include_pattern(pattern, prefix=dir): + self.warn(("no files found matching '%s' " + "under directory '%s'") % (pattern, dir)) @@ -190,11 +190,11 @@ class FileList: self.warn(("no previously-included files matching '%s' " + "found under directory '%s'") % (pattern, dir)) - + elif action == 'graft': self.debug_print("graft " + dir_pattern) if not self.include_pattern(None, prefix=dir_pattern): - self.warn ("no directories found matching '%s'" % dir_pattern) + self.warn("no directories found matching '%s'" % dir_pattern) elif action == 'prune': self.debug_print("prune " + dir_pattern) @@ -212,8 +212,7 @@ class FileList: # -- Filtering/selection methods ----------------------------------- def include_pattern (self, pattern, - anchor=1, prefix=None, is_regex=0): - + anchor=1, prefix=None, is_regex=0): """Select strings (presumably filenames) from 'self.files' that match 'pattern', a Unix-style wildcard (glob) pattern. Patterns are not quite the same as implemented by the 'fnmatch' module: '*' @@ -239,7 +238,7 @@ class FileList: Return 1 if files are found. """ files_found = 0 - pattern_re = translate_pattern (pattern, anchor, prefix, is_regex) + pattern_re = translate_pattern(pattern, anchor, prefix, is_regex) self.debug_print("include_pattern: applying regex r'%s'" % pattern_re.pattern) @@ -248,9 +247,9 @@ class FileList: self.findall() for name in self.allfiles: - if pattern_re.search (name): + if pattern_re.search(name): self.debug_print(" adding " + name) - self.files.append (name) + self.files.append(name) files_found = 1 return files_found @@ -267,11 +266,11 @@ class FileList: Return 1 if files are found. """ files_found = 0 - pattern_re = translate_pattern (pattern, anchor, prefix, is_regex) + pattern_re = translate_pattern(pattern, anchor, prefix, is_regex) self.debug_print("exclude_pattern: applying regex r'%s'" % pattern_re.pattern) - for i in range (len(self.files)-1, -1, -1): - if pattern_re.search (self.files[i]): + for i in range(len(self.files)-1, -1, -1): + if pattern_re.search(self.files[i]): self.debug_print(" removing " + self.files[i]) del self.files[i] files_found = 1 @@ -299,11 +298,11 @@ def findall (dir = os.curdir): while stack: dir = pop() - names = os.listdir (dir) + names = os.listdir(dir) for name in names: if dir != os.curdir: # avoid the dreaded "./" syndrome - fullname = os.path.join (dir, name) + fullname = os.path.join(dir, name) else: fullname = name @@ -311,9 +310,9 @@ def findall (dir = os.curdir): stat = os.stat(fullname) mode = stat[ST_MODE] if S_ISREG(mode): - list.append (fullname) + list.append(fullname) elif S_ISDIR(mode) and not S_ISLNK(mode): - push (fullname) + push(fullname) return list @@ -324,7 +323,7 @@ def glob_to_re (pattern): that '*' does not match "special characters" (which are platform-specific). """ - pattern_re = fnmatch.translate (pattern) + pattern_re = fnmatch.translate(pattern) # '?' and '*' in the glob pattern become '.' and '.*' in the RE, which # IMHO is wrong -- '?' and '*' aren't supposed to match slash in Unix, @@ -333,7 +332,7 @@ def glob_to_re (pattern): # character except the special characters. # XXX currently the "special characters" are just slash -- i.e. this is # Unix-only. - pattern_re = re.sub (r'(^|[^\\])\.', r'\1[^/]', pattern_re) + pattern_re = re.sub(r'(^|[^\\])\.', r'\1[^/]', pattern_re) return pattern_re # glob_to_re () @@ -352,17 +351,17 @@ def translate_pattern (pattern, anchor=1, prefix=None, is_regex=0): return pattern if pattern: - pattern_re = glob_to_re (pattern) + pattern_re = glob_to_re(pattern) else: pattern_re = '' if prefix is not None: - prefix_re = (glob_to_re (prefix))[0:-1] # ditch trailing $ - pattern_re = "^" + os.path.join (prefix_re, ".*" + pattern_re) + prefix_re = (glob_to_re(prefix))[0:-1] # ditch trailing $ + pattern_re = "^" + os.path.join(prefix_re, ".*" + pattern_re) else: # no prefix -- respect anchor flag if anchor: pattern_re = "^" + pattern_re - return re.compile (pattern_re) + return re.compile(pattern_re) # translate_pattern () |