U
    d                     @   s`   d Z ddlmZmZmZ ddlmZ dd Zdd Zdd	 Z	d
d Z
dd Zdd Zdd ZdS )zEvent-loop debugging tools.    )ERRREADWRITE)reprcallc                 C   s2   d | t@ rdnd| t@ rdnd| t@ r,dndS )z&Return description of event loop flag.z{}{}{}R W!)formatr   r   r   )flag r   </tmp/pip-unpacked-wheel-hqfrjlvz/kombu/asynchronous/debug.py	repr_flag   s    r   c                 C   s@   | d krdS t | tr| S t | tr:| \}}t|j|dS | jS )Nz	<missing>)args)
isinstancestrtupler   __name__)objcbr   r   r   r   _rcb   s    

r   c                 C   s   d t| t|  S )z1Return description of active readers and writers., )joinrepr_readersrepr_writershr   r   r   repr_active   s    r   c                    s   d  fdd|D S )z.Return description of events returned by poll.r   c              	   3   s2   | ]*\}}d  tt ||d|t|V  qdS )z
{}({})->{}z(GONE)N)r
   r   callback_forr   ).0fdflr   r   r   	<genexpr>    s    zrepr_events.<locals>.<genexpr>)r   )r   eventsr   r   r   repr_events   s    r$   c                 C   s   dd | j  D S )z&Return description of pending readers.c              
   S   s2   g | ]*\}}d | dt | dtttB  qS ()z->)r   r   r   r   r   r    r   r   r   r   
<listcomp>+   s   z repr_readers.<locals>.<listcomp>)readersitemsr   r   r   r   r   )   s    r   c                 C   s   dd | j  D S )z&Return description of pending writers.c              	   S   s.   g | ]&\}}d | dt | dtt qS r%   )r   r   r   r(   r   r   r   r)   1   s   z repr_writers.<locals>.<listcomp>)writersr+   r   r   r   r   r   /   s    r   c                 G   sj   z>|t @ r| j| W S |t@ r<|| jkr0| jW S | j| W S W n& tk
rd   |r^|d  Y S  Y nX dS )z)Return the callback used for hub+fd+flag.r   N)r   r*   r   ZconsolidateZconsolidate_callbackr,   KeyError)r   r    r   defaultr   r   r   r   5   s    
r   N)__doc__Zkombu.utils.eventior   r   r   Zkombu.utils.functionalr   r   r   r   r$   r   r   r   r   r   r   r   <module>   s   