
    Mh5	                        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dS )z<JSON Formatter using [orjson](https://github.com/ijl/orjson)    )annotations)Any   )core)defaults)package_is_availableorjsonT)throw_errorNobjr   returnc                   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	        |           rt          j
        |           S t          j        |           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   s    W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pythonjsonlogger/orjson.pyorjson_defaultr      s    s## ("3'''s## ("3'''3 $s#### #~c"""# #~c"""S!!!    c                  4     e Zd ZdZeddd fd
ZddZ xZS )OrjsonFormatterzJJSON formatter using [orjson](https://github.com/ijl/orjson) for encoding.F)json_defaultjson_indentr   core.OptionalCallableOrStrr    boolr   Nonec               z     t                      j        |i | t          j        |          | _        || _        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   str_to_objectr   r    )selfr   r    argskwargs	__class__s        r   r&   zOrjsonFormatter.__init__-   sA     	$)&))) .|<<&r   
log_recordcore.LogRecordstrc                    t           j        }| j        r|t           j        z  }t          j        || j        |                              d          S )z(Returns a json string of the log record.)defaultoptionutf8)r	   OPT_NON_STR_KEYSr    OPT_INDENT_2dumpsr   decode)r(   r,   opts      r   jsonify_log_recordz"OrjsonFormatter.jsonify_log_recordA   sK    % 	'6&&C|J0A#NNNUUV\]]]r   )r   r!   r    r"   r   r#   )r,   r-   r   r.   )__name__
__module____qualname____doc__r   r&   r8   __classcell__)r+   s   @r   r   r   *   sr        TT
 4B!	       (^ ^ ^ ^ ^ ^ ^ ^r   r   )r   r   r   r   )r<   
__future__r   typingr    r   r   r   utilsr   r	   r   BaseJsonFormatterr    r   r   <module>rD      s    B B
 # " " " " "      
             ' ' ' ' ' '  X4 0 0 0 0 
" " " ""^ ^ ^ ^ ^d, ^ ^ ^ ^ ^r   