[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-next RFC 2/4] libxl: make python scripts work with python 2 and 3
On Tue, Mar 05, 2019 at 05:34:13PM +0000, Andrew Cooper wrote: > On 05/03/2019 16:42, Wei Liu wrote: > > 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? > > The compatible way to do this is sys.stderr.write(msg + "\n") and using > print() without the future import. > > > @@ -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_')]) > > This shouldn't need changing. List comprehensions are one of the few > uses of .items() which is compatible with older versions of python IIRC. > > > @@ -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: > > This is the only really awkward bit, and isn't Py 2.4 compatible. > > The only option here to retain pre 2.6 compatibility is: > > try: > ... > except SyntaxError: > _, e = sys.exc_info()[:2] > ... Since we will bump python requirement to 2.6, I think the transformation made by 2to3 should be fine. Wei. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |