[PATCH] make btt scripts python3-ready

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Many distributions are moving to python3 by default.  Here's
an attempt to make the python scripts in blktrace python3-ready.

Most of this was done with automated tools.  I hand fixed some
space-vs tab issues, and cast an array index to integer.  It
passes rudimentary testing when run under python2.7 as well
as python3.

This doesn't do anything with the shebangs, it leaves them both
invoking whatever "env python" coughs up on the system.

Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
---

I am not a python guru at all. Happy to have review by anyone more
pythonic than I am.  Hopefully this helps at least move things
toward python3-readiness.  Thanks!

diff --git a/btt/bno_plot.py b/btt/bno_plot.py
index aa92480..f05cfdc 100644
--- a/btt/bno_plot.py
+++ b/btt/bno_plot.py
@@ -38,6 +38,8 @@ automatically push the keys under the graph.
 To exit the plotter, enter 'quit' or ^D at the 'gnuplot> ' prompt.
 """
 
+from __future__ import absolute_import
+from __future__ import print_function
 import getopt, glob, os, sys, tempfile
 
 verbose	= 0
@@ -60,14 +62,14 @@ def parse_args(in_args):
 
 	try:
 		(opts, args) = getopt.getopt(in_args, s_opts, l_opts)
-	except getopt.error, msg:
-		print >>sys.stderr, msg
-		print >>sys.stderr, __doc__
+	except getopt.error as msg:
+		print(msg, file=sys.stderr)
+		print(__doc__, file=sys.stderr)
 		sys.exit(1)
 
 	for (o, a) in opts:
 		if o in ('-h', '--help'):
-			print __doc__
+			print(__doc__)
 			sys.exit(0)
 		elif o in ('-v', '--verbose'):
 			verbose += 1
@@ -84,10 +86,10 @@ if __name__ == '__main__':
 	(bnos, keys_below) = parse_args(sys.argv[1:])
 
 	if verbose:
-		print 'Using files:',
-		for bno in bnos: print bno,
-		if keys_below:	print '\nKeys are to be placed below graph'
-		else:		print ''
+		print('Using files:', end=' ')
+		for bno in bnos: print(bno, end=' ')
+		if keys_below:	print('\nKeys are to be placed below graph')
+		else:		print('')
 
 	tmpdir = tempfile.mktemp()
 	os.mkdir(tmpdir)
@@ -99,7 +101,7 @@ if __name__ == '__main__':
 		fo = open(t, 'w')
 		for line in open(f, 'r'):
 			fld = line.split(None)
-			print >>fo, fld[0], fld[1], int(fld[2])-int(fld[1])
+			print(fld[0], fld[1], int(fld[2])-int(fld[1]), file=fo)
 		fo.close()
 
 		t = t[t.rfind('/')+1:]
@@ -107,16 +109,16 @@ if __name__ == '__main__':
 		else:                plot_cmd = "%s,'%s'" % (plot_cmd, t)
 
 	fo = open('%s/plot.cmds' % tmpdir, 'w')
-	print >>fo, cmds
-	if len(bnos) > 10 or keys_below: print >>fo, 'set key below'
-	print >>fo, plot_cmd
+	print(cmds, file=fo)
+	if len(bnos) > 10 or keys_below: print('set key below', file=fo)
+	print(plot_cmd, file=fo)
 	fo.close()
 
 	pid = os.fork()
 	if pid == 0:
 		cmd = 'gnuplot %s/plot.cmds -' % tmpdir
 
-		if verbose: print 'Executing %s' % cmd
+		if verbose: print('Executing %s' % cmd)
 
 		os.chdir(tmpdir)
 		os.system(cmd)
diff --git a/btt/btt_plot.py b/btt/btt_plot.py
index b81dad5..76fcca8 100755
--- a/btt/btt_plot.py
+++ b/btt/btt_plot.py
@@ -55,6 +55,10 @@ Arguments:
   but the -o (--output) and -T (--title) options will be ignored.
 """
 
+from __future__ import absolute_import
+from __future__ import print_function
+import six
+from six.moves import range
 __author__ = 'Alan D. Brunelle <alan.brunelle@xxxxxx>'
 
 #------------------------------------------------------------------------------
@@ -82,7 +86,7 @@ get_base 	= lambda file: file[file.find('_')+1:file.rfind('_')]
 def fatal(msg):
 	"""Generate fatal error message and exit"""
 
-	print >>sys.stderr, 'FATAL: %s' % msg
+	print('FATAL: %s' % msg, file=sys.stderr)
 	sys.exit(1)
 
 #------------------------------------------------------------------------------
@@ -163,7 +167,7 @@ def get_data(files):
 		if not os.path.exists(file):
 			fatal('%s not found' % file)
 		elif verbose:
-			print 'Processing %s' % file
+			print('Processing %s' % file)
 
 		xs = []
 		ys = []
@@ -214,8 +218,8 @@ def parse_args(args):
 
 	try:
 		(opts, args) = getopt.getopt(args[1:], s_opts, l_opts)
-	except getopt.error, msg:
-		print >>sys.stderr, msg
+	except getopt.error as msg:
+		print(msg, file=sys.stderr)
 		fatal(__doc__)
 
 	for (o, a) in opts:
@@ -293,15 +297,15 @@ def generate_output(type, db):
 	def color(idx, style):
 		"""Returns a color/symbol type based upon the index passed."""
 
-                colors = [ 'b', 'g', 'r', 'c', 'm', 'y', 'k' ]
+		colors = [ 'b', 'g', 'r', 'c', 'm', 'y', 'k' ]
 		l_styles = [ '-', ':', '--', '-.' ]
 		m_styles = [ 'o', '+', '.', ',', 's', 'v', 'x', '<', '>' ]
 
 		color = colors[idx % len(colors)]
 		if style == 'line':
-			style = l_styles[(idx / len(l_styles)) % len(l_styles)]
+			style = l_styles[int((idx / len(l_styles)) % len(l_styles))]
 		elif style == 'marker':
-			style = m_styles[(idx / len(m_styles)) % len(m_styles)]
+			style = m_styles[int((idx / len(m_styles)) % len(m_styles))]
 
 		return '%s%s' % (color, style)
 
@@ -314,7 +318,7 @@ def generate_output(type, db):
 		ofile = '%s.png' % type
 
 	if verbose:
-		print 'Generating plot into %s' % ofile
+		print('Generating plot into %s' % ofile)
 
 	fig = plt.figure(figsize=plot_size)
 	ax = fig.add_subplot(111)
@@ -329,7 +333,7 @@ def generate_output(type, db):
 		legends = None
 
 	keys = []
-	for file in db.iterkeys():
+	for file in six.iterkeys(db):
 		if not file in ['min_x', 'max_x', 'min_y', 'max_y']:
 			keys.append(file)
 
--
To unsubscribe from this list: send the line "unsubscribe linux-btrace" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Netdev]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux