Messages in this thread Patch in this message | | | Subject | Re: [PATCH v2] perf scripts python: Add Python 3 support to exported-sql-viewer.py | From | seeteena <> | Date | Mon, 21 Jan 2019 16:15:39 +0530 |
| |
On 01/19/2019 06:15 AM, Tony Jones wrote: > On 1/17/19 1:45 AM, Seeteena Thoufeek wrote: > >> +if sys.version_info[0] < 3: >> + import cPickle >> +else: >> + import _pickle as cPickle > Do you really need this? > > pickle is already in Python2. > > Also, did you test these changes on Python3? > > I think you'll find you also need the following hunk otherwise you're running into Unicode diffs on Py3. > > @@ -2590,8 +2590,8 @@ def Main(): > > is_sqlite3 = False > try: > - f = open(dbname) > - if f.read(15) == "SQLite format 3": > + f = open(dbname, "rb") > + if f.read(15) == b'SQLite format 3': > is_sqlite3 = True > f.close() > except: > > Plus you need to handle the conversion of "print >> sys.stderr"
Thanks Tony. added changes to handle the conversion of "print >> sys.stderr" in export-to-postgresql.py and export-to-sqlite.py file as well. revised patch posted. > > Attached is my version (against tip): > > --- a/tools/perf/scripts/python/exported-sql-viewer.py > +++ b/tools/perf/scripts/python/exported-sql-viewer.py > @@ -91,7 +91,7 @@ import sys > import weakref > import threading > import string > -import cPickle > +import pickle > import re > import os > from PySide.QtCore import * > @@ -1559,7 +1559,7 @@ class SQLTableDialogDataItem(): > return str(lower_id) > > def ConvertRelativeTime(self, val): > - print "val ", val > + print("val ", val) > mult = 1 > suffix = val[-2:] > if suffix == "ms": > @@ -1581,29 +1581,29 @@ class SQLTableDialogDataItem(): > return str(val) > > def ConvertTimeRange(self, vrange): > - print "vrange ", vrange > + print("vrange ", vrange) > if vrange[0] == "": > vrange[0] = str(self.first_time) > if vrange[1] == "": > vrange[1] = str(self.last_time) > vrange[0] = self.ConvertRelativeTime(vrange[0]) > vrange[1] = self.ConvertRelativeTime(vrange[1]) > - print "vrange2 ", vrange > + print("vrange2 ", vrange) > if not self.IsNumber(vrange[0]) or not self.IsNumber(vrange[1]): > return False > - print "ok1" > + print("ok1") > beg_range = max(int(vrange[0]), self.first_time) > end_range = min(int(vrange[1]), self.last_time) > if beg_range > self.last_time or end_range < self.first_time: > return False > - print "ok2" > + print("ok2") > vrange[0] = self.BinarySearchTime(0, self.last_id, beg_range, True) > vrange[1] = self.BinarySearchTime(1, self.last_id + 1, end_range, False) > - print "vrange3 ", vrange > + print("vrange3 ", vrange) > return True > > def AddTimeRange(self, value, ranges): > - print "value ", value > + print("value ", value) > n = value.count("-") > if n == 1: > pass > @@ -2577,7 +2577,7 @@ class DBRef(): > > def Main(): > if (len(sys.argv) < 2): > - print >> sys.stderr, "Usage is: exported-sql-viewer.py {<database name> | --help-only}" > + sys.stderr.write("Usage is: exported-sql-viewer.py {<database name> | --help-only}\n"); > raise Exception("Too few arguments") > > dbname = sys.argv[1] > @@ -2590,8 +2590,8 @@ def Main(): > > is_sqlite3 = False > try: > - f = open(dbname) > - if f.read(15) == "SQLite format 3": > + f = open(dbname, "rb") > + if f.read(15) == b'SQLite format 3': > is_sqlite3 = True > f.close() > except: > > > > >
| |