U
    n/e
                     @   s   d dl mZ d dl mZ d dl mZ d dl mZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZ d	d
lmZ d	dlmZmZmZmZ d	dlmZmZmZ eeeeeeeeeeeeeeiZG dd de
ZdS )    )check_for_200_error)inject_presigned_url_ec2)inject_presigned_url_rds)parse_get_bucket_location)HierarchicalEmitterlogger)add_generate_db_auth_token)add_generate_presigned_post)add_generate_presigned_url   )resolve_awaitable)r   r   r   r   )r   r	   r
   c                   @   s&   e Zd Zd	ddZdd Zdd ZdS )
AioHierarchicalEmitterFc                    s   g }| j |}|d kr0| j|}|| j |< n|s8g S ||d< g }|D ]H}td|| t|f |I d H }|||f |rH|d k	rH|  S qH|S )N
event_namezEvent %s: calling handler %s)Z_lookup_cacheget	_handlersZprefix_searchr   debugr   append)selfr   kwargsstop_on_response	responsesZhandlers_to_callhandlerresponse r   5/tmp/pip-unpacked-wheel-8mnez3y6/aiobotocore/hooks.py_emit/   s     
zAioHierarchicalEmitter._emitc                    s*   | j ||ddI d H }|r"|d S dS d S )NT)r   )NN)r   )r   r   r   r   r   r   r   emit_until_responseH   s    z*AioHierarchicalEmitter.emit_until_responsec                 C   s2   t ||}| | | | ||||| d S )N)_HANDLER_MAPPINGr   Z_verify_is_callableZ_verify_accept_kwargs)r   r   r   Z	unique_idZregister_methodZunique_id_uses_countr   r   r   _verify_and_registerO   s    

z+AioHierarchicalEmitter._verify_and_registerN)F)__name__
__module____qualname__r   r   r   r   r   r   r   r   .   s   
r   N)Zbotocore.handlersr   Zboto_check_for_200_errorr   Zboto_inject_presigned_url_ec2r   Zboto_inject_presigned_url_rdsr   Zboto_parse_get_bucket_locationZbotocore.hooksr   r   Zbotocore.signersr   Zboto_add_generate_db_auth_tokenr	   Z boto_add_generate_presigned_postr
   Zboto_add_generate_presigned_urlZ_helpersr   handlersZsignersr   r   r   r   r   r   <module>   s4          