o
    㥵iR                     @   s  d dl Z d dlmZmZmZmZ d dlmZ d dlmZ	 e	
dZdZg dZer}d dlmZ d d	lmZmZ d d
lmZ dZdee dedeee ef fddZdee deeef fddZdee deeef fddZdedee fddZdS d dlmZ d dlmZ d dlmZ d dlmZ dZdee dedeee ef fddZdee deeef fddZdee deeef fddZdedee fd dZdS )!    N)AnyDictTupleType)	BaseModel)__version__z1.z#/components/schemas/{model})IS_V1validate_modelget_model_fieldsget_model_json_schemacreate_root_model	Undefinedto_jsonable_pythoncreate_model)
ModelFieldr   )pydantic_encoderdefinitionsmodelvreturnc                 C   s(   |  |}t|dr| |jfS | |jfS )N__root__)	parse_objhasattrr   __dict__r   r   res r   K/home/ubuntu/.local/lib/python3.10/site-packages/kui/pydantic_compatible.pyr	         



r	   c                 C      | j S N)
__fields__r   r   r   r   r
   #      r
   c                 C      t | jtdS N)ref_template)copydeepcopyschemaREF_TEMPLATEr#   r   r   r   r   &      r   type_c                 C   s   t d| dfdS )N	RootModel.)r   r   r-   r   r   r   r   )   s   r   r.   )	FieldInfo)PydanticUndefined)r   z$defsc                 C   s(   |  |}t|tr| |jfS | |jfS r!   )model_validate
isinstancer.   rootr   r   r   r   r   r	   3   r   c                 C   r    r!   )model_fieldsr#   r   r   r   r
   :   r$   c                 C   r%   r&   )r(   r)   model_json_schemar+   r#   r   r   r   r   =   r,   c                 C   s   t |  S r!   r0   r/   r   r   r   r   @   s   )r(   typingr   r   r   r   pydanticr   r   pydantic_version
startswithr   r+   __all__r   pydantic.fieldsr   r   pydantic.jsonr   r   DEFINITIONS_KEYr	   strr
   r   r   r.   r1   pydantic_corer2   r   r   r   r   <module>   s2    

&&