a
    g=ic                  	   @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZmZm	Z	 ddl
mZ G dd deeZdd	dd
e jdeeeeeeegef edddZdd	dd
e jde	eef eeeeeegef edddZdS )    N)Enum)Path)AnyCallableUnion   )StrBytesc                   @   s   e Zd ZdZdZdS )ProtocoljsonpickleN)__name__
__module____qualname__r
   r    r   r   _/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/pydantic/parse.pyr	   
   s   r	   utf8F)content_typeencodingprotoallow_pickle
json_loads)br   r   r   r   r   returnc                C   s   |d u r<|r<| drn$|r.| dr.tj}ntd| |pDtj}|tjkrlt| trd| |} || S |tjkr|stdt| tr| n| 	 }t
|S td| d S )N)r
   
javascriptr   zUnknown content-type: z4Trying to decode with pickle with allow_pickle=FalsezUnknown protocol: )endswithr	   r   	TypeErrorr
   
isinstancebytesdecodeRuntimeErrorencodeloads)r   r   r   r   r   r   Zbbr   r   r   load_str_bytes   s"    	






r"   )pathr   r   r   r   r   r   c                C   sN   t | } |  }|d u r:| jdv r*tj}n| jdkr:tj}t||||||dS )N)z.jsz.jsonz.pkl)r   r   r   r   r   )r   
read_bytessuffixr	   r
   r   r"   )r#   r   r   r   r   r   r   r   r   r   	load_file/   s    	

r&   )r
   r   enumr   pathlibr   typingr   r   r   typesr   strr	   r!   boolr"   r&   r   r   r   r   <module>   sD   #
