o
    "i%	                     @  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 )z<JSON Formatter using [orjson](https://github.com/ijl/orjson)    )annotations)AnyOptionalCallable   )core)defaults)package_is_availableorjsonT)throw_errorNobjr   returnc                 C  sn   t | r
t | S t | rt | S t | rt | S t | r(t | S t 	| r2t 
| S t | S )z6orjson default encoder function for non-standard types)duse_exception_defaultexception_defaultuse_traceback_defaulttraceback_defaultuse_bytes_defaultbytes_defaultuse_enum_defaultenum_defaultuse_type_defaulttype_defaultunknown_default)r    r   W/var/www/html/premium_crap/venv/lib/python3.10/site-packages/pythonjsonlogger/orjson.pyorjson_default   s   










r   c                      s4   e Zd ZdZeddd fd
dZdddZ  ZS )OrjsonFormatterzJJSON formatter using [orjson](https://github.com/ijl/orjson) for encoding.F)json_defaultjson_indentr   Optional[Callable]r   boolr   Nonec                  s"   t  j|i | || _|| _dS )a<  
        Args:
            args: see [BaseJsonFormatter][pythonjsonlogger.core.BaseJsonFormatter]
            json_default: a function for encoding non-standard objects
            json_indent: indent output with 2 spaces.
            kwargs: see [BaseJsonFormatter][pythonjsonlogger.core.BaseJsonFormatter]
        N)super__init__r   r   )selfr   r   argskwargs	__class__r   r   r$   -   s   zOrjsonFormatter.__init__log_datacore.LogDatastrc                 C  s.   t j}| jr|t jO }t j|| j|ddS )z&Returns a json string of the log data.)defaultoptionutf8)r
   OPT_NON_STR_KEYSr   OPT_INDENT_2dumpsr   decode)r%   r*   optr   r   r   jsonify_log_recordA   s   
z"OrjsonFormatter.jsonify_log_record)r   r    r   r!   r   r"   )r*   r+   r   r,   )__name__
__module____qualname____doc__r   r$   r5   __classcell__r   r   r(   r   r   *   s    r   )r   r   r   r   )r9   
__future__r   typingr   r   r    r   r   r   utilsr	   r
   r   BaseJsonFormatterr   r   r   r   r   <module>   s    
