On 3/6/19 6:52 PM, Wei Liu wrote: > Go through the transformations suggested by 2to3 and pick the > necessary ones. > > Use sys.stderr.write to avoid importing from __future__. > > Signed-off-by: Wei Liu <wei.l...@citrix.com> > --- > tools/libxl/gentest.py | 2 +- > tools/libxl/gentypes.py | 10 +++++----- > tools/libxl/idl.py | 13 ++++++------- > 3 files changed, 12 insertions(+), 13 deletions(-) > > diff --git a/tools/libxl/gentest.py b/tools/libxl/gentest.py > index 989959fc68..81e13b437c 100644 > --- a/tools/libxl/gentest.py > +++ b/tools/libxl/gentest.py > @@ -86,7 +86,7 @@ def gen_rand_init(ty, v, indent = " ", parent = None): > > if __name__ == '__main__': > if len(sys.argv) < 3: > - print >>sys.stderr, "Usage: gentest.py <idl> <implementation>" > + sys.stderr.write("Usage: gentest.py <idl> <implementation>\n") > sys.exit(1) > > random.seed(os.getenv('LIBXL_TESTIDL_SEED')) > diff --git a/tools/libxl/gentypes.py b/tools/libxl/gentypes.py > index 88e5c5f30e..656c157c01 100644 > --- a/tools/libxl/gentypes.py > +++ b/tools/libxl/gentypes.py > @@ -576,14 +576,14 @@ def libxl_C_enum_from_string(ty, str, e, indent = " > "): > > if __name__ == '__main__': > if len(sys.argv) != 6: > - print >>sys.stderr, "Usage: gentypes.py <idl> <header> > <header-private> <header-json> <implementation>" > + sys.stderr.write("Usage: gentypes.py <idl> <header> <header-private> > <header-json> <implementation>\n") > sys.exit(1) > > (_, idlname, header, header_private, header_json, impl) = sys.argv > > (builtins,types) = idl.parse(idlname) > > - print "outputting libxl type definitions to %s" % header > + print("outputting libxl type definitions to %s" % header)
Note that print is *not* a function in python 2, unless you.. from __future__ import print_function ...which should not be avoided. It looks like print() just works as a function, but it's not, and I would recommend against introducing this kind of misleading code. In print("hallo"), the parentheses are part of an expression, like in ((1+ 1) * 2) Other syntax with parentheses creates tuples. Python 2.7.13 (>>> replaced with ===) === type(()) <type 'tuple'> === type((1+1)) <type 'int'> === type((1, 2)) <type 'tuple'> === print () <- tuple () === print (1+1) <- expression 2 === print (1, 2) <- tuple (1, 2) === from __future__ import print_function === print() === print(1+1) 2 === print(1, 2) 1 2 > f = open(header, "w") > > @@ -633,7 +633,7 @@ if __name__ == '__main__': > f.write("""#endif /* %s */\n""" % (header_define)) > f.close() > > - print "outputting libxl JSON definitions to %s" % header_json > + print("outputting libxl JSON definitions to %s" % header_json) > > f = open(header_json, "w") > > @@ -657,7 +657,7 @@ if __name__ == '__main__': > f.write("""#endif /* %s */\n""" % header_json_define) > f.close() > > - print "outputting libxl type internal definitions to %s" % header_private > + print("outputting libxl type internal definitions to %s" % > header_private) > > f = open(header_private, "w") > > @@ -683,7 +683,7 @@ if __name__ == '__main__': > f.write("""#endif /* %s */\n""" % header_json_define) > f.close() > > - print "outputting libxl type implementations to %s" % impl > + print("outputting libxl type implementations to %s" % impl) > > f = open(impl, "w") > f.write(""" > diff --git a/tools/libxl/idl.py b/tools/libxl/idl.py > index 2a7f3c44fe..b5bfc66b50 100644 > --- a/tools/libxl/idl.py > +++ b/tools/libxl/idl.py > @@ -11,7 +11,7 @@ DIR_BOTH = 3 > _default_namespace = "" > def namespace(s): > if type(s) != str: > - raise TypeError, "Require a string for the default namespace." > + raise TypeError("Require a string for the default namespace.") > global _default_namespace > _default_namespace = s > > @@ -346,7 +346,7 @@ class OrderedDict(dict): > return [(x,self[x]) for x in self.__ordered] > > def parse(f): > - print >>sys.stderr, "Parsing %s" % f > + sys.stderr.write("Parsing %s\n" % f) And if you have it from future anyway... print("Parsing", f, file=sys.stderr) > globs = {} > locs = OrderedDict() > @@ -362,11 +362,10 @@ def parse(f): > globs[n] = t > > try: > - execfile(f, globs, locs) > - except SyntaxError,e: > - raise SyntaxError, \ > - "Errors were found at line %d while processing %s:\n\t%s"\ > - %(e.lineno,f,e.text) > + exec(compile(open(f).read(), f, 'exec'), globs, locs) > + except SyntaxError as e: > + raise SyntaxError("Errors were found at line %d while processing > %s:\n\t%s"\ > + %(e.lineno,f,e.text)) > > types = [t for t in locs.ordered_values() if isinstance(t,Type)] > > Hans _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel