U
    bh                     @  s   d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 erhddlm
Z
 ddlmZmZ dd	lmZ d
ZejdfddddddZG dd dZdS )zDebugging support.    )annotationsN)TYPE_CHECKING)wraps)
get_logger)Logger)AnyCallable)	Transport)setup_logging
Logwrappedz
int | Nonezlist[str] | NoneNone)loglevelloggersreturnc                 C  s>   |sddgn|}|D ]$}t |}|t  ||  qdS )zSetup logging to stdout.zkombu.connectionzkombu.channelN)r   
addHandlerloggingStreamHandlersetLevel)r   r   Zlogger_namelogger r   5/tmp/pip-unpacked-wheel-earovzxb/kombu/utils/debug.pyr
      s
    r
   c                   @  sT   e Zd ZdZdZddddddd	Zd
ddddZd
dddZddddZdS )r   z(Wrap all object methods, to log on call.)	__enter____exit__Nr	   zLogger | Nonez
str | None)instancer   identc                 C  s   || _ t|| _|| _d S N)r   r   r   r   )selfr   r   r   r   r   r   __init__&   s    
zLogwrapped.__init__strr   )keyr   c                   sF   t j| t r|jkr" S t dddd fdd}|S )Nz	list[Any]zdict[str, Any]r   )argskwargsr   c                    s   d}j r|j j7 }| j d7 }| rD|dtt| 7 }|rp| rT|d7 }|ddd | D 7 }|d7 }j	|  | |S )N (z, c                 s  s    | ]\}}| d |V  qdS )=Nr   ).0r   valuer   r   r   	<genexpr>A   s   z<Logwrapped.__getattr__.<locals>.__wrapped.<locals>.<genexpr>))
r   formatr   __name__joinmaprepritemsr   debug)r    r!   infomethr   r   r   Z	__wrapped6   s    
z)Logwrapped.__getattr__.<locals>.__wrapped)getattrr   callable_Logwrapped__ignorer   )r   r   Z_Logwrapped__wrappedr   r1   r   __getattr__0   s    zLogwrapped.__getattr__)r   c                 C  s
   t | jS r   )r-   r   r   r   r   r   __repr__I   s    zLogwrapped.__repr__z	list[str]c                 C  s
   t | jS r   )dirr   r7   r   r   r   __dir__L   s    zLogwrapped.__dir__)NN)	r*   
__module____qualname____doc__r5   r   r6   r8   r:   r   r   r   r   r   !   s     
r   )r=   
__future__r   r   typingr   Z
vine.utilsr   Z	kombu.logr   r   r   r   Zkombu.transport.baser	   __all__DEBUGr
   r   r   r   r   r   <module>   s   