o
    0 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)Z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)dZuse_exception_defaultZexception_defaultZuse_traceback_defaultZtraceback_defaultZuse_bytes_defaultZbytes_defaultZuse_enum_defaultZenum_defaultZuse_type_defaultZtype_defaultZunknown_default)r    r   c/home/app/PaddleOCR-VL-test/.venv_paddleocr/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
   ZOPT_NON_STR_KEYSr   Z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   r'   __classcell__r   r   r   r   r   *   s    r   )r   r   r   r   )r+   
__future__r   typingr   r   r    r   r   r   utilsr	   r
   r   ZBaseJsonFormatterr   r   r   r   r   <module>   s    
