3
\& ã @ s: d Z ddlmZ ddlmZmZmZ G dd„ dejƒZdS )zA Fixer for imports of itertools.(imap|ifilter|izip|ifilterfalse) é )Ú
fixer_base)Ú BlankLineÚsymsÚtokenc @ s" e Zd ZdZdeƒ Zdd„ ZdS )ÚFixItertoolsImportsTzT
import_from< 'from' 'itertools' 'import' imports=any >
c C s~ |d }|j tjks|j r$|g}n|j}xœ|d d d… D ]Š}|j tjkrV|j}|}n*|j tjkrfd S |j tjksvt‚|jd }|j}|dkržd |_|j ƒ q:|dkr:|j
ƒ |d d
kr¾dnd|_q:W |jd d … pÚ|g}d
} x2|D ]*}| �r|j tjk�r|j ƒ qæ| d
N } qæW x*|�r>|d j tjk�r>|jƒ j ƒ �qW |j�pRt
|dd ƒ �sd|jd k�rz|j}
tƒ }|
|_|S d S )NÚimportsé r ÚimapÚizipÚifilterÚifilterfalseÚizip_longesté ÚfÚfilterfalseÚzip_longestTÚvalue)r r
r )r r
éÿÿÿÿ)Útyper Zimport_as_nameÚchildrenr ÚNAMEr ÚSTARÚAssertionErrorÚremoveZchangedÚCOMMAÚpopÚgetattrÚparentÚprefixr )ÚselfZnodeZresultsr r ZchildÚmemberZ name_nodeÚmember_nameZremove_commaÚp© r# ú;/usr/lib64/python3.6/lib2to3/fixes/fix_itertools_imports.pyÚ transform sD
zFixItertoolsImports.transformN)Ú__name__Ú
__module__Ú__qualname__Z
BM_compatibleÚlocalsZPATTERNr% r# r# r# r$ r s
r N) Ú__doc__Zlib2to3r Zlib2to3.fixer_utilr r r ZBaseFixr r# r# r# r$ Ú