o
     d                     @   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dedededededeegef defddZdd	dd
e jdde	eef dededededeegef def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   9/usr/local/lib/python3.10/dist-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| |p"tj}|tjkr6t| tr2| |} || S |tjkrQ|sAtdt| trH| n| 	 }t
|S td| )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   bbr   r   r   load_str_bytes   s"   	






r#   pathc                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>   s^    
#
