o !Qd8@sd ddlmZddlmZddlmZmZmZmZm Z ddl m Z ddl mZGdddejZdS) )token) fixer_base)NameArgListCallListCompin_special_context)python_symbols)Nodec@s eZdZdZdZdZddZdS)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|vr|dD] }||q|jjtjkr8||d|}d|_t t d|g}nd|vrZt |d|d|d}t tj |g|dd }nkd |vrh|d }d|_nKd |vr|d }|jtjkr|jd jtjkr|jd jdjtjkr|jd jdjdkr||ddSt tj t d|g}d|_t|rdSt tj t dt|gg|}d|_|j|_|S)NZextra_trailerszYou should use a for loop herelistZ map_lambdaZxpfpit)prefixZmap_noneargargsNonezjcannot convert map(None, ...) with multiple arguments because map() now truncates to the shortest sequencemap)Z should_skipappendZcloneparenttypesymsZ simple_stmtZwarningrrrrr ZpowerZtrailerchildrenZarglistrNAMEvaluerr)selfZnodeZresultsZtrailerstnewrr!s