§
    Ètºfy  ã            	       ó  — d Z ddlmZmZmZmZmZ ddlmZ ddl	m
Z
 ddlmZmZ ddlmZ ddlmZmZ erdd	lmZ  ee¦  «         G d
„ d¦  «        ¦   «         Zdedeeef         deeeef         gee         f         ddfd„ZdS )z)
Integration with L{twisted.python.log}.
é    )ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚOptional)Úimplementeré   )ÚformatEvent)ÚILogObserverÚLogEvent)ÚLogLevel)ÚStringifiableFromEventÚfromStdlibLogLevelMapping)r   c                   ó6   — e Zd ZdZd
d„Zdefd„Zdeddfd	„ZdS )Ú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.
    ÚlegacyObserverÚILegacyLogObserverÚreturnNc                 ó   — || _         dS )zr
        @param legacyObserver: a legacy observer to which this observer will
            forward events.
        N)r   )Úselfr   s     úU/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/logger/_legacy.pyÚ__init__z!LegacyLogObserverWrapper.__init__    s   € ð
 -ˆÔÐÐó    c                 ó.   — d                      | ¬¦  «        S )Nz0{self.__class__.__name__}({self.legacyObserver})©r   )Úformatr   s    r   Ú__repr__z!LegacyLogObserverWrapper.__repr__'   s   € ØA×HÒHÈdÐHÑSÔSÐSr   Úeventc                 ó$  — d|vrd|d<   d|vr|d         |d<   d|vr|                      dd¦  «        |d<   d|vr_|                      d	d
¦  «        �Id|d<   t          |                     ¦   «         ¦  «        |d<   t          |d         t          ¦  «        sd|d<   d|v r/d|vr|d         |d<   d|vrd|d<   d|vrt          |¦  «        |d<   n/d|vr+|d         t          j        t          j        fv rd|d<   nd|d<   |  	                    |¦  «         d
S )z‹
        Forward events to the legacy observer after editing them to
        ensure compatibility.

        @param event: an event
        Úmessage© Ú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   )r   r   s     r   Ú__call__z!LegacyLogObserverWrapper.__call__*   sk  € ð ˜EÐ!Ð!Ø!ˆE�)Ñà˜ÐÐØ! *Ô-ˆE�&‰Mà˜5Ð Ð Ø#Ÿiši¨°cÑ:Ô:ˆE�(‰Oð ˜5Ð Ð  U§Y¢Y¨|¸TÑ%BÔ%BÐ%Nð /ˆE�(‰OÝ"8¸¿º¹¼Ñ"FÔ"FˆE�,Ñõ ˜e IÔ.µÑ6Ô6ð &Ø#%��iÑ ð ˜EÐ!Ð!Ø Ð%Ð%Ø#(¨Ô#7��iÑ Ø Ð%Ð%Ø#$��iÑ Ø˜EÐ!Ð!Ý*¨5Ñ1Ô1��e‘øØ˜eÐ#Ð#Ø�[Ô!¥h¤nµhÔ6GÐ%HÐHÐHØ#$��iÑ Ð à#$��iÑ à×Ò˜EÑ"Ô"Ð"Ð"Ð"r   )r   r   r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ústrr   r   r4   r!   r   r   r   r      st   € € € € € ðð ð-ð -ð -ð -ðT˜#ð Tð Tð Tð Tð0#˜hð 0#¨4ð 0#ð 0#ð 0#ð 0#ð 0#ð 0#r   r   ÚobserverÚ	eventDictÚtextFromEventDictr   Nc                 óx  — d|vr|d         |d<   d|vr ||¦  «        }|�
||d<   d|d<   d|vrdd|v r'	 t           |d                  }nD# t          $ r d}Y n6w xY wd	|v r"|d	         rt          j        }nt          j        }nt          j        }|�||d<   d
|vrd|d
<   d|vrd|v r|d         |d<    | |¦  «         dS )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.
    r#   r"   r'   NÚlog_textz
{log_text}r-   ÚlogLevelr+   Úlog_namespacer(   r%   r$   )r   ÚKeyErrorr   r3   Úinfo)r:   r;   r<   ÚtextÚlevels        r   ÚpublishToNewObserverrE   ]   s4  € ð, ˜Ð"Ð"Ø )¨&Ô 1ˆ	�*Ñà˜9Ð$Ð$Ø Ð  Ñ+Ô+ˆØÐØ$(ˆI�jÑ!Ø&2ˆI�lÑ#à˜)Ð#Ð#Ø˜Ð"Ð"ðÝ1°)¸JÔ2GÔH��øÝð ð ð Ø���ðøøøà˜)Ð#Ð#Ø˜Ô#ð &Ý Ô)��å œ��å”MˆEàÐØ%*ˆI�kÑ"à˜iÐ'Ð'Ø%1ˆ	�/Ñ"à˜9Ð$Ð$¨°YÐ)>Ð)>Ø"+¨HÔ"5ˆ	�,Ñà€HˆYÑÔÐÐÐs   ´A ÁAÁA)r8   Útypingr   r   r   r   r   Úzope.interfacer   Ú_formatr
   Ú_interfacesr   r   Ú_levelsr   Ú_stdlibr   r   Útwisted.python.logr   r   r9   rE   r!   r   r   ú<module>rM      sh  ðð
ð ð @Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?à &Ð &Ð &Ð &Ð &Ð &à  Ð  Ð  Ð  Ð  Ð  Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø Ð Ð Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fàð FØEÐEÐEÐEÐEÐEð €ˆ\ÑÔðC#ð C#ð C#ð C#ð C#ñ C#ô C#ñ ÔðC#ðL6Øð6à�C˜�HŒ~ð6ð    c¨3 h¤Ð 0°(¸3´-Ð ?Ô@ð6ð 
ð	6ð 6ð 6ð 6ð 6ð 6r   