o
    liU(                     @   s@  U d dl m Z  d dlmZmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ ed
d eddd D Zed  dkZeZ ee!d< esd dl"m#Z# d dl"m$Z$ d dl"m%Z% d dl"m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 d dl/m7Z7 d dl/m8Z8 d dl/m9Z9 d dl/m:Z: d dl;m<Z< d dl;m=Z= d dl>m?Z? d d l>m@Z@mAZA d d!l>mBZB d d"l>mCZC d d#l>mDZD d d$l>mEZE d d%lFmGZG d d&lFmHZH d d'lImJZJ d d(lKmLZL nd dlMm#Z# d dlMm$Z$ d dlMm%Z% d dlMm&Z& d dlNm(Z( d dlOm*Z* d dlPm,Z, d dlQm.Z. d dlRm0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 d dlRm7Z7 d dlRm8Z8 d dlRm9Z9 d dlRm:Z: d dlSm<Z< d dlSm=Z= d dlTm?Z? d d lTm@Z@mAZA d d!lTmBZB d d"lTmCZC d d#lTmDZD d d$lTmEZE d d%lUmGZG d d&lUmHZH d d'lVmJZJ d d(lWmLZL eZXe	eYef ZZeZ[e<Z\e1e3e0e5e2e6hZ]e1e^e3e_e5ee2e^e6e^iZ`eG d)d* d*ZaG d+d, d,ebZce&d-Zdee$ e!d.< dddd/d0ed1ef d2eeYdf d3ed4ed5ef
d6d7Zed8eeee$ ee f  d9e	eee$ ee f eYf d5e	eYef fd:d;Zfd<e8d5egfd=d>Zhd<e8d5egfd?d@ZidAee$ d5dfdBdCZj	DdodAe$dEedF dGed5efdHdIZkdAe$d5efdJdKZldLdMd<e8d9edNe	ee8edO f eZf dPegd5e	eYef f
dQdRZmdLdMdSe
e8 d9edPegd5ee	ee8edO f eZf e	eYe	eYef f f fdTdUZnd<e8d5egfdVdWZod<e8d5egfdXdYZpd<e8d5egfdZd[Zqd<e8d5egfd\d]Zrd<e8d5egfd^d_Zsd`e7daed5e7fdbdcZtd<e8dded5ee fdedfZudgeeYd1f d5e	eYef fdhdiZvdSee8 djeYd5ee$ fdkdlZwdAee$ d5e
e8 fdmdnZxdS )p    copy)	dataclassis_dataclass)Enum)	AnyCallableDictListSequenceSetTupleTypeUnion)shared)
REF_PREFIX)ModelNameMap)VERSION)Literalc                 c       | ]}t |V  qd S N)int).0x r   Y/home/app/PaddleOCR-VL/.venv_paddleocr/lib/python3.10/site-packages/fastapi/_compat/v1.py	<genexpr>       r   .N   RequiredParam)
BaseConfig)	BaseModel)ValidationError)create_model)	Validator)Color)ErrorWrapper)MissingError)SHAPE_FROZENSET
SHAPE_LISTSHAPE_SEQUENCE	SHAPE_SETSHAPE_SINGLETONSHAPE_TUPLESHAPE_TUPLE_ELLIPSIS)	FieldInfo)
ModelField)	Undefined)UndefinedType)AnyUrl)	NameEmail)TypeModelSet)field_schemamodel_process_schema)get_annotation_from_field_info)get_flat_models_from_field)get_flat_models_from_fields)get_model_name_map)SecretBytes)	SecretStr)evaluate_forwardref)lenient_issubclassc                   @   s   e Zd ZU eed< dS )GenerateJsonSchemaZref_templateN)__name__
__module____qualname__str__annotations__r   r   r   r   rA      s   
 rA   c                   @   s   e Zd ZdS )PydanticSchemaGenerationErrorN)rB   rC   rD   r   r   r   r   rG      s    rG   RequestRequestErrorModel)refmetadataserializationfunction.rJ   rK   rL   returnc                C   s   i S r   r   )rM   rJ   rK   rL   r   r   r   "with_info_plain_validator_function   s   rO   flat_modelsmodel_name_mapc                 C   sl   i }| D ]}t ||td\}}}|| || }|||< q| D ]}d|v r3|d dd |d< q"|S )NrQ   Z
ref_prefixdescriptionr   )r8   r   updatevaluessplit)rP   rQ   ZdefinitionsmodelZm_schemaZm_definitionsZm_nested_models
model_namer   r   r   get_model_definitions   s   

rZ   fieldc                 C   s|   ddl m} | j}| jtkr+t| jts+t| jts+t	
| js+t| js+t||jr-dS | jr<tdd | jD s<dS dS )Nr   )paramsFc                 s   r   r   is_pv1_scalar_field)r   fr   r   r   r      r   z&is_pv1_scalar_field.<locals>.<genexpr>T)Zfastapir\   
field_infoshaper-   r@   type_r"   dictr   Zfield_annotation_is_sequencer   
isinstanceZBody
sub_fieldsall)r[   r\   r`   r   r   r   r^      s$   




r^   c                 C   sR   | j tv rt| jts| jd ur| jD ]	}t|s dS qdS t| jr'dS dS )NFT)	ra   sequence_shapesr@   rb   r"   re   r^   r   _annotation_is_sequence)r[   Z	sub_fieldr   r   r   is_pv1_scalar_sequence_field   s   

