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 --- odoo/tools/float_utils.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'odoo/tools/float_utils.py') diff --git a/odoo/tools/float_utils.py b/odoo/tools/float_utils.py index 8c71d7a29b2..fa150a1d902 100644 --- a/odoo/tools/float_utils.py +++ b/odoo/tools/float_utils.py @@ -217,10 +217,10 @@ if __name__ == "__main__": fractions = [.0, .015, .01499, .675, .67499, .4555, .4555, .45555] expecteds = ['.00', '.02', '.01', '.68', '.67', '.46', '.456', '.4556'] precisions = [2, 2, 2, 2, 2, 2, 3, 4] - for magnitude in pycompat.range(7): - for frac, exp, prec in zip(fractions, expecteds, precisions): + for magnitude in range(7): + for frac, exp, prec in pycompat.izip(fractions, expecteds, precisions): for sign in [-1,1]: - for x in pycompat.range(0, 10000, 97): + for x in range(0, 10000, 97): n = x * 10**magnitude f = sign * (n + frac) f_exp = ('-' if f != 0 and sign == -1 else '') + str(n) + exp -- cgit v1.2.3