o
    §4^c&  ã                   @   s:   d Z ddlmZ ddlmZmZmZ G dd„ dejƒZdS )zA Fixer for imports of itertools.(imap|ifilter|izip|ifilterfalse) é    )Ú
fixer_base)Ú	BlankLineÚsymsÚtokenc                   @   s"   e Zd ZdZdeƒ  Zdd„ ZdS )ÚFixItertoolsImportsTzT
              import_from< 'from' 'itertools' 'import' imports=any >
              c                 C   sr  |d }|j tjks|js|g}n|j}|d d d… D ]F}|j tjkr)|j}|}n|j tjkr2 d S |j tjks:J ‚|jd }|j}|dv rNd |_| ¡  q|dv ra| 	¡  |d dkr^dnd	|_q|jd d … pk|g}d
}	|D ]}|	r|j tj
kr| ¡  qp|	d
N }	qp|rž|d j tj
krž| ¡  ¡  |rž|d j tj
ksŽ|js§t|dd ƒr¬|jd u r·|j}
tƒ }|
|_|S d S )NÚimportsé   r   )ÚimapÚizipÚifilter)ÚifilterfalseÚizip_longesté   ÚfÚfilterfalseÚzip_longestTéÿÿÿÿÚvalue)Útyper   Úimport_as_nameÚchildrenr   ÚNAMEr   ÚSTARÚremoveÚchangedÚCOMMAÚpopÚgetattrÚparentÚprefixr   )ÚselfÚnodeÚresultsr   r   ÚchildÚmemberÚ	name_nodeÚmember_nameÚremove_commaÚp© r)   ú:/usr/lib/python3.10/lib2to3/fixes/fix_itertools_imports.pyÚ	transform   sL   

ÿ€

ÿ
üzFixItertoolsImports.transformN)Ú__name__Ú
__module__Ú__qualname__ÚBM_compatibleÚlocalsÚPATTERNr+   r)   r)   r)   r*   r      s    þr   N)	Ú__doc__Úlib2to3r   Úlib2to3.fixer_utilr   r   r   ÚBaseFixr   r)   r)   r)   r*   Ú<module>   s    