File: //home/arjun/.local/lib/python3.10/site-packages/openai/lib/__pycache__/_pydantic.cpython-310.pyc
o
���g� � @ s� d dl mZ d dlZd dlmZmZ d dlmZ d dlZddl m
Z
ddlmZ
mZ ddlmZmZ ed �Zd,dd�Zd-dd�Zd.dd�Zd/dd �Zd0d"d#�Zd1d&d'�Zd2d*d+�ZdS )3� )�annotationsN)�Any�TypeVar)� TypeGuard� )� NOT_GIVEN)�is_dict�is_list)�PYDANTIC_V2�model_json_schema�_T�model�4type[pydantic.BaseModel] | pydantic.TypeAdapter[Any]�return�dict[str, Any]c C sR t �| �rt| �rt| �}ntrt| tj�r| �� }nt d| � ���t
|d|d�S )Nz:Non BaseModel types are only supported with Pydantic v2 - � ��path�root)�inspect�isclass�is_basemodel_typer r
�
isinstance�pydantic�TypeAdapter�json_schema� TypeError�_ensure_strict_json_schema)r
�schemar r �G/home/arjun/.local/lib/python3.10/site-packages/openai/lib/_pydantic.py�to_strict_json_schema s
r r �objectr �tuple[str, ...]r �dict[str, object]c sr t | �std| � d� � ���| �d�}t |�r.|�� D ]\}}t|g � �d�|�R �d� q| �d�}t |�rN|�� D ]\}}t|g � �d�|�R �d� q;| �d�} | dkr_d| vr_d | d<