U
    wi(                     @   s.   d dl Z d dlmZ d dlZG dd dZdS )    N)Pathc                   @   sR   e Zd ZdeeB edB ddddZedddZeddd	Zddd
dZ	dS )	AsyncJsonN)path	init_datareturnc                 C   s0   t |tr|nt|| _t |tr&|ni | _d S )N)
isinstancer   r   dictdata)selfr   r    r   N/var/www/html/lefter/venv/lib/python3.8/site-packages/pyutilities/asyncjson.py__init__   s    zAsyncJson.__init__)r   c              
      sN   t j| jddd4 I d H "}|tj| jddI d H  W 5 Q I d H R X | jS )Nautf-8encoding   indent)aiofilesopenr   writejsondumpsr	   )r
   fr   r   r   _create_json
   s    ,zAsyncJson._create_jsonc              
      sd   | j  s|  I d H }|S tj| j ddd4 I d H }t| I d H | _W 5 Q I d H R X | jS )Nrr   r   )	r   existsr   r   r   r   loadsreadr	   )r
   _datajsr   r   r   load   s    
&zAsyncJson.loadc              
      sV   | j  sd S t| j d4 I d H "}|tj| jddI d H  W 5 Q I d H R X d S )Nwr   r   )r   r   r   r   r   r   r   r	   )r
   r!   r   r   r   save   s
    
,zAsyncJson.save)N)
__name__
__module____qualname__strr   r   r   r   r"   r$   r   r   r   r   r      s   
r   )r   pathlibr   r   r   r   r   r   r   <module>   s   