Issue 22294: 2to3 consuming_calls: len, min, max, zip, map, reduce, filter, dict, xrange - Python tracker

This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
process
Status: closed Resolution: wont fix
Dependencies: Superseder: Close 2to3 issues and list them here
View: 45544
Assigned To: Nosy List: Roy Williams, benjamin.peterson, eddygeek
Priority: normal Keywords: patch

Created on 2014-08-28 11:43 by eddygeek, last changed 2022-04-11 14:58 by admin. This issue is now closed.

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