o
0¦isk ã @ s d Z ddlZddlZddlZddlZddlZddlZddlZddlm Z ddl
mZmZm
Z
ddlmZ ddlmZmZ ddlmZ d d
d„ZG dd
„ d
eƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZG dd„ deƒZG dd„ deƒZG dd„ deƒZ G dd„ deƒZ!dS )!z#Guido van Rossum é N)Úchainé )ÚdriverÚtokenizeÚtoken)Ú find_root)ÚpytreeÚpygram)Úbtm_matcherTc C sV t | g g dgƒ}g }t |j¡D ]\}}}| d¡r(|r#|dd … }| |¡ q|S )NÚ*Úfix_é )Ú
__import__ÚpkgutilZiter_modulesÚ__path__Ú
startswithÚappend)Z fixer_pkgZ
remove_prefixZpkgZ fix_namesÚfinderÚnameZispkg© r ú7/opt/alt/python310/lib64/python3.10/lib2to3/refactor.pyÚget_all_fix_names s
€r c @ ó e Zd ZdS )Ú
_EveryNodeN©Ú__name__Ú
__module__Ú__qualname__r r r r r + ó r c C s t | tjtjfƒr| jd u rt‚| jhS t | tjƒr%| jr#t| jƒS t‚t | tj ƒrBt
ƒ }| jD ]}|D ] }| t|ƒ¡ q5q1|S td| ƒ‚)Nz$Oh no! I don't understand pattern %s)
Ú
isinstancer ZNodePatternZLeafPatternÚtyper ZNegatedPatternZcontentÚ_get_head_typesZWildcardPatternÚsetÚupdateÚ Exception)ZpatÚrÚpÚxr r r r! / s"
ÿr! c C s¾ t t¡}g }| D ];}|jr2zt|jƒ}W n ty$ | |¡ Y q
w |D ] }|| |¡ q'q
|jd ur@||j |¡ q
| |¡ q
tt j
j ¡ t j
j
ƒD ] }|| |¡ qQt|ƒS ©N)ÚcollectionsÚdefaultdictÚlistÚpatternr! r r Z_accept_typer r Úpython_grammarZ
symbol2numberÚvaluesÚtokensÚextendÚdict)Z
fixer_listZ
head_nodesZeveryÚfixerZheadsZ node_typer r r Ú_get_headnode_dictK s*
ÿÿ
ÿr3 c s ‡ fdd„t ˆ dƒD ƒS )Nc s g | ]}ˆ d | ‘qS ©Ú.r )Ú.0Úfix_name©Zpkg_namer r Ú
h s ÿz+get_fixers_from_package..F)r r8 r r8 r Úget_fixers_from_packaged s
ÿr: c C s | S r( r )Úobjr r r Ú _identityk s r<