[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
This commit is contained in:
xmo-odoo
2017-05-10 09:39:55 +02:00
committed by GitHub
parent 10eee18a04
commit fffaf735f5
237 changed files with 1160 additions and 953 deletions
+1 -1
View File
@@ -153,7 +153,7 @@ def main():
elif len(sys.argv) == 2 and sys.argv[1] in cmds:
cmds[sys.argv[1]]()
else:
sys.exit('Unknow command. Command available: %r' % (cmds.keys(),))
sys.exit('Unknow command. Command available: %r' % (list(cmds,))
if __name__ == "__main__":
main()