o
    ɝ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   N/var/www/html/ocr-read/venv/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 )GenerateJsonSchemaref_templateN)__name__
__module____qualname__str__annotations__r   r   r   r   rA      s   
 rA   c                   @   s   e Zd ZdS )PydanticSchemaGenerationErrorN)rC   rD   rE   r   r   r   r   rH      s    rH   RequestRequestErrorModel)refmetadataserializationfunction.rK   rL   rM   returnc                C   s   i S r   r   )rN   rK   rL   rM   r   r   r   "with_info_plain_validator_function   s   rP   flat_modelsmodel_name_mapc                 C   sl   i }| D ]}t ||td\}}}|| || }|||< q| D ]}d|v r3|d dd |d< q"|S )NrR   
ref_prefixdescriptionr   )r8   r   updatevaluessplit)rQ   rR   definitionsmodelm_schemam_definitionsm_nested_models
model_namer   r   r   get_model_definitions   s   

r`   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)fastapirb   
field_infoshaper-   r@   type_r"   dictr   field_annotation_is_sequencer   
isinstanceBody
sub_fieldsall)ra   rb   rg   r   r   r   rd      s$   




rd   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)	rh   sequence_shapesr@   ri   r"   rn   rd   r   _annotation_is_sequence)ra   	sub_fieldr   r   r   is_pv1_scalar_sequence_field   s   

rs   r[   c                 C   s   |    d S r   )update_forward_refsr[   r   r   r   _model_rebuild      rv   jsonmode)rx   pythonkwargsc                 K   s   | j di |S )Nr   )rj   )r[   ry   r{   r   r   r   _model_dump   s   r|   c                 C   s   | j S r   )
__config__ru   r   r   r   _get_model_config   s   r~   T)separate_input_output_schemasfield_mapping)
validationrM   r   c                 C   s   t | |tdd S )NrS   r   )r7   r   )ra   rR   r   r   r   r   r   get_schema_from_model_field   s
   	r   fieldsc                 C   s   t | t d}i t||dfS )N)known_models)rQ   rR   )r;   setr`   )r   rR   r   modelsr   r   r   get_definitions   s   	r   c                 C      t | S r   rc   ra   r   r   r   is_scalar_field     r   c                 C   s   | j tv p
t| jS r   )rh   rp   r   rq   ri   r   r   r   r   is_sequence_field     r   c                 C   r   r   )rs   r   r   r   r   is_scalar_sequence_field  r   r   c                 C   s   t | jtS r   )r@   ri   bytesr   r   r   r   is_bytes_field  rw   r   c                 C   s   | j tv o
t| jtS r   )rh   rp   r@   ri   r   r   r   r   r   is_bytes_sequence_field  r   r   rg   
annotationc                 C   r   r   r   )rg   r   r   r   r   copy_field_info   r   r   valuec                 C   s   t | j |S r   )sequence_shape_to_typerh   )ra   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#   rJ   errors)r   missing_field_error	new_errorr   r   r   get_missing_field_error(  s   r   r_   c                 C   s"   t |}| D ]}||j|j< q|S r   )r$   
__fields__name)r   r_   	BodyModelre   r   r   r   create_body_model.  s   r   c                 C   s   t | j S r   )listr   rX   ru   r   r   r   get_model_fields7  r   r   )rx   )yr   dataclassesr   r   enumr   typingr   r   r	   r
   r   r   r   r   r   fastapi._compatr   fastapi.openapi.constantsr   fastapi.typesr   pydantic.versionr   PYDANTIC_VERSIONtyping_extensionsr   tuplerY   PYDANTIC_VERSION_MINOR_TUPLEPYDANTIC_V2Ellipsisr    rG   pydanticr!   r"   r#   r$   pydantic.class_validatorsr%   pydantic.colorr&   pydantic.error_wrappersr'   pydantic.errorsr(   pydantic.fieldsr)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   pydantic.networksr4   r5   pydantic.schemar6   r7   r8   r9   r:   r;   r<   pydantic.typesr=   r>   pydantic.typingr?   pydantic.utilsr@   pydantic.v1pydantic.v1.class_validatorspydantic.v1.colorpydantic.v1.error_wrapperspydantic.v1.errorspydantic.v1.fieldspydantic.v1.networkspydantic.v1.schemapydantic.v1.typespydantic.v1.typingpydantic.v1.utilsGetJsonSchemaHandlerrF   JsonSchemaValue
CoreSchemaUrlrp   r   r   r   rA   	ExceptionrH   rJ   rP   r`   boolrd   rs   rv   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sF   , $	$			









"
	