a
    ze8                     @   sb   d dl mZ d dlmZ d dlmZmZmZmZm	Z	 d dl
mZ d dlmZ G dd dejZdS )	   )token)
fixer_base)NameArgListCallListCompin_special_context)python_symbols)Nodec                   @   s    e Zd ZdZdZdZdd ZdS )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*]
    >
    zfuture_builtins.mapc                 C   s  |  |rd S g }d|v r6|d D ]}||  q"|jjtjkrr| |d | }d|_t	t
d|g}n&d|v rt|d  |d  |d  }ttj|g| dd	}nd
|v r|d  }d|_nd|v rf|d }|jtjkrH|jd jtjkrH|jd jd jtjkrH|jd jd jdkrH| |d d S ttjt
d| g}d|_t|rtd S ttjt
dt|gg| }d|_|j|_|S )NZextra_trailerszYou should use a for loop here listZ
map_lambdaZxpfpit)prefixZmap_noneargargs       Nonezjcannot convert map(None, ...) with multiple arguments because map() now truncates to the shortest sequencemap)Zshould_skipappendZcloneparenttypesymsZsimple_stmtwarningr   r   r   r   r
   ZpowerZtrailerZchildrenZarglistr   NAMEvaluer   r   )selfZnoderesultsZtrailerstnewr    r"   +/usr/lib/python3.9/lib2to3/fixes/fix_map.py	transform@   sN    




zFixMap.transformN)__name__
__module____qualname__ZBM_compatibleZPATTERNZskip_onr$   r"   r"   r"   r#   r      s   r   N)Zpgen2r   r   r   Z
fixer_utilr   r   r   r   r   Zpygramr	   r   Zpytreer
   ZConditionalFixr   r"   r"   r"   r#   <module>   s
   