U
    de                     @   sJ   d Z ddlZddlmZ ddlmZ dZejdfddZG dd	 d	Z	dS )
zDebugging support.    N)wraps)
get_logger)setup_logging
Logwrappedc                 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)ZloglevelloggersZlogger_namelogger r   5/tmp/pip-unpacked-wheel-hqfrjlvz/kombu/utils/debug.pyr      s
    r   c                   @   s6   e Zd ZdZdZdddZdd Zdd	 Zd
d ZdS )r   z(Wrap all object methods, to log on call.)	__enter____exit__Nc                 C   s   || _ t|| _|| _d S N)instancer   r   ident)selfr   r   r   r   r   r   __init__   s    
zLogwrapped.__init__c                    s<   t j| t r|jkr" S t  fdd}|S )Nc                     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   ).0keyvaluer   r   r   	<genexpr>0   s   z<Logwrapped.__getattr__.<locals>.__wrapped.<locals>.<genexpr>))
r   formatr   __name__joinmaprepritemsr   debug)argskwargsinfomethr   r   r   Z	__wrapped%   s    
z)Logwrapped.__getattr__.<locals>.__wrapped)getattrr   callable_Logwrapped__ignorer   )r   r   Z_Logwrapped__wrappedr   r'   r   __getattr__   s    zLogwrapped.__getattr__c                 C   s
   t | jS r   )r!   r   r   r   r   r   __repr__8   s    zLogwrapped.__repr__c                 C   s
   t | jS r   )dirr   r-   r   r   r   __dir__;   s    zLogwrapped.__dir__)NN)	r   
__module____qualname____doc__r+   r   r,   r.   r0   r   r   r   r   r      s   
r   )
r3   r   Z
vine.utilsr   Z	kombu.logr   __all__DEBUGr   r   r   r   r   r   <module>   s   	