summaryrefslogtreecommitdiffstats
path: root/Lib/dircmp.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/dircmp.py')
-rw-r--r--Lib/dircmp.py158
1 files changed, 79 insertions, 79 deletions
diff --git a/Lib/dircmp.py b/Lib/dircmp.py
index cbbce1b..1227aa7 100644
--- a/Lib/dircmp.py
+++ b/Lib/dircmp.py
@@ -13,46 +13,46 @@ from stat import *
#
class dircmp:
#
- def new(dd, (a, b)): # Initialize
- dd.a = a
- dd.b = b
- # Properties that caller may change before calling dd.run():
- dd.hide = [os.curdir, os.pardir] # Names never to be shown
- dd.ignore = ['RCS', 'tags'] # Names ignored in comparison
+ def new(self, a, b): # Initialize
+ self.a = a
+ self.b = b
+ # Properties that caller may change before calling self.run():
+ self.hide = [os.curdir, os.pardir] # Names never to be shown
+ self.ignore = ['RCS', 'tags'] # Names ignored in comparison
#
- return dd
+ return self
#
- def run(dd): # Compare everything except common subdirectories
- dd.a_list = filter(dircache.listdir(dd.a), dd.hide)
- dd.b_list = filter(dircache.listdir(dd.b), dd.hide)
- dd.a_list.sort()
- dd.b_list.sort()
- dd.phase1()
- dd.phase2()
- dd.phase3()
+ def run(self): # Compare everything except common subdirectories
+ self.a_list = filter(dircache.listdir(self.a), self.hide)
+ self.b_list = filter(dircache.listdir(self.b), self.hide)
+ self.a_list.sort()
+ self.b_list.sort()
+ self.phase1()
+ self.phase2()
+ self.phase3()
#
- def phase1(dd): # Compute common names
- dd.a_only = []
- dd.common = []
- for x in dd.a_list:
- if x in dd.b_list:
- dd.common.append(x)
+ def phase1(self): # Compute common names
+ self.a_only = []
+ self.common = []
+ for x in self.a_list:
+ if x in self.b_list:
+ self.common.append(x)
else:
- dd.a_only.append(x)
+ self.a_only.append(x)
#
- dd.b_only = []
- for x in dd.b_list:
- if x not in dd.common:
- dd.b_only.append(x)
+ self.b_only = []
+ for x in self.b_list:
+ if x not in self.common:
+ self.b_only.append(x)
#
- def phase2(dd): # Distinguish files, directories, funnies
- dd.common_dirs = []
- dd.common_files = []
- dd.common_funny = []
+ def phase2(self): # Distinguish files, directories, funnies
+ self.common_dirs = []
+ self.common_files = []
+ self.common_funny = []
#
- for x in dd.common:
- a_path = os.path.join(dd.a, x)
- b_path = os.path.join(dd.b, x)
+ for x in self.common:
+ a_path = os.path.join(self.a, x)
+ b_path = os.path.join(self.b, x)
#
ok = 1
try:
@@ -70,74 +70,74 @@ class dircmp:
a_type = S_IFMT(a_stat[ST_MODE])
b_type = S_IFMT(b_stat[ST_MODE])
if a_type <> b_type:
- dd.common_funny.append(x)
+ self.common_funny.append(x)
elif S_ISDIR(a_type):
- dd.common_dirs.append(x)
+ self.common_dirs.append(x)
elif S_ISREG(a_type):
- dd.common_files.append(x)
+ self.common_files.append(x)
else:
- dd.common_funny.append(x)
+ self.common_funny.append(x)
else:
- dd.common_funny.append(x)
+ self.common_funny.append(x)
#
- def phase3(dd): # Find out differences between common files
- xx = cmpfiles(dd.a, dd.b, dd.common_files)
- dd.same_files, dd.diff_files, dd.funny_files = xx
+ def phase3(self): # Find out differences between common files
+ xx = cmpfiles(self.a, self.b, self.common_files)
+ self.same_files, self.diff_files, self.funny_files = xx
#
- def phase4(dd): # Find out differences between common subdirectories
+ def phase4(self): # Find out differences between common subdirectories
# A new dircmp object is created for each common subdirectory,
# these are stored in a dictionary indexed by filename.
# The hide and ignore properties are inherited from the parent
- dd.subdirs = {}
- for x in dd.common_dirs:
- a_x = os.path.join(dd.a, x)
- b_x = os.path.join(dd.b, x)
- dd.subdirs[x] = newdd = dircmp().new(a_x, b_x)
- newdd.hide = dd.hide
- newdd.ignore = dd.ignore
+ self.subdirs = {}
+ for x in self.common_dirs:
+ a_x = os.path.join(self.a, x)
+ b_x = os.path.join(self.b, x)
+ self.subdirs[x] = newdd = dircmp().new(a_x, b_x)
+ newdd.hide = self.hide
+ newdd.ignore = self.ignore
newdd.run()
#
- def phase4_closure(dd): # Recursively call phase4() on subdirectories
- dd.phase4()
- for x in dd.subdirs.keys():
- dd.subdirs[x].phase4_closure()
+ def phase4_closure(self): # Recursively call phase4() on subdirectories
+ self.phase4()
+ for x in self.subdirs.keys():
+ self.subdirs[x].phase4_closure()
#
- def report(dd): # Print a report on the differences between a and b
+ def report(self): # Print a report on the differences between a and b
# Assume that phases 1 to 3 have been executed
# Output format is purposely lousy
- print 'diff', dd.a, dd.b
- if dd.a_only:
- print 'Only in', dd.a, ':', dd.a_only
- if dd.b_only:
- print 'Only in', dd.b, ':', dd.b_only
- if dd.same_files:
- print 'Identical files :', dd.same_files
- if dd.diff_files:
- print 'Differing files :', dd.diff_files
- if dd.funny_files:
- print 'Trouble with common files :', dd.funny_files
- if dd.common_dirs:
- print 'Common subdirectories :', dd.common_dirs
- if dd.common_funny:
- print 'Common funny cases :', dd.common_funny
+ print 'diff', self.a, self.b
+ if self.a_only:
+ print 'Only in', self.a, ':', self.a_only
+ if self.b_only:
+ print 'Only in', self.b, ':', self.b_only
+ if self.same_files:
+ print 'Identical files :', self.same_files
+ if self.diff_files:
+ print 'Differing files :', self.diff_files
+ if self.funny_files:
+ print 'Trouble with common files :', self.funny_files
+ if self.common_dirs:
+ print 'Common subdirectories :', self.common_dirs
+ if self.common_funny:
+ print 'Common funny cases :', self.common_funny
#
- def report_closure(dd): # Print reports on dd and on subdirs
+ def report_closure(self): # Print reports on self and on subdirs
# If phase 4 hasn't been done, no subdir reports are printed
- dd.report()
+ self.report()
try:
- x = dd.subdirs
+ x = self.subdirs
except AttributeError:
return # No subdirectories computed
- for x in dd.subdirs.keys():
+ for x in self.subdirs.keys():
print
- dd.subdirs[x].report_closure()
+ self.subdirs[x].report_closure()
#
- def report_phase4_closure(dd): # Report and do phase 4 recursively
- dd.report()
- dd.phase4()
- for x in dd.subdirs.keys():
+ def report_phase4_closure(self): # Report and do phase 4 recursively
+ self.report()
+ self.phase4()
+ for x in self.subdirs.keys():
print
- dd.subdirs[x].report_phase4_closure()
+ self.subdirs[x].report_phase4_closure()
# Compare common files in two directories.