Ë
    ojy  ã            	       óà   — 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y)z)
Integration with L{twisted.python.log}.
é    )ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚOptional)Úimplementeré   )ÚformatEvent)ÚILogObserverÚLogEvent)ÚLogLevel)ÚStringifiableFromEventÚfromStdlibLogLevelMapping)r   c                   ó4   — e Zd ZdZdd„Zdefd„Zdeddfd„Zy)	Ú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.
    ÚreturnNc                 ó   — || _         y)zr
        @param legacyObserver: a legacy observer to which this observer will
            forward events.
        N)ÚlegacyObserver)Úselfr   s     ú8/usr/lib/python3/dist-packages/twisted/logger/_legacy.pyÚ__init__z!LegacyLogObserverWrapper.__init__    s   € ð
 -ˆÕó    c                 ó&   — dj                  | ¬«      S )Nz0{self.__class__.__name__}({self.legacyObserver})©r   )Úformatr   s    r   Ú__repr__z!LegacyLogObserverWrapper.__repr__'   s   € ØA×HÑHÈdÐHÓSÐSr   Úeventc                 óà  — d|vrd|d<   d|vr|d   |d<   d|vr|j                  dd«      |d<   d|vrK|j                  d	d
«      �9d|d<   t        |j                  «       «      |d<   t        |d   t        «      sd|d<   d|v r(d|vr|d   |d<   d|vrd|d<   d|vrCt        |«      |d<   n4d|vr0|d   t        j                  t        j                  fv rd|d<   nd|d<   | j                  |«       y
)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__*   s,  € ð ˜EÑ!Ø!ˆE�)Ñà˜ÑØ! *Ñ-ˆE�&‰Mà˜5Ñ Ø#Ÿi™i¨°cÓ:ˆE�(‰Oð ˜5Ñ  U§Y¡Y¨|¸TÓ%BÐ%Nð /ˆE�(‰OÜ"8¸¿¹»Ó"FˆE�,Ñô ˜e IÑ.´Ô6Ø#%��iÑ ð ˜EÑ!Ø Ñ%Ø#(¨Ñ#7��iÑ Ø Ñ%Ø#$��iÑ Ø˜EÑ!Ü*¨5Ó1��e’Ø˜eÑ#Ø�[Ñ!¤h§n¡n´h×6GÑ6GÐ%HÑHØ#$��iÒ à#$��iÑ à×Ñ˜EÕ"r   )r   ÚILegacyLogObserverr   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ústrr   r   r3   r    r   r   r   r      s-   „ ñó-ðT˜#ó Tð0#˜hð 0#¨4ô 0#r   r   ÚobserverÚ	eventDictÚtextFromEventDictr   Nc                 ó`  — d|vr|d   |d<   d|vr ||«      }|�
||d<   d|d<   d|vrTd|v r	 t         |d      }n;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<    | |«       y# t        $ r d}Y Œ6w xY w)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   r2   Úinfo)r:   r;   r<   ÚtextÚlevels        r   ÚpublishToNewObserverrE   ]   sø   € ð, ˜Ñ"Ø )¨&Ñ 1ˆ	�*Ñà˜9Ñ$Ù  Ó+ˆØÐØ$(ˆI�jÑ!Ø&2ˆI�lÑ#à˜)Ñ#Ø˜Ñ"ðÜ1°)¸JÑ2GÑH‘ð ˜)Ñ#Ø˜Ò#Ü ×)Ñ)‘ä Ÿ™‘ä—M‘MˆEàÐØ%*ˆI�kÑ"à˜iÑ'Ø%1ˆ	�/Ñ"à˜9Ñ$¨°YÑ)>Ø"+¨HÑ"5ˆ	�,ÑáˆYÕøô' ò Ø’ðús   ®B ÂB-Â,B-)r8   Útypingr   r   r   r   r   Úzope.interfacer   Ú_formatr
   Ú_interfacesr   r   Ú_levelsr   Ú_stdlibr   r   Útwisted.python.logr4   r   r9   rE   r    r   r   ú<module>rM      s”   ðñ
÷ @Õ ?å &å  ß /Ý ß FáÝEñ ˆ\Ó÷C#ð C#ó ðC#ðL6Øð6à�C˜�H‰~ð6ð    c¨3 h¡Ð 0°(¸3±-Ð ?Ñ@ð6ð 
ô	6r   