Your IP : 216.73.216.213
B
A!p\>� � @ s d Z ddlZddlmZmZ ddlZddlZddlZddlZddl Z ddl
mZmZm
Z
mZmZmZmZmZmZ ddlZddlZddlmZ ddlmZ ddlmZ ejZejejejej fZ!ej"d dkZ#e#s�d Z$nd
Z$ddd
dhZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.ddddddd�Z/dd � e/�0� D �Z1e2e1�Z3G d!d"� d"e4�Z5d#d$� Z6ej7j8e9d%�d&d'�Z:ej7j8eej7j8 d%�d(d)�Z;ej7j8e
e9e
e<e<f f d%�d*d+�Z=ej7j8e9d%�d,d-�Z>ej7j8e9d%�d.d/�Z?ej@�A� Zd0ZBej7j8e9d%�d1d2�ZCe<e9d3�d4d5�ZDej7j8e<ej7j8e9d6�d7d8�ZEej7j8e9d9�d:d;�ZFej7j8e9d%�d<d=�ZGej7j8e9d%�d>d?�ZHej7j8ej7j8e9d@�dAdB�ZIej7j8ej7j8d%�dCdD�ZJej7j8e<e9dE�dFdG�ZKe<edH�dIdJ�ZLG dKdL� dLe4�ZMG dMdN� dNe4�ZNe<e
ee< eOee<e<f ee< f dO�dPdQ�ZPe
e<ee
e9e<f f dR�dSdT�ZQeee< dR�dUdV�ZRe<e
ee
e<ee
e9e<f f eOeOf dO�dWdX�ZSe<e9dY�dZd[�ZTej7j8eej7j8 d%�d\d]�ZUe<eee< dY�d^d_�ZVd�ejWeOe<ejXd`�dadb�ZYej7j8e9d%�dcdd�ZZej[e9de�dfdg�Z\ej]e9d%�dhdi�Z^ejXe9dj�dkdl�Z_ej]ee< e9dm�dndo�Z`edpdq�d�ej7j8ej]ee<ej7j8f dr�dsdt��Zaej7j8eej[ejbf d%�dudv�Zcej7j8e9d%�dwdx�Zdej[e9dy�dzd{�Zee4fej7j8eej[ d%�d|d}�Zfejge9d%�d~d�Zhe4fej7j8e9d%�d�d��Ziejje9d%�d�d��Zkej7j8e<e9d��d�d��Zlej7j8e9d%�d�d��Zmej7j8e9d��d�d��Znej7j8e9d��d�d��Zoej7j8e9d��d�d��Zpej7j8e9d��d�d��Zqej7j8e9d��d�d��Zrej7j8e9d��d�d��Zsej7j8e9d��d�d��Zte<e9d3�d�d��Zuej7j8e9d%�d�d��Zvej7j8ej]e9d��d�d��Zwd�ej7j8e9e9d��d�d��Zxej7j8e9d��d�d��Zyej7j8e9d��d�d��Zzej7j8e9d��d�d��Z{ej7j8e9d��d�d��Z|ej7j8e9d��d�d��Z}edpdq�d�ej7j8eej7j8 d%�d�d���Z~d�ejje9d��d�d��Zej7j8e9d%�d�d��Z�ej7j8ee� d%�d�d��Z�ej]e9d%�d�d��Z�ej7j8eOd%�d�d��Z�ej7j8e9d%�d�d��Z�ejjejje9d��d�d��Z�dS )�z7some functions that may be useful for various checkers
� N)� lru_cache�partial) �Optional�Iterable�Tuple�Callable�Set�Union�Match�Dict�List)�_NonDeducibleTypeHierarchy)�bases)�scoped_nodes� �
exceptions�builtinszabc.abstractpropertyzabc.abstractmethodzabc.abstractclassmethodzabc.abstractstaticmethod�__iter__� __aiter__�__next__�__getitem__�__class_getitem__�__setitem__�__delitem__�__contains__�keys)�__new__�__init__�__call__)&�__del__�__repr__�__str__� __bytes__�__hash__�__bool__�__dir__�__len__�__length_hint__r �__reversed__�__neg__�__pos__�__abs__�
__invert__�__complex__�__int__� __float__r) r* r+ r- r. r/ � __index__� __enter__�
__aenter__�__getnewargs_ex__�__getnewargs__�__getstate__�
__reduce__�__copy__�__unicode__�__nonzero__� __await__r � __anext__�
__fspath__)<�
__format__�__lt__�__le__�__eq__�__ne__�__gt__�__ge__�__getattr__�__getattribute__�__delattr__�
__delete__�__instancecheck__�__subclasscheck__r �__missing__r r �__add__�__sub__�__mul__�__truediv__�__floordiv__�__mod__�
__divmod__�
__lshift__�
__rshift__�__and__�__xor__�__or__�__radd__�__rsub__�__rmul__�__rtruediv__�__rmod__�__rdivmod__�__rpow__�__rlshift__�__rrshift__�__rand__�__rxor__�__ror__�__iadd__�__isub__�__imul__�__itruediv__�
__ifloordiv__�__imod__�__ilshift__�__irshift__�__iand__�__ixor__�__ior__�__ipow__�__setstate__�
__reduce_ex__�__deepcopy__Z__cmp__�
__matmul__�__rmatmul__Z__div__)�__setattr__�__get__�__set__r �__set_name__)�__exit__� __aexit__)� __round__)Nr � � r )r r{ c C s i | ]\}}|D ]
}||�qqS � r} )�.0�params�methods�namer} r} �F/opt/alt/python37/lib/python3.7/site-packages/pylint/checkers/utils.py�
<dictcomp>� s r� c @ s e Zd ZdS )�NoSuchArgumentErrorN)�__name__�
__module__�__qualname__r} r} r} r� r� � s r� c C s2 | }x|r t |jtj�s |j}qW |o0||jjkS )z=Returns true if node is inside the name of an except handler.)�
isinstance�parent�astroid�
ExceptHandlerr� )�node�currentr} r} r� �is_inside_except� s
r� )r� �returnc C s. | j }x"|dk r(t|tj�r dS |j }qW dS )z*Return true if given node is inside lambdaNTF)r� r� r� �Lambda)r� r� r} r} r� �is_inside_lambda� s
r� c c sF t | tjtjf�r<x.| jD ]}xt|�D ]
}|V q(W qW n| V dS )z9Recursively returns all atoms in nested lists and tuples.N)r� r� r r Zelts�get_all_elements)r� �child�er} r} r� r� � s
r� c C s� t | tj�r&d| jd| j�� f ffS t | tj�r�| j}t|�rLd|dffS | � |�d }|r�t |d �
� tjtjtj
f�s�d|d|d j ffS dS )z�Checks if an assignment node in an except handler clobbers an existing
variable.
Returns (True, args for W0623) if assignment clobbers an existing variable,
(False, None) otherwise.
Tz object %rr r{ r zouter scope (line %s))FN)r� r� Z
AssignAttr�attrname�expr� as_string�
AssignNamer� �
is_builtin�lookupZassign_type�AssignZ AugAssignr� �
fromlineno)r� r� Zstmtsr} r} r� �clobber_in_except� s
r� c C s&