File: //usr/lib/python3/dist-packages/twisted/logger/__pycache__/_format.cpython-38.pyc
U
�bb. � @ s� d Z ddlmZ ddlmZ ddlmZmZm Z mZm
Z
mZmZ ddl
mZ ddlmZ ddlmZ ddlmZ d d
lmZmZ d dlmZ dZeed
�dd�Zeeed�dd�Zedfe
e e
e eed�dd�Z e feee
e gef e
e d�dd�Z!G dd� de�Z"eeeef ed�dd�Z#eed
�dd �Z$eed!�d"d#�Z%eed
�d$d%�Z&d&d&d&e fee'e'e'eegef ed'�d(d)�Z(d*S )+z&
Tools for formatting logging events.
� )�Mapping)�datetime)�Any�Callable�Iteratorr �Optional�Union�cast)�
NamedConstant)�FixedOffsetTimeZone)�Failure)� safe_repr� )�
aFormatter�
flatFormat)�LogEventz%Y-%m-%dT%H:%M:%S%z)�event�returnc C s t | dddd�S )aa
Formats an event as text, using the format in C{event["log_format"]}.
This implementation should never raise an exception; if the formatting
cannot be done, the returned string will describe the event generically so
that a useful message is emitted regardless.
@param event: A logging event.
@return: A formatted string.
F)�includeTraceback�includeTimestamp�
includeSystem)�eventAsText)r � r �8/usr/lib/python3/dist-packages/twisted/logger/_format.py�formatEvent s �r )r �errorr c C s\ zdj | |d�W S tk
rV t� }d�dd� | �� D ��}dj t|�||d� Y S X dS ) z�
Formats an event as text that describes the event generically and a
formatting error.
@param event: A logging event.
@param error: The formatting error.
@return: A formatted string.
z)Unable to format event {event!r}: {error})r r z, c s s( | ] \}}d � t|�t|�f�V qdS )z = N)�joinr
)�.0�key�valuer r r � <genexpr>B s �z+formatUnformattableEvent.<locals>.<genexpr>zrMESSAGE LOST: unformattable object logged: {error}
Recoverable data: {text}
Exception during formatting:
{failure})r �failure�textN)�format�
BaseExceptionr r �itemsr
)r r r! r"