a XC?h8�@sbddlmZddlmZddlmZmZmZmZm Z ddl m Z ddl mZGdd�dej�ZdS) �)�token)� fixer_base)�Name�ArgList�Call�ListComp�in_special_context)�python_symbols)�Nodec@s eZdZdZdZdZdd�ZdS)�FixMapTaL map_none=power< 'map' trailer< '(' arglist< 'None' ',' arg=any [','] > ')' > [extra_trailers=trailer*] > | map_lambda=power< 'map' trailer< '(' arglist< lambdef< 'lambda' (fp=NAME | vfpdef< '(' fp=NAME ')'> ) ':' xp=any > ',' it=any > ')' > [extra_trailers=trailer*] > | power< 'map' args=trailer< '(' [any] ')' > [extra_trailers=trailer*] > zfuture_builtins.mapcCs�|�|�rdSg}d|vr6|dD]}|�|���q"|jjtjkrr|�|d�|��}d|_t t d�|g�}�n&d|vr�t |d��|d��|d���}t tj |g|dd �}n�d |vr�|d ��}d|_n�d |v�rf|d }|jtjk�rH|jd jtjk�rH|jd jdjtjk�rH|jd jdjdk�rH|�|d�dSt tj t d�|��g�}d|_t|��rtdSt tj t d�t|g�g|�}d|_|j|_|S)NZextra_trailerszYou should use a for loop here��listZ map_lambdaZxp�fp�it)�prefixZmap_none�arg�args���Nonezjcannot convert map(None, ...) with multiple arguments because map() now truncates to the shortest sequence�map)Z should_skip�appendZclone�parent�type�symsZ simple_stmtZwarningrrrrr ZpowerZtrailerZchildrenZarglistr�NAME�valuerr)�selfZnodeZresultsZtrailers�t�newr�r �:/opt/alt/python39/lib64/python3.9/lib2to3/fixes/fix_map.py� transform@sN      �  ���  zFixMap.transformN)�__name__� __module__� __qualname__Z BM_compatibleZPATTERNZskip_onr"r r r r!r sr N)Zpgen2rr rZ fixer_utilrrrrrZpygramr rZpytreer ZConditionalFixr r r r r!�s