]> granicus.if.org Git - python/commitdiff
Fredrik Lundh:
authorGuido van Rossum <guido@python.org>
Tue, 28 Mar 2000 21:42:38 +0000 (21:42 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 28 Mar 2000 21:42:38 +0000 (21:42 +0000)
The new filecmp module has an optional argument called use_statcache
which is documented as a true/false value, but used as an tuple index.

This patches replaces the tuple stuff with a good old if- statement,
and also removes a few other tuple pack/unpack constructs (if not
else, this saves a few bytes in the PYC file, and a few microseconds
when using the module ;-).

Lib/filecmp.py

index e1a30bc5f0cea69c95ff891b1d5a8c8449c7decc..24ae4b3b115b01fd64dccfd2da527b5794a11e78 100644 (file)
@@ -30,14 +30,21 @@ def cmp(f1, f2, shallow=1,use_statcache=0):
        and the cache will never grow stale.
 
        """
-       stat_function = (os.stat, statcache.stat)[use_statcache]
-       s1, s2 = _sig(stat_function(f1)), _sig(stat_function(f2))
-       if s1[0]!=stat.S_IFREG or s2[0]!=stat.S_IFREG: return 0
-       if shallow and s1 == s2: return 1
-       if s1[1]!=s2[1]:         return 0
+       if use_statcache:
+               stat_function = statcache.stat
+       else:
+               stat_function = os.stat
+       s1 = _sig(stat_function(f1))
+       s2 = _sig(stat_function(f2))
+       if s1[0] != stat.S_IFREG or s2[0] != stat.S_IFREG:
+               return 0
+       if shallow and s1 == s2:
+               return 1
+       if s1[1] != s2[1]:
+               return 0
 
        result = _cache.get((f1, f2))
-       if result and (s1, s2)==result[:2]:
+       if result and (s1, s2) == result[:2]:
                return result[2]
        outcome = _do_cmp(f1, f2)
        _cache[f1, f2] = s1, s2, outcome
@@ -50,8 +57,12 @@ def _sig(st):
 
 def _do_cmp(f1, f2):
        bufsize = BUFSIZE
-       fp1 , fp2 = open(f1, 'rb'), open(f2, 'rb')
+       fp1 = open(f1, 'rb')
+       fp2 = open(f2, 'rb')
        while 1:
-               b1, b2 = fp1.read(bufsize), fp2.read(bufsize)
-               if b1!=b2: return 0
-               if not b1: return 1
+               b1 = fp1.read(bufsize)
+               b2 = fp2.read(bufsize)
+               if b1 != b2:
+                       return 0
+               if not b1:
+                       return 1