[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH for-next RFC 2/4] libxl: make python scripts work with python 2 and 3
All scripts are transformed by 2to3. The only addition is "from __future__ import print_function" so that print("BLAH", file=sys.stderr) can work. https://python-future.org/compatible_idioms.html Tested with 2.7 and 3.5. Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- I don't have environment to test 2.4 -- it is almost 15 years old. We may want to consider bumping the minimum requirement to 2.7? --- tools/libxl/gentest.py | 4 +++- tools/libxl/gentypes.py | 12 +++++++----- tools/libxl/idl.py | 21 +++++++++++---------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/tools/libxl/gentest.py b/tools/libxl/gentest.py index 989959fc68..1cc7eebc82 100644 --- a/tools/libxl/gentest.py +++ b/tools/libxl/gentest.py @@ -1,5 +1,7 @@ #!/usr/bin/python +from __future__ import print_function + import os import sys import re @@ -86,7 +88,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>" + print("Usage: gentest.py <idl> <implementation>", file=sys.stderr) sys.exit(1) random.seed(os.getenv('LIBXL_TESTIDL_SEED')) diff --git a/tools/libxl/gentypes.py b/tools/libxl/gentypes.py index 88e5c5f30e..6417c9dd8c 100644 --- a/tools/libxl/gentypes.py +++ b/tools/libxl/gentypes.py @@ -1,5 +1,7 @@ #!/usr/bin/python +from __future__ import print_function + import sys import re @@ -576,14 +578,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>" + print("Usage: gentypes.py <idl> <header> <header-private> <header-json> <implementation>", file=sys.stderr) 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) f = open(header, "w") @@ -633,7 +635,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 +659,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 +685,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..27bd1053a6 100644 --- a/tools/libxl/idl.py +++ b/tools/libxl/idl.py @@ -1,3 +1,5 @@ +from __future__ import print_function + import sys PASS_BY_VALUE = 1 @@ -11,7 +13,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 @@ -269,7 +271,7 @@ class KeyedUnion(Aggregate): if not isinstance(keyvar_type, Enumeration): raise ValueError - kv_kwargs = dict([(x.lstrip('keyvar_'),y) for (x,y) in kwargs.items() if x.startswith('keyvar_')]) + kv_kwargs = dict([(x.lstrip('keyvar_'),y) for (x,y) in list(kwargs.items()) if x.startswith('keyvar_')]) self.keyvar = Field(keyvar_type, keyvar_name, **kv_kwargs) @@ -315,7 +317,7 @@ class Array(Type): kwargs.setdefault('json_parse_type', 'JSON_ARRAY') Type.__init__(self, namespace=elem_type.namespace, typename=elem_type.rawname + " *", **kwargs) - lv_kwargs = dict([(x.lstrip('lenvar_'),y) for (x,y) in kwargs.items() if x.startswith('lenvar_')]) + lv_kwargs = dict([(x.lstrip('lenvar_'),y) for (x,y) in list(kwargs.items()) if x.startswith('lenvar_')]) self.lenvar = Field(integer, lenvar_name, **lv_kwargs) self.elem_type = elem_type @@ -346,12 +348,12 @@ class OrderedDict(dict): return [(x,self[x]) for x in self.__ordered] def parse(f): - print >>sys.stderr, "Parsing %s" % f + print("Parsing %s" % f, file=sys.stderr) globs = {} locs = OrderedDict() - for n,t in globals().items(): + for n,t in list(globals().items()): if isinstance(t, Type): globs[n] = t elif isinstance(t,type(object)) and issubclass(t, Type): @@ -362,11 +364,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)] -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |