summaryrefslogtreecommitdiffstats
path: root/Lib/distutils/cmd.py
diff options
context:
space:
mode:
authorGreg Ward <gward@python.net>2000-04-10 01:30:44 (GMT)
committerGreg Ward <gward@python.net>2000-04-10 01:30:44 (GMT)
commite9613ae05fb722ff8121b2762df24c06e510a73d (patch)
treeec0cf0b2a3cc9e2f363e252dff3902ae45868e08 /Lib/distutils/cmd.py
parentd38e6f763797bec120ba110cd6e416d903c071b9 (diff)
downloadcpython-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()'.
Diffstat (limited to 'Lib/distutils/cmd.py')
-rw-r--r--Lib/distutils/cmd.py16
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