Your IP : 216.73.217.32


Current Path : /opt/alt/python37/lib/python3.7/site-packages/pylint/checkers/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib/python3.7/site-packages/pylint/checkers/__pycache__/async.cpython-37.pyc

B

A!p\�
�@s�dZddlZddlZddlmZddlmZddlmZddlmZ	ddlm
Z
ddlmZddlmZGd	d
�d
ej
�Zdd�ZdS)
z=Checker for anything related to the async protocol (PEP 492).�N)�bases)�
exceptions)�checkers)�utils)�
interfaces)�decorated_withc@sdeZdZejZdZdddddifddd	ddifd
�Zdd�Ze	�
d�d
d��Ze	�
d�dd��ZdS)�AsyncChecker�asynczYield inside async functionzyield-inside-async-functionzQUsed when an `yield` or `yield from` statement is found inside an async function.Z
minversion)��zFAsync context manager '%s' doesn't implement __aenter__ and __aexit__.znot-async-context-managerzxUsed when an async context manager is used with an object that does not implement the async context management protocol.)ZE1700ZE1701cCst�|d�|_dg|_dS)Nzignore-mixin-memberszcontextlib.asynccontextmanager)rZget_global_option�_ignore_mixin_members�_async_generators)�self�r�F/opt/alt/python37/lib/python3.7/site-packages/pylint/checkers/async.py�open*s
zAsyncChecker.opencCsRxL|�tj�D]<}|��|krtjdd�dks<t|tj�r|jd|d�qWdS)N�)r
rzyield-inside-async-function)�node)	Znodes_of_class�astroidZYieldZscope�sys�version_info�
isinstanceZ	YieldFrom�add_message)rr�childrrr�visit_asyncfunctiondef0sz#AsyncChecker.visit_asyncfunctiondefc	Cs�x�|jD]�\}}t�|�}|dks|tjkr.qt|tj�rLt|j	|j
�r�qnhy|�d�|�d�Wqtj
k
r�t|tj�r�t�|�s�w|jr�|jdd���dkr�wYnXq|jd||jfd�qWdS)N�
__aenter__�	__aexit__���Zmixinznot-async-context-manager)r�args)�items�
checker_utilsZ
safe_inferrZUninferablerr�AsyncGeneratorr�parentr
�getattrrZ
NotFoundErrorZInstanceZhas_known_basesr�name�lowerr)rrZctx_mgr�_�inferredrrr�visit_asyncwith8s(


zAsyncChecker.visit_asyncwithN)
�__name__�
__module__�__qualname__rZIAstroidCheckerZ__implements__r$Zmsgsrr Zcheck_messagesrr(rrrrrsrcCs|�t|��dS)z-required method to auto register this checkerN)Zregister_checkerr)Zlinterrrr�registerZsr,)�__doc__rrrr�pylintrZpylint.checkersrr rZpylint.checkers.utilsrZBaseCheckerrr,rrrr�<module>sD