o
    0 i                     @   s   d Z d Zd ZG dd deZddddZddd	d
ZddddZddddZdddddZ	ej
ej
ej
e	j
ej
fZd S )Nc                   @   s   e Zd ZdS )MonkeypatchWarningN)__name__
__module____qualname__ r   r   b/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/frozendict/monkeypatch.pyr      s    r   F)warn_cc                 C   s@   dd l }|j}| r||kr|rd}nd}dd l}||t |S )N    z4C Extension version, monkeypatch will be not appliedz4Pure Python version, monkeypatch will be not applied)
frozendictZc_extwarningswarnr   )r   r   coolresmsgr
   r   r   r   checkCExtension
   s   r   Tr   c           
   	   C   s   t |dsd S ddlm} |t}dd l}dd l}|j}||}| r&|}n|}|d u r/d }	n|ddddd d d d}	| rF|d u rE|jj	|_n|d u rNt
dd |_||_||_	||j_	|	|_d S )Nr   r   import_moduleFT)skipkeysensure_asciicheck_circular	allow_nanindent
separatorsdefaultz<Old json encoder is None (maybe you already unpatched json?))r   	importlibr   r   r	   json_OldJsonEncoderZ_getFrozendictJsonEncoderencoderJSONEncoder
ValueErrorFrozendictJsonEncoder_default_encoder)
patchr   r   selfr   r   ZOldJsonEncoderr    ZDefaultJsonEncoderZdefault_json_encoderr   r   r   patchOrUnpatchJson   sJ   



r$   c                    s   t |dsd S ddlm} |t}dd l}|jd u r$| s td|jn|j| r;ddlm   fdd}|}}n}d }||_||_||j_d S )Nr   r   r   z@Old orjson encoder is None (maybe you already unpatched orjson?)r	   c                    s(   t |  r	t| } | g|R i |S )N)
isinstancedict)objargskwargsr	   ZoldOrjsonDumpsr   r   frozendictOrjsonDumpsh   s   
z3patchOrUnpatchOrjson.<locals>.frozendictOrjsonDumps)	r   r   r   r   orjson_oldOrjsonDumpsr   dumpsr	   )r"   r   r   r#   r-   r,   ZdefaultOrjsonDumpsZnewOldOrjsonDumpsr   r+   r   patchOrUnpatchOrjsonQ   s,   

r0   c                    s   d}t ||dr
d S ddlm} |t}ddlm  ddlm |jd u r/| s+td j	n|j| rCt
 fdd	}|}}n}d }||_| _	z   W d S  tyj    j  j Y d S w )
NT)r   r   r   r   )MutableMappingr%   zUOld MutableMapping subclasshook is None (maybe you already unpatched MutableMapping?)c                    s0   |  krt |rdS |g|R i |S tS )NF)
issubclassNotImplemented)klasssubclassr)   r*   r1   r	   ZoldMutableMappingHookr   r   $frozendictMutableMappingSubclasshook   s   
zVpatchOrUnpatchMutableMappingSubclasshook.<locals>.frozendictMutableMappingSubclasshook)r   r   r   r   collections.abcr1   r	   _oldMutableMappingSubclasshookr   __subclasshook__classmethod_abc_caches_clearAttributeError
_abc_cachediscard_abc_negative_cache)r"   r   r   r   r#   r7   ZdefaultMutableMappingHookZnewOldMutableMappingHookr   r6   r   (patchOrUnpatchMutableMappingSubclasshooky   s:   
rA   )r   raise_orjsonc                 C   sN   t | |d zdd l}W n ty   |r Y nw t| |d t| |d d S )N)r"   r   r   )r$   r-   ImportErrorr0   rA   )r"   r   rB   r-   r   r   r   patchOrUnpatchAll   s   rD   )r   r.   r9   UserWarningr   r   r$   r0   rA   rD   r   __all__r   r   r   r   <module>   s     5+C