U
if @ sJ d dl mZ d dlmZmZmZmZmZmZ dZ dZ
G dd dejZdS ) )
fixer_base)CallCommaNameNode BlankLinesymsz0(n='!=' | '==' | 'is' | n=comp_op< 'is' 'not' >)z(power< 'type' trailer< '(' x=any ')' > >c sP e Zd ZdZdeeeef Z fddZdd Zdd Z d d
Z
dd Z ZS )
FixIdiomsTa
isinstance=comparison< %s %s T=any >
|
isinstance=comparison< T=any %s %s >
|
while_stmt< 'while' while='1' ':' any+ >
|
sorted=any<
any*
simple_stmt<
expr_stmt< id1=any '='
power< list='list' trailer< '(' (not arglist) any ')' > >
>
'\n'
>
sort=
simple_stmt<
power< id2=any
trailer< '.' 'sort' > trailer< '(' ')' >
>
'\n'
>
next=any*
>
|
sorted=any<
any*
simple_stmt< expr_stmt< id1=any '=' expr=any > '\n' >
sort=
simple_stmt<
power< id2=any
trailer< '.' 'sort' > trailer< '(' ')' >
>
'\n'
>
next=any*
>
c s8 t t| |}|r4d|kr4|d |d kr0|S d S |S )NsortedZid1Zid2)superr match)selfnoder __class__ =/opt/alt/python38/lib64/python3.8/lib2to3/fixes/fix_idioms.pyr O s zFixIdioms.matchc C sH d|kr| ||S d|kr(| ||S d|kr<| ||S tdd S )N
isinstancewhiler
z
Invalid match)transform_isinstancetransform_whiletransform_sortRuntimeError)r
r resultsr r r transformZ s zFixIdioms.transformc C sh |d }|d }d|_d|_ttd|t |g}d|kr\d|_ttjtd|g}|j|_|S )NxT r nnot)cloneprefixr r r r r Znot_test)r
r r r r Ztestr r r r d s zFixIdioms.transform_isinstancec C s |d }| td|jd d S )Nr Truer# )replacer r# )r
r r Zoner r r r p s zFixIdioms.transform_whilec C s |d }|d }| d}| d}|r>|td|jd n8|rn| }d|_|ttd|g|jd ntd| |j}d |kr|r|d d
|d
jf} d | |d
_n"t
}
|j|
|d d
|
_d S )Nsortnextlistexprr
r% r zshould not have reached here
)
getr&