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    
