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