[PATCH 4 of 5] lsprofcalltree: use print function

Gregory Szorc gregory.szorc at gmail.com
Sat Jan 2 13:54:46 CST 2016


# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1451763929 28800
#      Sat Jan 02 11:45:29 2016 -0800
# Node ID eb38a483db6e6cef6f1e9e0c522f6b440f334a21
# Parent  9c26e94a684bd73ae562eace5264f886119c9280
lsprofcalltree: use print function

While I was here, some single element tuples have been removed in
favor of the shorter syntax. Some commented lines of code containing
print statements have also been removed because it was unclear what
purpose they served.

diff --git a/mercurial/lsprofcalltree.py b/mercurial/lsprofcalltree.py
--- a/mercurial/lsprofcalltree.py
+++ b/mercurial/lsprofcalltree.py
@@ -5,84 +5,82 @@ Authors:
     * David Allouche <david <at> allouche.net>
     * Jp Calderone & Itamar Shtull-Trauring
     * Johan Dahlin
 
 This software may be used and distributed according to the terms
 of the GNU General Public License, incorporated herein by reference.
 """
 
-from __future__ import absolute_import
+from __future__ import absolute_import, print_function
 
 def label(code):
     if isinstance(code, str):
         return '~' + code    # built-in functions ('~' sorts at the end)
     else:
         return '%s %s:%d' % (code.co_name,
                              code.co_filename,
                              code.co_firstlineno)
 
 class KCacheGrind(object):
     def __init__(self, profiler):
         self.data = profiler.getstats()
         self.out_file = None
 
     def output(self, out_file):
         self.out_file = out_file
-        print >> out_file, 'events: Ticks'
+        print('events: Ticks', file=out_file)
         self._print_summary()
         for entry in self.data:
             self._entry(entry)
 
     def _print_summary(self):
         max_cost = 0
         for entry in self.data:
             totaltime = int(entry.totaltime * 1000)
             max_cost = max(max_cost, totaltime)
-        print >> self.out_file, 'summary: %d' % (max_cost,)
+        print('summary: %d' % max_cost, file=self.out_file)
 
     def _entry(self, entry):
         out_file = self.out_file
 
         code = entry.code
-        #print >> out_file, 'ob=%s' % (code.co_filename,)
         if isinstance(code, str):
-            print >> out_file, 'fi=~'
+            print('fi=~', file=out_file)
         else:
-            print >> out_file, 'fi=%s' % (code.co_filename,)
-        print >> out_file, 'fn=%s' % (label(code),)
+            print('fi=%s' % code.co_filename, file=out_file)
+        print('fn=%s' % label(code), file=out_file)
 
         inlinetime = int(entry.inlinetime * 1000)
         if isinstance(code, str):
-            print >> out_file, '0 ', inlinetime
+            print('0 ', inlinetime, file=out_file)
         else:
-            print >> out_file, '%d %d' % (code.co_firstlineno, inlinetime)
+            print('%d %d' % (code.co_firstlineno, inlinetime), file=out_file)
 
         # recursive calls are counted in entry.calls
         if entry.calls:
             calls = entry.calls
         else:
             calls = []
 
         if isinstance(code, str):
             lineno = 0
         else:
             lineno = code.co_firstlineno
 
         for subentry in calls:
             self._subentry(lineno, subentry)
-        print >> out_file
+        print(file=out_file)
 
     def _subentry(self, lineno, subentry):
         out_file = self.out_file
         code = subentry.code
-        #print >> out_file, 'cob=%s' % (code.co_filename,)
-        print >> out_file, 'cfn=%s' % (label(code),)
+        print('cfn=%s' % label(code), file=out_file)
         if isinstance(code, str):
-            print >> out_file, 'cfi=~'
-            print >> out_file, 'calls=%d 0' % (subentry.callcount,)
+            print('cfi=~', file=out_file)
+            print('calls=%d 0' % subentry.callcount, file=out_file)
         else:
-            print >> out_file, 'cfi=%s' % (code.co_filename,)
-            print >> out_file, 'calls=%d %d' % (
-                subentry.callcount, code.co_firstlineno)
+            print('cfi=%s' % code.co_filename, file=out_file)
+            print('calls=%d %d' % (
+                subentry.callcount, code.co_firstlineno), file=out_file)
 
         totaltime = int(subentry.totaltime * 1000)
-        print >> out_file, '%d %d' % (lineno, totaltime)
+        print('%d %d' % (lineno, totaltime), file=out_file)
diff --git a/tests/test-check-py3-compat.t b/tests/test-check-py3-compat.t
--- a/tests/test-check-py3-compat.t
+++ b/tests/test-check-py3-compat.t
@@ -93,17 +93,16 @@
   hgext/transplant.py not using absolute_import
   hgext/win32mbcs.py not using absolute_import
   hgext/win32text.py not using absolute_import
   hgext/zeroconf/Zeroconf.py not using absolute_import
   hgext/zeroconf/Zeroconf.py requires print_function
   hgext/zeroconf/__init__.py not using absolute_import
   i18n/check-translation.py not using absolute_import
   i18n/polib.py not using absolute_import
-  mercurial/lsprofcalltree.py requires print_function
   mercurial/mail.py requires print_function
   setup.py not using absolute_import
   tests/filterpyflakes.py requires print_function
   tests/generate-working-copy-states.py requires print_function
   tests/get-with-headers.py requires print_function
   tests/heredoctest.py requires print_function
   tests/hypothesishelpers.py not using absolute_import
   tests/hypothesishelpers.py requires print_function


More information about the Mercurial-devel mailing list