diff options
author | Greg Ward <gward@python.net> | 2000-04-10 01:30:44 (GMT) |
---|---|---|
committer | Greg Ward <gward@python.net> | 2000-04-10 01:30:44 (GMT) |
commit | e9613ae05fb722ff8121b2762df24c06e510a73d (patch) | |
tree | ec0cf0b2a3cc9e2f363e252dff3902ae45868e08 | |
parent | d38e6f763797bec120ba110cd6e416d903c071b9 (diff) | |
download | cpython-e9613ae05fb722ff8121b2762df24c06e510a73d.zip cpython-e9613ae05fb722ff8121b2762df24c06e510a73d.tar.gz cpython-e9613ae05fb722ff8121b2762df24c06e510a73d.tar.bz2 |
Added a check for the 'force' attribute in '__getattr__()' -- better than
crashing when self.force not defined.
Revise 'copy_file()' and 'copy_tree()' docstrings accordingly.
Remove 'hasattr()' check for 'self.force' from 'make_file()'.
-rw-r--r-- | Lib/distutils/cmd.py | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/Lib/distutils/cmd.py b/Lib/distutils/cmd.py index 76a7691..16008c4 100644 --- a/Lib/distutils/cmd.py +++ b/Lib/distutils/cmd.py @@ -79,6 +79,11 @@ class Command: return getattr (self.distribution, attr) else: return myval + + # Needed because some Command methods assume 'self.force' exists, + # but not all commands define 'self.force'. Ugh. + elif attr == 'force': + return None else: raise AttributeError, attr @@ -307,8 +312,9 @@ class Command: def copy_file (self, infile, outfile, preserve_mode=1, preserve_times=1, link=None, level=1): - """Copy a file respecting verbose, dry-run and force flags (this - should only be used by commands that define 'self.force'!).""" + """Copy a file respecting verbose, dry-run and force flags. (The + former two default to whatever is in the Distribution object, and + the latter defaults to false for commands that don't define it.)""" return util.copy_file (infile, outfile, preserve_mode, preserve_times, @@ -322,8 +328,7 @@ class Command: preserve_mode=1, preserve_times=1, preserve_symlinks=0, level=1): """Copy an entire directory tree respecting verbose, dry-run, - and force flags (again, should only be used by commands - that define 'self.force').""" + and force flags.""" return util.copy_tree (infile, outfile, preserve_mode,preserve_times,preserve_symlinks, @@ -381,8 +386,7 @@ class Command: # If 'outfile' must be regenerated (either because it doesn't # exist, is out-of-date, or the 'force' flag is true) then # perform the action that presumably regenerates it - if ((hasattr(self,'force') and self.force) or - util.newer_group (infiles, outfile)): + if self.force or util.newer_group (infiles, outfile): self.execute (func, args, exec_msg, level) # Otherwise, print the "skip" message |