summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/blktrace/blktrace/make-btt-scripts-python3-ready.patch
blob: 3b0c1c692c96fe5640b10d6b3b2a7e97de48f296 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
From 70d5ca2d5f3d6b97c11c641b7e0c5836983219a0 Mon Sep 17 00:00:00 2001
From: Eric Sandeen <sandeen@redhat.com>
Date: Wed, 28 Mar 2018 15:26:36 -0500
Subject: [oe-core][PATCH 1/1] make btt scripts python3-ready

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@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

Unchanged except to modify shebangs to use python3 since
oe-core does not support python2 anymore.

Upstream-Status: Backport [git://git.kernel.dk/blktrace.git commit 70d5ca2d5...]

Signed-off-by: Joe Slater <joe.slater@windriver.com>

---
 btt/bno_plot.py | 28 +++++++++++++++-------------
 btt/btt_plot.py | 22 +++++++++++++---------
 2 files changed, 28 insertions(+), 22 deletions(-)

--- git.orig/btt/bno_plot.py
+++ git/btt/bno_plot.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 #
 # btt blkno plotting interface
 #
@@ -38,6 +38,8 @@ automatically push the keys under the gr
 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)
--- git.orig/btt/btt_plot.py
+++ git/btt/btt_plot.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 #
 # btt_plot.py: Generate matplotlib plots for BTT generate data files
 #
@@ -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@hp.com>'
 
 #------------------------------------------------------------------------------
@@ -82,7 +86,7 @@ get_base 	= lambda file: file[file.find(
 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)