reduce time wasted on _dbg output: format string only when it is actually printed
authorChristian Herdtweck <christian.herdtweck@intra2net.com>
Wed, 15 Jun 2016 07:55:16 +0000 (09:55 +0200)
committerChristian Herdtweck <christian.herdtweck@intra2net.com>
Wed, 15 Jun 2016 11:18:03 +0000 (13:18 +0200)
deltatar/tarfile.py

index ffc6cb8..ca5d557 100644 (file)
@@ -2525,8 +2525,7 @@ class TarFile(object):
             if hasattr(fileobj, "mode"):
                 self._mode = fileobj.mode
             self._extfileobj = True
-            self._dbg(3, 'open_volume: using external fileobj {}'
-                          .format(fileobj))
+            self._dbg(3, 'open_volume: using external fileobj {}', fileobj)
         self.name = os.path.abspath(name) if name else None
         self.fileobj = fileobj
 
@@ -3006,11 +3005,11 @@ class TarFile(object):
         else:
             return TarIter(self)
 
-    def _dbg(self, level, msg):
+    def _dbg(self, level, msg, *args):
         """Write debugging output to sys.stderr.
         """
         if level <= self.debug:
-            print(msg, file=sys.stderr)
+            print(msg.format(*args), file=sys.stderr)
 
     def __enter__(self):
         self._check()