o
    h	                  
   @  s   d Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZ eZ	 eeeef eeef f Z	 e
eef Z	 eeeegee	eef eeeeedf f f Z	 eee eee f Z	 eeegdf Z	 eG dd deZeG d	d
 d
eZG dd deeZdS )z
Type information used throughout *structlog*.

For now, they are considered provisional. Especially `BindableLogger` will
probably change to something more elegant.

.. versionadded:: 22.2.0
    )annotations)TracebackType)AnyCallableDictMappingMutableMappingOptionalProtocolTextIOTupleTypeUnionruntime_checkable.Nc                   @  s   e Zd ZdZd	ddZdS )
ExceptionTransformeraC  
    **Protocol:** A callable that transforms an `ExcInfo` into another
    datastructure.

    The result should be something that your renderer can work with, e.g., a
    ``str`` or a JSON-serializable ``dict``.

    Used by `structlog.processors.format_exc_info()` and
    `structlog.processors.ExceptionPrettyPrinter`.

    Arguments:

        exc_info: Is the exception tuple to format

    Returns:

        Anything that can be rendered by the last processor in your chain,
        for example, a string or a JSON-serializable structure.

    .. versionadded:: 22.1.0
    exc_infoExcInforeturnr   c                 C     d S N )selfr   r   r   F/var/www/html/ai/venv/lib/python3.10/site-packages/structlog/typing.py__call__u      zExceptionTransformer.__call__N)r   r   r   r   )__name__
__module____qualname____doc__r   r   r   r   r   r   ]   s    r   c                   @  sB   e Zd ZU dZded< dddZdddZdddZdddZdS )BindableLoggerz
    **Protocol**: Methods shared among all bound loggers and that are relied on
    by *structlog*.

    .. versionadded:: 20.2.0
    Context_context
new_valuesr   r   c                 K  r   r   r   r   r"   r   r   r   bind   r   zBindableLogger.bindkeysstrc                 G  r   r   r   r   r%   r   r   r   unbind   r   zBindableLogger.unbindc                 G  r   r   r   r'   r   r   r   
try_unbind   r   zBindableLogger.try_unbindc                 K  r   r   r   r#   r   r   r   new   r   zBindableLogger.newN)r"   r   r   r   )r%   r&   r   r   )	r   r   r   r   __annotations__r$   r(   r)   r*   r   r   r   r   r   y   s   
 


r   c                   @  s
  e Zd ZdZd?ddZd@d	d
Zd@ddZd?ddZdAddZdAddZ	dAddZ
dAddZdAddZdAddZdAddZdAd d!ZdAd"d#ZdAd$d%ZdAd&d'ZdAd(d)ZdAd*d+ZdAd,d-ZdAd.d/ZdAd0d1ZdAd2d3ZdAd4d5ZdAd6d7ZdBd:d;ZdBd<d=Zd>S )CFilteringBoundLoggera  
    **Protocol**: A `BindableLogger` that filters by a level.

    The only way to instantiate one is using `make_filtering_bound_logger`.

    .. versionadded:: 20.2.0
    .. versionadded:: 22.2.0 String interpolation using positional arguments.
    .. versionadded:: 22.2.0
       Async variants ``alog()``, ``adebug()``, ``ainfo()``, and so forth.
    .. versionchanged:: 22.3.0
       String interpolation is only attempted if positional arguments are
       passed.
    r"   r   r   c                 K     dS )zu
        Return a new logger with *new_values* added to the existing ones.

        .. versionadded:: 22.1.0
        Nr   r#   r   r   r   r$          zFilteringBoundLogger.bindr%   r&   c                 G  r-   )zm
        Return a new logger with *keys* removed from the context.

        .. versionadded:: 22.1.0
        Nr   r'   r   r   r   r(      r.   zFilteringBoundLogger.unbindc                 G  r-   )zs
        Like :meth:`unbind`, but best effort: missing keys are ignored.

        .. versionadded:: 22.1.0
        Nr   r'   r   r   r   r)      r.   zFilteringBoundLogger.try_unbindc                 K  r-   )zj
        Clear context and binds *initial_values* using `bind`.

        .. versionadded:: 22.1.0
        Nr   r#   r   r   r   r*      r.   zFilteringBoundLogger.neweventargskwc                 O  r-   )zF
        Log ``event % args`` with **kw** at **debug** level.
        Nr   r   r/   r0   r1   r   r   r   debug   r.   zFilteringBoundLogger.debugc                      dS )zg
        Log ``event % args`` with **kw** at **debug** level.

        ..versionadded:: 22.2.0
        Nr   r2   r   r   r   adebug       zFilteringBoundLogger.adebugc                 O  r-   zE
        Log ``event % args`` with **kw** at **info** level.
        Nr   r2   r   r   r   info   r.   zFilteringBoundLogger.infoc                   r4   )zf
        Log ``event % args`` with **kw** at **info** level.

        ..versionadded:: 22.2.0
        Nr   r2   r   r   r   ainfo   r6   zFilteringBoundLogger.ainfoc                 O  r-   zE
        Log ``event % args`` with **kw** at **warn** level.
        Nr   r2   r   r   r   warning   r.   zFilteringBoundLogger.warningc                   r4   zf
        Log ``event % args`` with **kw** at **warn** level.

        ..versionadded:: 22.2.0
        Nr   r2   r   r   r   awarning   r6   zFilteringBoundLogger.awarningc                 O  r-   r:   r   r2   r   r   r   warn   r.   zFilteringBoundLogger.warnc                   r4   r<   r   r2   r   r   r   awarn   r6   zFilteringBoundLogger.awarnc                 O  r-   zF
        Log ``event % args`` with **kw** at **error** level.
        Nr   r2   r   r   r   error   r.   zFilteringBoundLogger.errorc                   r4   )zg
        Log ``event % args`` with **kw** at **error** level.

        ..versionadded:: 22.2.0
        Nr   r2   r   r   r   aerror   r6   zFilteringBoundLogger.aerrorc                 O  r-   r@   r   r2   r   r   r   err   r.   zFilteringBoundLogger.errc                 O  r-   zI
        Log ``event % args`` with **kw** at **critical** level.
        Nr   r2   r   r   r   fatal   r.   zFilteringBoundLogger.fatalc                   r4   zj
        Log ``event % args`` with **kw** at **critical** level.

        ..versionadded:: 22.2.0
        Nr   r2   r   r   r   afatal  r6   zFilteringBoundLogger.afatalc                 O  r-   )z
        Log ``event % args`` with **kw** at **error** level and ensure that
        ``exc_info`` is set in the event dictionary.
        Nr   r2   r   r   r   	exception	  r.   zFilteringBoundLogger.exceptionc                   r4   )z
        Log ``event % args`` with **kw** at **error** level and ensure that
        ``exc_info`` is set in the event dictionary.

        ..versionadded:: 22.2.0
        Nr   r2   r   r   r   
aexception  r6   zFilteringBoundLogger.aexceptionc                 O  r-   rD   r   r2   r   r   r   critical  r.   zFilteringBoundLogger.criticalc                   r4   rF   r   r2   r   r   r   	acritical  r6   zFilteringBoundLogger.acriticalc                 O  r-   r7   r   r2   r   r   r   msg#  r.   zFilteringBoundLogger.msgc                   r4   r7   r   r2   r   r   r   amsg(  r6   zFilteringBoundLogger.amsglevelintc                 O  r-   z>
        Log ``event % args`` with **kw** at *level*.
        Nr   r   rN   r/   r0   r1   r   r   r   log-  r.   zFilteringBoundLogger.logc                   r4   rP   r   rQ   r   r   r   alog2  r6   zFilteringBoundLogger.alogN)r"   r   r   r,   )r%   r&   r   r,   )r/   r&   r0   r   r1   r   r   r   )
rN   rO   r/   r&   r0   r   r1   r   r   r   )r   r   r   r   r$   r(   r)   r*   r3   r5   r8   r9   r;   r=   r>   r?   rA   rB   rC   rE   rG   rH   rI   rJ   rK   rL   rM   rR   rS   r   r   r   r   r,      s6    























r,   )r   
__future__r   typesr   typingr   r   r   r   r   r	   r
   r   r   r   r   r   WrappedLoggerr&   r    	EventDictbytes	bytearray	ProcessorBaseExceptionr   ExceptionRendererr   r   r,   r   r   r   r   <module>   s2   	8
	 	