o
    "“ia  ã                   @  s|   d Z ddlmZ ddlmZmZmZ ddlmZ ddlm	Z
 ddlmZ edd	d
� ddlZddd„ZG dd„ dejƒZdS )zCJSON Formatter using [`msgspec`](https://github.com/jcrist/msgspec)é    )Úannotations)ÚAnyÚOptionalÚCallableé   )Úcore)Údefaults)Úpackage_is_availableÚmsgspecT)Úthrow_errorNÚobjr   Úreturnc                 C  sZ   t  | ¡r
t  | ¡S t  | ¡rt  | ¡S t  | ¡rt  | ¡S t  | ¡r(t  | ¡S t  	| ¡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)r   © r   úX/var/www/html/premium_crap/venv/lib/python3.10/site-packages/pythonjsonlogger/msgspec.pyÚmsgspec_default   s   








r   c                      s2   e Zd ZdZedœd‡ fdd„Zddd„Z‡  ZS )ÚMsgspecFormatterzzJSON formatter using [`msgspec.json.Encoder`](https://jcristharif.com/msgspec/api.html#msgspec.json.Encoder) for encoding.)Újson_defaultr   úOptional[Callable]r   ÚNonec                  s.   t ƒ j|i |¤Ž || _tjj| jd�| _dS )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   r
   ÚjsonÚEncoderÚ_encoder)Úselfr   ÚargsÚkwargs©Ú	__class__r   r   r!   +   s   zMsgspecFormatter.__init__Úlog_dataúcore.LogDataÚstrc                 C  s   | j  |¡ d¡S )z&Returns a json string of the log data.Úutf8)r$   ÚencodeÚdecode)r%   r*   r   r   r   Újsonify_log_record=   s   z#MsgspecFormatter.jsonify_log_record)r   r   r   r   )r*   r+   r   r,   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r!   r0   Ú__classcell__r   r   r(   r   r   (   s
    ýr   )r   r   r   r   )r4   Ú
__future__r   Útypingr   r   r   Ú r   r   r   Úutilsr	   Úmsgspec.jsonr
   r   ÚBaseJsonFormatterr   r   r   r   r   Ú<module>   s    
