From fffaf735f58f1ac57781c095eb552de6d1fcdc47 Mon Sep 17 00:00:00 2001 From: xmo-odoo Date: Wed, 10 May 2017 09:39:55 +0200 Subject: [FIX] P3: list -> iterable builtins (#16811) In Python 3: * various builtins and dict methods were changed to return view/iterable objects rather than lists * and the separate Python 2 view/iterable builtins and methods were removed altogether This is problematic when using these items as list (which the happens repeatedly in Odoo), but more viciously when iterating *multiple times* over them (which also happens, which I've messed up multiple times while writing this, and which is a pain to debug even when you've just created the issue). Convert all code using these to semantics-matching cross-version helper functions to get the LCD behaviour between P2 and P3, and forbid the builtins via lint. issue #8530 --- setup.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'setup.py') diff --git a/setup.py b/setup.py index 2fce5faa39d..465f40b1f0a 100644 --- a/setup.py +++ b/setup.py @@ -24,9 +24,9 @@ def py2exe_datafiles(): import babel data_files['babel/localedata'] = glob(join(dirname(babel.__file__), 'localedata', '*')) others = ['global.dat', 'numbers.py', 'support.py', 'plural.py'] - data_files['babel'] = map(lambda f: join(dirname(babel.__file__), f), others) + data_files['babel'] = [join(dirname(babel.__file__), f) for f in others] others = ['frontend.py', 'mofile.py'] - data_files['babel/messages'] = map(lambda f: join(dirname(babel.__file__), 'messages', f), others) + data_files['babel/messages'] = [join(dirname(babel.__file__), 'messages', f) for f in others] import pytz tzdir = dirname(pytz.__file__) @@ -51,7 +51,7 @@ def py2exe_datafiles(): for f in filenames if not f.endswith(('.py', '.pyc', '.pyo'))] - return data_files.items() + return list(data_files.items()) def py2exe_options(): @@ -128,7 +128,7 @@ setup( url=url, author=author, author_email=author_email, - classifiers=filter(None, classifiers.split('\n')), + classifiers=[c for c in classifiers.split('\n') if c], license=license, scripts=['setup/odoo'], packages=find_packages(), -- cgit v1.2.3