
    Xhq                        d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
  e
dd	
       ddlZddZ G d dej                        Zy)zCJSON Formatter using [`msgspec`](https://github.com/jcrist/msgspec)    )annotations)Any   )core)defaults)package_is_availablemsgspecT)throw_errorNc                |   t        j                  |       rt        j                  |       S t        j                  |       rt        j                  |       S t        j
                  |       rt        j                  |       S t        j                  |       rt        j                  |       S t        j                  |       S )z7msgspec default encoder function for non-standard types)
duse_exception_defaultexception_defaultuse_traceback_defaulttraceback_defaultuse_enum_defaultenum_defaultuse_type_defaulttype_defaultunknown_default)objs    L/var/www/html/myenv/lib/python3.12/site-packages/pythonjsonlogger/msgspec.pymsgspec_defaultr      s    s#""3''s#""3''#~~c""#~~c""S!!    c                  8     e Zd ZdZed	 	 	 d fdZddZ xZS )MsgspecFormatterzzJSON formatter using [`msgspec.json.Encoder`](https://jcristharif.com/msgspec/api.html#msgspec.json.Encoder) for encoding.)json_defaultc                   t        |   |i | t        j                  |      | _        t
        j                  j                  | j                        | _        y)a  
        Args:
            args: see [BaseJsonFormatter][pythonjsonlogger.core.BaseJsonFormatter]
            json_default: a function for encoding non-standard objects
            kwargs: see [BaseJsonFormatter][pythonjsonlogger.core.BaseJsonFormatter]
        )enc_hookN)	super__init__r   str_to_objectr   r	   jsonEncoder_encoder)selfr   argskwargs	__class__s       r   r    zMsgspecFormatter.__init__+   sL     	$)&) ..|<,,d6G6G,Hr   c                V    | j                   j                  |      j                  d      S )z(Returns a json string of the log record.utf8)r$   encodedecode)r%   
log_records     r   jsonify_log_recordz#MsgspecFormatter.jsonify_log_record=   s"    }}##J/66v>>r   )r   zcore.OptionalCallableOrStrreturnNone)r-   zcore.LogRecordr/   str)__name__
__module____qualname____doc__r   r    r.   __classcell__)r(   s   @r   r   r   (   s-     E
 4C 1
 
$?r   r   )r   r   r/   r   )r5   
__future__r   typingr    r   r   r   utilsr   msgspec.jsonr	   r   BaseJsonFormatterr    r   r   <module>r>      sC    I
 # 
   ' YD 1 

"?t-- ?r   