o
    -wÖi¢	  ã                   @   sô   d dl Z d dlZd dlZd dlmZmZ e e¡ZzJd dl	Z	ej
 d¡rUdededefdd„Zded	ededdfd
d„Zdeeef defdd„Zd	edefdd„ZW dS d dl mZmZmZmZ W dS  eyy   d dl mZmZmZmZ Y dS w )é    N)ÚAnyÚUnionÚ_WANDB_ORJSONÚobjÚkwargsÚreturnc                 K   s‚   |  dd¡}z| ¡ }|r|j|d< tj| fdtji|¤Ž ¡ }W |S  ty@   t 	d¡ |r4||d< t
j| fi |¤Ž}Y |S w )z Wrapper for <json|orjson>.dumps.ÚclsNÚdefaultÚoptionzError using orjson.dumps)ÚpopÚcopyr	   ÚorjsonÚdumpsÚOPT_NON_STR_KEYSÚdecodeÚ	ExceptionÚloggerÚ	exceptionÚjson)r   r   r   Ú_kwargsÚencoded© r   úT/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/sdk/lib/json_util.pyr      s,   
ÿÿÿþ	ú
úr   Úfpc                 K   sŠ   |  dd¡}z| ¡ }|r|j|d< tj| fdtji|¤Ž}| |¡ W dS  tyD   t 	d¡ |r7||d< t
j| |fi |¤Ž Y dS w )zWrapper for <json|orjson>.dump.r   Nr	   r
   zError using orjson.dump)r   r   r	   r   r   r   Úwriter   r   r   r   Údump)r   r   r   r   r   r   r   r   r   r   $   s   

ür   c                 C   s:   zt  | ¡}W |S  ty   t d¡ t | ¡}Y |S w )zWrapper for orjson.loads.zError using orjson.loads)r   Úloadsr   r   r   r   )r   Údecodedr   r   r   r   3   s   ü
ür   c                 C   s>   z
t  |  ¡ ¡}W |S  ty   t d¡ t | ¡}Y |S w )zWrapper for orjson.load.zError using orjson.load)r   r   Úreadr   r   r   r   Úload)r   r   r   r   r   r   =   s   ü
ür   )r   r   r   r   )r   ÚloggingÚosÚtypingr   r   Ú	getLoggerÚ__name__r   r   ÚenvironÚgetÚstrr   r   Úbytesr   r   ÚImportErrorr   r   r   r   Ú<module>   s     

ÿ