mirror of https://github.com/python/cpython.git
Added class docstring and ditched inappropriate class attrs.
Indentation/whitspace fixes.
This commit is contained in:
parent
adc1172064
commit
c98927a059
|
@ -19,15 +19,19 @@
|
|||
|
||||
class FileList:
|
||||
|
||||
files = None # reference to files list to mainpulate
|
||||
allfiles = None # list of all files, if None will be filled
|
||||
# at first use from directory self.dir
|
||||
dir = None # directory from which files will be taken
|
||||
# to fill self.allfiles if it was not set otherwise
|
||||
"""A list of files built by on exploring the filesystem and filtered by
|
||||
applying various patterns to what we find there.
|
||||
|
||||
# next both functions (callable objects) can be set by the user
|
||||
# warn: warning function
|
||||
# debug_print: debug function
|
||||
Instance attributes:
|
||||
dir
|
||||
directory from which files will be taken -- only used if
|
||||
'allfiles' not supplied to constructor
|
||||
files
|
||||
list of filenames currently being built/filtered/manipulated
|
||||
allfiles
|
||||
complete list of files under consideration (ie. without any
|
||||
filtering applied)
|
||||
"""
|
||||
|
||||
def __init__(self,
|
||||
files=[],
|
||||
|
@ -42,13 +46,14 @@ def __init__(self,
|
|||
self.debug_print = debug_print
|
||||
self.files = files
|
||||
self.dir = dir
|
||||
|
||||
# if None, 'allfiles' will be filled when used for first time
|
||||
self.allfiles = allfiles
|
||||
# if None, it will be filled, when used for first time
|
||||
|
||||
|
||||
# standard warning and debug functions, if no other given
|
||||
def __warn (self, msg):
|
||||
sys.stderr.write ("warning: template: %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
|
||||
|
@ -59,130 +64,128 @@ def __debug_print (self, msg):
|
|||
print msg
|
||||
|
||||
|
||||
def process_line(self, line):
|
||||
def process_line (self, line):
|
||||
|
||||
words = string.split (line)
|
||||
action = words[0]
|
||||
words = string.split (line)
|
||||
action = words[0]
|
||||
|
||||
# First, check that the right number of words are present
|
||||
# for the given action (which is the first word)
|
||||
if action in ('include','exclude',
|
||||
'global-include','global-exclude'):
|
||||
if len (words) < 2:
|
||||
self.warn \
|
||||
("invalid template line: " +
|
||||
"'%s' expects <pattern1> <pattern2> ..." %
|
||||
action)
|
||||
return
|
||||
|
||||
pattern_list = map(convert_path, words[1:])
|
||||
|
||||
elif action in ('recursive-include','recursive-exclude'):
|
||||
if len (words) < 3:
|
||||
self.warn \
|
||||
("invalid template line: " +
|
||||
"'%s' expects <dir> <pattern1> <pattern2> ..." %
|
||||
action)
|
||||
return
|
||||
|
||||
dir = convert_path(words[1])
|
||||
pattern_list = map (convert_path, words[2:])
|
||||
|
||||
elif action in ('graft','prune'):
|
||||
if len (words) != 2:
|
||||
self.warn \
|
||||
("invalid template line: " +
|
||||
"'%s' expects a single <dir_pattern>" %
|
||||
action)
|
||||
return
|
||||
|
||||
dir_pattern = convert_path (words[1])
|
||||
|
||||
else:
|
||||
self.warn ("invalid template line: " +
|
||||
"unknown action '%s'" % action)
|
||||
# First, check that the right number of words are present
|
||||
# for the given action (which is the first word)
|
||||
if action in ('include','exclude',
|
||||
'global-include','global-exclude'):
|
||||
if len (words) < 2:
|
||||
self.warn \
|
||||
("invalid template line: " +
|
||||
"'%s' expects <pattern1> <pattern2> ..." %
|
||||
action)
|
||||
return
|
||||
|
||||
# OK, now we know that the action is valid and we have the
|
||||
# right number of words on the line for that action -- so we
|
||||
# can proceed with minimal error-checking. Also, we have
|
||||
# defined either (pattern), (dir and pattern), or
|
||||
# (dir_pattern) -- so we don't have to spend any time
|
||||
# digging stuff up out of 'words'.
|
||||
pattern_list = map(convert_path, words[1:])
|
||||
|
||||
if action == 'include':
|
||||
self.debug_print("include " + string.join(pattern_list))
|
||||
for pattern in pattern_list:
|
||||
if not self.select_pattern (pattern, anchor=1):
|
||||
self.warn ("no files found matching '%s'" %
|
||||
pattern)
|
||||
elif action in ('recursive-include','recursive-exclude'):
|
||||
if len (words) < 3:
|
||||
self.warn \
|
||||
("invalid template line: " +
|
||||
"'%s' expects <dir> <pattern1> <pattern2> ..." %
|
||||
action)
|
||||
return
|
||||
|
||||
elif action == 'exclude':
|
||||
self.debug_print("exclude " + string.join(pattern_list))
|
||||
for pattern in pattern_list:
|
||||
if not self.exclude_pattern (pattern, anchor=1):
|
||||
self.warn (
|
||||
"no previously-included files found matching '%s'"%
|
||||
pattern)
|
||||
dir = convert_path(words[1])
|
||||
pattern_list = map (convert_path, words[2:])
|
||||
|
||||
elif action == 'global-include':
|
||||
self.debug_print("global-include " + string.join(pattern_list))
|
||||
for pattern in pattern_list:
|
||||
if not self.select_pattern (pattern, anchor=0):
|
||||
self.warn (("no files found matching '%s' " +
|
||||
"anywhere in distribution") %
|
||||
pattern)
|
||||
elif action in ('graft','prune'):
|
||||
if len (words) != 2:
|
||||
self.warn \
|
||||
("invalid template line: " +
|
||||
"'%s' expects a single <dir_pattern>" %
|
||||
action)
|
||||
return
|
||||
|
||||
elif action == 'global-exclude':
|
||||
self.debug_print("global-exclude " + string.join(pattern_list))
|
||||
for pattern in pattern_list:
|
||||
if not self.exclude_pattern (pattern, anchor=0):
|
||||
self.warn \
|
||||
(("no previously-included files matching '%s' " +
|
||||
"found anywhere in distribution") %
|
||||
pattern)
|
||||
dir_pattern = convert_path (words[1])
|
||||
|
||||
elif action == 'recursive-include':
|
||||
self.debug_print("recursive-include %s %s" %
|
||||
(dir, string.join(pattern_list)))
|
||||
for pattern in pattern_list:
|
||||
if not self.select_pattern (pattern, prefix=dir):
|
||||
self.warn (("no files found matching '%s' " +
|
||||
"under directory '%s'") %
|
||||
(pattern, dir))
|
||||
else:
|
||||
self.warn ("invalid template line: " +
|
||||
"unknown action '%s'" % action)
|
||||
return
|
||||
|
||||
elif action == 'recursive-exclude':
|
||||
self.debug_print("recursive-exclude %s %s" %
|
||||
(dir, string.join(pattern_list)))
|
||||
for pattern in pattern_list:
|
||||
if not self.exclude_pattern(pattern, prefix=dir):
|
||||
self.warn \
|
||||
(("no previously-included files matching '%s' " +
|
||||
"found under directory '%s'") %
|
||||
(pattern, dir))
|
||||
# OK, now we know that the action is valid and we have the
|
||||
# right number of words on the line for that action -- so we
|
||||
# can proceed with minimal error-checking. Also, we have
|
||||
# defined either (pattern), (dir and pattern), or
|
||||
# (dir_pattern) -- so we don't have to spend any time
|
||||
# digging stuff up out of 'words'.
|
||||
|
||||
elif action == 'graft':
|
||||
self.debug_print("graft " + dir_pattern)
|
||||
if not self.select_pattern(None, prefix=dir_pattern):
|
||||
self.warn ("no directories found matching '%s'" %
|
||||
dir_pattern)
|
||||
if action == 'include':
|
||||
self.debug_print("include " + string.join(pattern_list))
|
||||
for pattern in pattern_list:
|
||||
if not self.select_pattern (pattern, anchor=1):
|
||||
self.warn ("no files found matching '%s'" %
|
||||
pattern)
|
||||
|
||||
elif action == 'prune':
|
||||
self.debug_print("prune " + dir_pattern)
|
||||
if not self.exclude_pattern(None, prefix=dir_pattern):
|
||||
elif action == 'exclude':
|
||||
self.debug_print("exclude " + string.join(pattern_list))
|
||||
for pattern in pattern_list:
|
||||
if not self.exclude_pattern (pattern, anchor=1):
|
||||
self.warn (
|
||||
"no previously-included files found matching '%s'"%
|
||||
pattern)
|
||||
|
||||
elif action == 'global-include':
|
||||
self.debug_print("global-include " + string.join(pattern_list))
|
||||
for pattern in pattern_list:
|
||||
if not self.select_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(pattern_list))
|
||||
for pattern in pattern_list:
|
||||
if not self.exclude_pattern (pattern, anchor=0):
|
||||
self.warn \
|
||||
(("no previously-included directories found " +
|
||||
"matching '%s'") %
|
||||
dir_pattern)
|
||||
else:
|
||||
raise RuntimeError, \
|
||||
"this cannot happen: invalid action '%s'" % action
|
||||
(("no previously-included files matching '%s' " +
|
||||
"found anywhere in distribution") %
|
||||
pattern)
|
||||
|
||||
elif action == 'recursive-include':
|
||||
self.debug_print("recursive-include %s %s" %
|
||||
(dir, string.join(pattern_list)))
|
||||
for pattern in pattern_list:
|
||||
if not self.select_pattern (pattern, prefix=dir):
|
||||
self.warn (("no files found matching '%s' " +
|
||||
"under directory '%s'") %
|
||||
(pattern, dir))
|
||||
|
||||
elif action == 'recursive-exclude':
|
||||
self.debug_print("recursive-exclude %s %s" %
|
||||
(dir, string.join(pattern_list)))
|
||||
for pattern in pattern_list:
|
||||
if not self.exclude_pattern(pattern, prefix=dir):
|
||||
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.select_pattern(None, prefix=dir_pattern):
|
||||
self.warn ("no directories found matching '%s'" %
|
||||
dir_pattern)
|
||||
|
||||
elif action == 'prune':
|
||||
self.debug_print("prune " + dir_pattern)
|
||||
if not self.exclude_pattern(None, prefix=dir_pattern):
|
||||
self.warn \
|
||||
(("no previously-included directories found " +
|
||||
"matching '%s'") %
|
||||
dir_pattern)
|
||||
else:
|
||||
raise RuntimeError, \
|
||||
"this cannot happen: invalid action '%s'" % action
|
||||
|
||||
# process_line ()
|
||||
|
||||
|
||||
|
||||
|
||||
def select_pattern (self, pattern,
|
||||
anchor=1, prefix=None, is_regex=0):
|
||||
"""Select strings (presumably filenames) from 'files' that match
|
||||
|
|
Loading…
Reference in New Issue