a
XC?hsk ã @ 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 sT t | g g dgƒ}g }t |j¡D ].\}}}| d¡r |rD|dd … }| |¡ q |S )NÚ*Úfix_é )Ú
__import__ÚpkgutilZiter_modulesÚ__path__Ú
startswithÚappend)Z fixer_pkgZ
remove_prefixZpkgZ fix_namesÚfinderÚnameZispkg© r ú5/opt/alt/python39/lib64/python3.9/lib2to3/refactor.pyÚget_all_fix_names s
r c @ s e Zd ZdS )Ú
_EveryNodeN©Ú__name__Ú
__module__Ú__qualname__r r r r r + s r c C s’ t | tjtjfƒr(| jd u r t‚| jhS t | tjƒrH| jrDt| jƒS t‚t | tj ƒr‚t
ƒ }| jD ]}|D ]}| t|ƒ¡ qhq`|S td| ƒ‚d S )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 ]v}|jrbzt|jƒ}W n tyF | |¡ Y qˆ0 |D ]}|| |¡ qLq|jd ur~||j |¡ q| |¡ qtt j
j ¡ t j
j
ƒD ]}|| |¡ q t|ƒ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$
ÿr1 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 r6 r r6 r Úget_fixers_from_packaged s
ÿr8 c C s | S r&