classification
Title: 2to3 consuming_calls: len, min, max, zip, map, reduce, filter, dict, xrange
Type: enhancement Stage:
Components: 2to3 (2.x to 3.x conversion tool) Versions: Python 3.4, Python 3.5, Python 2.7
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: Roy Williams, benjamin.peterson, eddygeek
Priority: normal Keywords: patch

Created on 2014-08-28 11:43 by eddygeek, last changed 2016-12-09 02:37 by BreamoreBoy.

Files
File name Uploaded Description Edit
2to3_more_consuming_calls.diff eddygeek, 2014-08-28 11:43 patch on current cpython tip (4fc575d55e2b) review
Repositories containing patches
ssh://hg@bitbucket.org/eddygeek/cpython
Messages (1)
msg226019 - (view) Author: Edward O (eddygeek) * Date: 2014-08-28 11:43
This is a patch for issues similar to #16573
With this patch, the following new tests are now unchanged:

r = dict(zip(s, range(len(s))), **d)
r = len(filter(attrgetter('t'), self.a))
r = min(map(methodcaller('f'), self.a))
max(map(node.id, self.nodes)) + 1 if self.nodes else 0
reduce(set.union, map(f, self.a))

Note that as part of the patch, the range transformation now calls the generic in_special_context in addition to the customized one (which. I guess, should be removed, but I didn't dare).

All existing tests pass, but the patterns used may not be strict enough, though I tried to stick to how it was done for other consuming calls.

M Lib/lib2to3/fixer_util.py
M Lib/lib2to3/fixes/fix_xrange.py
M Lib/lib2to3/tests/test_fixers.py
History
Date User Action Args
2016-12-09 02:37:20BreamoreBoysetnosy: - BreamoreBoy
2016-12-09 00:38:46Roy Williamssetnosy: + Roy Williams
2014-10-07 09:06:04eddygeeksetnosy: + BreamoreBoy
2014-08-29 20:37:27terry.reedysetversions: - Python 3.1, Python 3.2, Python 3.3
2014-08-28 12:25:48eddygeeksetnosy: + benjamin.peterson
2014-08-28 11:43:01eddygeekcreate