U
    ~fh                  	   @   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   5/tmp/pip-unpacked-wheel-eumuxwxh/pydantic/v1/parse.pyr   
   s   r   utf8F)content_typeencodingprotoallow_pickle
json_loads)br   r   r   r   r   returnc                C   s   |d k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	   Z
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 kr:| jdk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   Zpydantic.v1.typesr   strr   r   boolr    r$   r   r   r   r   <module>   sD   #
