
    	hd                    V    d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d de          Z	dS )	z.
Generic bound logger that can wrap anything.
    )annotations)partial)Any)BoundLoggerBasec                  *    e Zd ZdZddZddZddZdS )BoundLoggera  
    A generic BoundLogger that can wrap anything.

    Every unknown method will be passed to the wrapped *logger*. If that's too
    much magic for you, try `structlog.stdlib.BoundLogger` or
    `structlog.twisted.BoundLogger` which also take advantage of knowing the
    wrapped class which generally results in better performance.

    Not intended to be instantiated by yourself.  See
    :func:`~structlog.wrap_logger` and :func:`~structlog.get_logger`.
    method_namestrreturnr   c                b    |dk    rdS t          | j        |          }t          | ||           |S )zX
        If not done so yet, wrap the desired logger method & cache the result.
        __deepcopy__N)r   _proxy_to_loggersetattr)selfr	   wrappeds      _/var/www/html/web-builder-api.evdpl.com/venv/lib/python3.11/site-packages/structlog/_generic.py__getattr__zBoundLogger.__getattr__   s=     .((4$/==k7+++    dict[str, Any]c                    | j         S )=
        Our __getattr__ magic makes this necessary.
        )__dict__)r   s    r   __getstate__zBoundLogger.__getstate__+   s     }r   stateNonec                \    |                                 D ]\  }}t          | ||           dS )r   N)itemsr   )r   r   kvs       r   __setstate__zBoundLogger.__setstate__1   s>     KKMM 	  	 DAqD!Q	  	 r   N)r	   r
   r   r   )r   r   )r   r   r   r   )__name__
__module____qualname____doc__r   r   r     r   r   r   r      sZ        
 

 
 
 
              r   r   N)
r$   
__future__r   	functoolsr   typingr   structlog._baser   r   r%   r   r   <module>r*      s     # " " " " "             + + + + + +$  $  $  $  $ / $  $  $  $  $ r   