diff options
author | Greg Ward <gward@python.net> | 2000-07-30 00:21:36 (GMT) |
---|---|---|
committer | Greg Ward <gward@python.net> | 2000-07-30 00:21:36 (GMT) |
commit | 7b3d56c85cacf45cf27f87e13a95fe12d76984d1 (patch) | |
tree | dcc7fff23da18668d45648597a7f4837984a82e2 /Lib/distutils | |
parent | c98927a059c458065ca3311a55f70b323f75c467 (diff) | |
download | cpython-7b3d56c85cacf45cf27f87e13a95fe12d76984d1.zip cpython-7b3d56c85cacf45cf27f87e13a95fe12d76984d1.tar.gz cpython-7b3d56c85cacf45cf27f87e13a95fe12d76984d1.tar.bz2 |
Renamed 'process_line()' to 'process_template_line()', and factored out
'_parse_template_line()'.
Diffstat (limited to 'Lib/distutils')
-rw-r--r-- | Lib/distutils/filelist.py | 132 |
1 files changed, 63 insertions, 69 deletions
diff --git a/Lib/distutils/filelist.py b/Lib/distutils/filelist.py index 78f2a8d..5310ae5 100644 --- a/Lib/distutils/filelist.py +++ b/Lib/distutils/filelist.py @@ -16,6 +16,7 @@ import fnmatch from types import * from glob import glob from distutils.util import convert_path +from distutils.errors import DistutilsTemplateError, DistutilsInternalError class FileList: @@ -64,126 +65,119 @@ class FileList: print msg - def process_line (self, line): - + def _parse_template_line (self, line): 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'): + patterns = dir = dir_pattern = None + + if action in ('include', 'exclude', + 'global-include', 'global-exclude'): if len (words) < 2: - self.warn \ - ("invalid template line: " + - "'%s' expects <pattern1> <pattern2> ..." % - action) - return + raise DistutilsTemplateError, \ + "'%s' expects <pattern1> <pattern2> ..." % action - pattern_list = map(convert_path, words[1:]) + patterns = map(convert_path, words[1:]) - elif action in ('recursive-include','recursive-exclude'): + elif action in ('recursive-include', 'recursive-exclude'): if len (words) < 3: - self.warn \ - ("invalid template line: " + - "'%s' expects <dir> <pattern1> <pattern2> ..." % - action) - return + raise DistutilsTemplateError, \ + "'%s' expects <dir> <pattern1> <pattern2> ..." % action dir = convert_path(words[1]) - pattern_list = map (convert_path, words[2:]) + patterns = map(convert_path, words[2:]) - elif action in ('graft','prune'): + elif action in ('graft', 'prune'): if len (words) != 2: - self.warn \ - ("invalid template line: " + - "'%s' expects a single <dir_pattern>" % - action) - return + raise DistutilsTemplateError, \ + "'%s' expects a single <dir_pattern>" % action - dir_pattern = convert_path (words[1]) + dir_pattern = convert_path(words[1]) else: - self.warn ("invalid template line: " + - "unknown action '%s'" % action) - return + raise DistutilsTemplateError, "unknown action '%s'" % action + + return (action, pattern, dir, dir_pattern) + + # _parse_template_line () + + + def process_template_line (self, line): + + # Parse the line: split it up, make sure the right number of words + # are there, and return the relevant words. 'action' is always + # defined: it's the first word of the line. Which of the other + # three are defined depends on the action; it'll be either + # patterns, (dir and patterns), or (dir_pattern). + (action, patterns, dir, dir_pattern) = self._parse_template_line(line) # 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'. - + # can proceed with minimal error-checking. if action == 'include': - self.debug_print("include " + string.join(pattern_list)) - for pattern in pattern_list: + self.debug_print("include " + string.join(patterns)) + for pattern in patterns: if not self.select_pattern (pattern, anchor=1): - self.warn ("no files found matching '%s'" % - pattern) + self.warn("no files found matching '%s'" % pattern) elif action == 'exclude': - self.debug_print("exclude " + string.join(pattern_list)) - for pattern in pattern_list: + self.debug_print("exclude " + string.join(patterns)) + for pattern in patterns: if not self.exclude_pattern (pattern, anchor=1): - self.warn ( + 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: + self.debug_print("global-include " + string.join(patterns)) + for pattern in patterns: if not self.select_pattern (pattern, anchor=0): self.warn (("no files found matching '%s' " + - "anywhere in distribution") % - pattern) + "anywhere in distribution") % + pattern) elif action == 'global-exclude': - self.debug_print("global-exclude " + string.join(pattern_list)) - for pattern in pattern_list: + self.debug_print("global-exclude " + string.join(patterns)) + for pattern in patterns: if not self.exclude_pattern (pattern, anchor=0): - self.warn \ - (("no previously-included files matching '%s' " + - "found anywhere in distribution") % - pattern) + self.warn(("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: + (dir, string.join(patterns))) + for pattern in patterns: if not self.select_pattern (pattern, prefix=dir): self.warn (("no files found matching '%s' " + - "under directory '%s'") % - (pattern, dir)) + "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: + (dir, string.join(patterns))) + for pattern in patterns: if not self.exclude_pattern(pattern, prefix=dir): - self.warn \ - (("no previously-included files matching '%s' " + - "found under directory '%s'") % - (pattern, 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) + 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) + self.warn(("no previously-included directories found " + + "matching '%s'") % + dir_pattern) else: - raise RuntimeError, \ + raise DistutilsInternalError, \ "this cannot happen: invalid action '%s'" % action - # process_line () + # process_template_line () def select_pattern (self, pattern, |