ri   rX   c                 C   s   |    d S r   )Zupdate_forward_refsrX   r   r   r   _model_rebuild      rk   jsonmode)rm   pythonkwargsc                 K   s   | j di |S )Nr   )rc   )rX   rn   rp   r   r   r   _model_dump   s   rq   c                 C   s   | j S r   )Z
__config__rj   r   r   r   _get_model_config   s   rr   T)separate_input_output_schemasfield_mapping)Z
validationrL   rs   c                 C   s   t | |tdd S )NrR   r   )r7   r   )r[   rQ   rt   rs   r   r   r   get_schema_from_model_field   s
   	ru   fieldsc                 C   s   t | t d}i t||dfS )N)Zknown_models)rP   rQ   )r;   setrZ   )rv   rQ   rs   modelsr   r   r   get_definitions   s   	ry   c                 C      t | S r   r]   r[   r   r   r   is_scalar_field     r|   c                 C   s   | j tv p
t| jS r   )ra   rg   r   rh   rb   r{   r   r   r   is_sequence_field     r~   c                 C   rz   r   )ri   r{   r   r   r   is_scalar_sequence_field  r}   r   c                 C   s   t | jtS r   )r@   rb   bytesr{   r   r   r   is_bytes_field  rl   r   c                 C   s   | j tv o
t| jtS r   )ra   rg   r@   rb   r   r{   r   r   r   is_bytes_sequence_field  r   r   r`   
annotationc                 C   rz   r   r   )r`   r   r   r   r   copy_field_info   r}   r   valuec                 C   s   t | j |S r   )sequence_shape_to_typera   )r[   r   r   r   r   serialize_sequence_value$     r   locc                 C   s&   t t | d}t|gt}| d S )N)r   r   )r'   r(   r#   rI   errors)r   Zmissing_field_errorZ	new_errorr   r   r   get_missing_field_error(  s   r   rY   c                 C   s"   t |}| D ]}||j|j< q|S r   )r$   
__fields__name)rv   rY   Z	BodyModelr_   r   r   r   create_body_model.  s   r   c                 C   s   t | j S r   )listr   rV   rj   r   r   r   get_model_fields7  r   r   )rm   )yr   dataclassesr   r   enumr   typingr   r   r	   r
   r   r   r   r   r   Zfastapi._compatr   Zfastapi.openapi.constantsr   Zfastapi.typesr   Zpydantic.versionr   ZPYDANTIC_VERSIONZtyping_extensionsr   tuplerW   ZPYDANTIC_VERSION_MINOR_TUPLEZPYDANTIC_V2Ellipsisr    rF   Zpydanticr!   r"   r#   r$   Zpydantic.class_validatorsr%   Zpydantic.colorr&   Zpydantic.error_wrappersr'   Zpydantic.errorsr(   Zpydantic.fieldsr)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   Zpydantic.networksr4   r5   Zpydantic.schemar6   r7   r8   r9   r:   r;   r<   Zpydantic.typesr=   r>   Zpydantic.typingr?   Zpydantic.utilsr@   Zpydantic.v1Zpydantic.v1.class_validatorsZpydantic.v1.colorZpydantic.v1.error_wrappersZpydantic.v1.errorsZpydantic.v1.fieldsZpydantic.v1.networksZpydantic.v1.schemaZpydantic.v1.typesZpydantic.v1.typingZpydantic.v1.utilsZGetJsonSchemaHandlerrE   ZJsonSchemaValueZ
CoreSchemaUrlrg   r   rw   r   rA   	ExceptionrG   rI   rO   rZ   boolr^   ri   rk   rq   rr   ru   ry   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sF   , $	$			









"
	