�
h\�gA � � � d dl Z d dlmZ d dlmZ d dlmZmZmZm Z m
Z
mZmZ d dl
mZmZmZ d dlmZ d dlmZ dZeeee
e gef f Zerd d lmZ d
edefd�Z ed
�� � dd�d
ede e defd�� � Z ed� � Zdd�d
e
e dede e defd�Zdddde j dd�d
e
e deeef dededededeegef de e defd�Zdddde j dd�d
e
e dedededededeegef de e defd �Z dd!�d
ed"e e d#edd$fd%�Z!dd!�d
ed"e e d&edefd'�Z"dS )(� N)� lru_cache)�Path)�
TYPE_CHECKING�Any�Callable�Optional�Type�TypeVar�Union)�Protocol� load_file�load_str_bytes)�StrBytes��display_as_type)�
parse_file_as�parse_obj_as�parse_raw_as� schema_of�schema_json_of)�
DictStrAny�type_�returnc �( � dt | � � � d�S )Nz
ParsingModel[�]r )r s �a/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/pydantic/v1/tools.py�_generate_parsing_type_namer s � �4�?�5�1�1�4�4�4�4� i )�maxsize�� type_namer! c �~ � ddl m} |�t }t |t � � s || � � } ||| df�� � S )Nr )�create_model.��__root__)�pydantic.v1.mainr# r �
isinstance�str)r r! r# s r �_get_parsing_typer) sY � �-�-�-�-�-�-���/� ��i��%�%� %��I�e�$�$� ��<� �U�C�L�9�9�9�9r �T�objc �F � t | |�� � } ||�� � j S )Nr r$ )r) r% )r r+ r! �
model_types r r r $ s* � �"�5�I�>�>�>�J��:�s�#�#�#�,�,r �utf8F)�content_type�encoding�proto�allow_pickle�
json_loadsr! �pathr/ r0 r1 r2 r3 c �P � t ||||||�� � }t | ||�� � S �N)r1 r/ r0 r2 r3 r )r
r ) r r4 r/ r0 r1 r2 r3 r! r+ s r r r ) sA � � ���!��!��
� � �C� ��s�i�8�8�8�8r �bc �P � t ||||||�� � }t | ||�� � S r6 )r r ) r r7 r/ r0 r1 r2 r3 r! r+ s r r r ? sA � � � ��!��!��
� � �C� ��s�i�8�8�8�8r )�titler9 �
schema_kwargsr c �: � t | |�� � j di |��S )zRGenerate a JSON schema (as dict) for the passed model or dynamically generated oner � )r) �schema)r r9 r: s r r r U s) � �;��U�e�4�4�4�;�L�L�m�L�L�Lr �schema_json_kwargsc �: � t | |�� � j di |��S )zRGenerate a JSON schema (as JSON) for the passed model or dynamically generated oner r<