Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
3b59f332
Commit
3b59f332
authored
Mar 07, 2011
by
Benjamin Peterson
Browse files
Options
Browse Files
Download
Plain Diff
merge 3.1
parents
9f9991c2
49d7149e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
32 additions
and
16 deletions
+32
-16
Lib/lib2to3/fixes/fix_itertools.py
Lib/lib2to3/fixes/fix_itertools.py
+3
-2
Lib/lib2to3/fixes/fix_itertools_imports.py
Lib/lib2to3/fixes/fix_itertools_imports.py
+3
-2
Lib/lib2to3/tests/test_fixers.py
Lib/lib2to3/tests/test_fixers.py
+26
-12
No files found.
Lib/lib2to3/fixes/fix_itertools.py
View file @
3b59f332
...
...
@@ -13,7 +13,7 @@ from ..fixer_util import Name
class
FixItertools
(
fixer_base
.
BaseFix
):
BM_compatible
=
True
it_funcs
=
"('imap'|'ifilter'|'izip'|'ifilterfalse')"
it_funcs
=
"('imap'|'ifilter'|'izip'|'i
zip_longest'|'i
filterfalse')"
PATTERN
=
"""
power< it='itertools'
trailer<
...
...
@@ -28,7 +28,8 @@ class FixItertools(fixer_base.BaseFix):
def
transform
(
self
,
node
,
results
):
prefix
=
None
func
=
results
[
'func'
][
0
]
if
'it'
in
results
and
func
.
value
!=
'ifilterfalse'
:
if
(
'it'
in
results
and
func
.
value
not
in
(
'ifilterfalse'
,
'izip_longest'
)):
dot
,
it
=
(
results
[
'dot'
],
results
[
'it'
])
# Remove the 'itertools'
prefix
=
it
.
prefix
...
...
Lib/lib2to3/fixes/fix_itertools_imports.py
View file @
3b59f332
...
...
@@ -31,9 +31,10 @@ class FixItertoolsImports(fixer_base.BaseFix):
if
member_name
in
(
'imap'
,
'izip'
,
'ifilter'
):
child
.
value
=
None
child
.
remove
()
elif
member_name
==
'ifilterfalse'
:
elif
member_name
in
(
'ifilterfalse'
,
'izip_longest'
)
:
node
.
changed
()
name_node
.
value
=
'filterfalse'
name_node
.
value
=
(
'filterfalse'
if
member_name
[
1
]
==
'f'
else
'zip_longest'
)
# Make sure the import statement is still sane
children
=
imports
.
children
[:]
or
[
imports
]
...
...
Lib/lib2to3/tests/test_fixers.py
View file @
3b59f332
...
...
@@ -3623,16 +3623,24 @@ class Test_itertools(FixerTestCase):
a
=
"""%s(f, a)"""
self
.
checkall
(
b
,
a
)
def
test_
2
(
self
):
def
test_
qualified
(
self
):
b
=
"""itertools.ifilterfalse(a, b)"""
a
=
"""itertools.filterfalse(a, b)"""
self
.
check
(
b
,
a
)
def
test_4
(
self
):
b
=
"""itertools.izip_longest(a, b)"""
a
=
"""itertools.zip_longest(a, b)"""
self
.
check
(
b
,
a
)
def
test_2
(
self
):
b
=
"""ifilterfalse(a, b)"""
a
=
"""filterfalse(a, b)"""
self
.
check
(
b
,
a
)
b
=
"""izip_longest(a, b)"""
a
=
"""zip_longest(a, b)"""
self
.
check
(
b
,
a
)
def
test_space_1
(
self
):
b
=
""" %s(f, a)"""
a
=
""" %s(f, a)"""
...
...
@@ -3643,9 +3651,14 @@ class Test_itertools(FixerTestCase):
a
=
""" itertools.filterfalse(a, b)"""
self
.
check
(
b
,
a
)
b
=
""" itertools.izip_longest(a, b)"""
a
=
""" itertools.zip_longest(a, b)"""
self
.
check
(
b
,
a
)
def
test_run_order
(
self
):
self
.
assert_runs_after
(
'map'
,
'zip'
,
'filter'
)
class
Test_itertools_imports
(
FixerTestCase
):
fixer
=
'itertools_imports'
...
...
@@ -3696,18 +3709,19 @@ class Test_itertools_imports(FixerTestCase):
s
=
"from itertools import bar as bang"
self
.
unchanged
(
s
)
def
test_ifilter
(
self
):
b
=
"from itertools import ifilterfalse"
a
=
"from itertools import filterfalse"
self
.
check
(
b
,
a
)
def
test_ifilter_and_zip_longest
(
self
):
for
name
in
"filterfalse"
,
"zip_longest"
:
b
=
"from itertools import i%s"
%
(
name
,)
a
=
"from itertools import %s"
%
(
name
,)
self
.
check
(
b
,
a
)
b
=
"from itertools import imap, ifilterfalse, foo"
a
=
"from itertools import filterfalse, foo"
self
.
check
(
b
,
a
)
b
=
"from itertools import imap, i%s, foo"
%
(
name
,)
a
=
"from itertools import %s, foo"
%
(
name
,)
self
.
check
(
b
,
a
)
b
=
"from itertools import bar, ifilterfalse, foo"
a
=
"from itertools import bar, filterfalse, foo"
self
.
check
(
b
,
a
)
b
=
"from itertools import bar, i%s, foo"
%
(
name
,)
a
=
"from itertools import bar, %s, foo"
%
(
name
,)
self
.
check
(
b
,
a
)
def
test_import_star
(
self
):
s
=
"from itertools import *"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment