HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/twisted/logger/__pycache__/_legacy.cpython-38.pyc
U

�by�@s�dZddlmZmZmZmZmZddlmZddl	m
Z
ddlmZm
Z
ddlmZddlmZmZertdd	lmZee�Gd
d�d��Zeeeefeeeefgeefdd
�dd�ZdS)z)
Integration with L{twisted.python.log}.
�)�
TYPE_CHECKING�Any�Callable�Dict�Optional)�implementer�)�formatEvent)�ILogObserver�LogEvent)�LogLevel)�StringifiableFromEvent�fromStdlibLogLevelMapping)r
c@s>eZdZdZddd�dd�Zed�dd	�Zedd
�dd�ZdS)
�LegacyLogObserverWrapperz�
    L{ILogObserver} that wraps a L{twisted.python.log.ILogObserver}.

    Received (new-style) events are modified prior to forwarding to
    the legacy observer to ensure compatibility with observers that
    expect legacy events.
    �ILegacyLogObserverN)�legacyObserver�returncCs
||_dS)zr
        @param legacyObserver: a legacy observer to which this observer will
            forward events.
        N)r)�selfr�r�8/usr/lib/python3/dist-packages/twisted/logger/_legacy.py�__init__ sz!LegacyLogObserverWrapper.__init__)rcCsdj|d�S)Nz0{self.__class__.__name__}({self.legacyObserver})�r)�formatrrrr�__repr__'sz!LegacyLogObserverWrapper.__repr__)�eventrcCsd|krd|d<d|kr$|d|d<d|kr<|�dd�|d<d|kr�|�d	d
�d
k	r�d|d<t|���|d<t|dt�s�d|d<d
|kr�d|kr�|d
|d<d|kr�d|d<d|kr�t|�|d<n.d|kr�|dtjtjfkr�d|d<nd|d<|�	|�d
S)z�
        Forward events to the legacy observer after editing them to
        ensure compatibility.

        @param event: an event
        �messager�time�log_time�system�
log_system�-r�
log_formatNz%(log_legacy)s�
log_legacy�log_failure�failure�isErrorr�why�	log_levelr)
�getr
�copy�
isinstance�tupler	r�error�criticalr)rrrrr�__call__*s.	
z!LegacyLogObserverWrapper.__call__)	�__name__�
__module__�__qualname__�__doc__r�strrrr.rrrrrsrN)�observer�	eventDict�textFromEventDictrcCs�d|kr|d|d<d|kr<||�}|dk	r<||d<d|d<d|kr�d|krxzt|d}Wq�tk
rtd}Yq�Xn&d	|kr�|d	r�tj}q�tj}ntj}|dk	r�||d<d
|kr�d|d
<d|kr�d
|kr�|d
|d<||�dS)a"
    Publish an old-style (L{twisted.python.log}) event to a new-style
    (L{twisted.logger}) observer.

    @note: It's possible that a new-style event was sent to a
        L{LegacyLogObserverWrapper}, and may now be getting sent back to a
        new-style observer.  In this case, it's already a new-style event,
        adapted to also look like an old-style event, and we don't need to
        tweak it again to be a new-style event, hence this checks for
        already-defined new-style keys.

    @param observer: A new-style observer to handle this event.
    @param eventDict: An L{old-style <twisted.python.log>}, log event.
    @param textFromEventDict: callable that can format an old-style event as a
        string.  Passed here rather than imported to avoid circular dependency.
    rrr!NZlog_textz
{log_text}r'�logLevelr%�
log_namespacer"rr)r�KeyErrorrr-�info)r4r5r6�text�levelrrr�publishToNewObserver]s2r=)r2�typingrrrrr�zope.interfacer�_formatr	�_interfacesr
r�_levelsr�_stdlibr
rZtwisted.python.logrrr3r=rrrr�<module>sG
