Your IP : 3.140.185.250
U
e5dk � @ 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 <guido@python.org>� 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 �(/usr/lib64/python3.8/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 kr 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 ]x}|jrdzt|j�}W n tk
rH |�|� Y q�X |D ]}|| �|� qNq|jd k r�||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 �
<listcomp>h s �z+get_fixers_from_package.<locals>.<listcomp>F)r r6 r r6 r �get_fixers_from_packaged s
�r8 c C s | S r&