
    dfY                     	   d dl mZ 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mZmZmZ d dlmZ d dlmZmZmZ d dlmZmZ d d	lmZ  d d
l!m"Z" d dl#m$Z$m%Z%m&Z&m'Z'  e jP                  d      Z)ee*ee*e*e*ee+e+e+ee,e,e,ee-e-e-eeeeiZ. e+e.j_                               Z0e)rd dlm1Z1 d dlm2Z2 d dlm3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z= d dl<m>Z> d dl?m@Z@ d dl?mAZAmBZB d dl?mCZC 	 d dlDmEZE eAZHeAZIeBZJe7ZKe	ZL G d d      ZM G d deN      ZOe G d d              ZPd!e	d"e;d#eQd$e	fd%ZRd&ee	   d$eeeQe	f      fd'ZSd(ee   d$d)fd*ZT	 dd(ed+e%d,   d-e	d$e	fd.ZUd(ed$e	fd/ZVd0d1d2ePd3e=d4ed5eeePe%d6   f   e>f   d7eWd$eeQe	f   fd8ZXd9eeP   d$efd:ZYd0d1d9eeP   d3e=d4ed7eWd$eeeePe%d6   f   e>f   eeQeeQe	f   f   f   f
d;ZZd2ePd$eWfd<Z[d2ePd$eWfd=Z\d2ePd$eWfd>Z]d2ePd$eWfd?Z^d2ePd$eWfd@Z_d"e;d!e	d$e;fdAZ`d2ePdBe	d$ee	   fdCZadDeeQdEf   d$eeQe	f   fdFZbd9eeP   dGeQd$ee   fdHZcnd dIldmeZe d dJlmfZC d dKlmMZM d dlm3Z3 d dLlgmLZL d dMlhmOZO d dNlimjZj d dOl:mkZkmlZlmmZmmnZnmoZompZpmqZq d dl:m;Z; d dPl:mPZP d dQl:mHZH d dRl:mIZI d dSl:mJZJ d dTlrmsZsmtZtmuZumvZv d dUlrmRZR d dVlwmKZK d dlxm9Z9 e	Z5eeQe	f   Z>e	Z@elenekepemeqhZyele*ene,epe+eme*eqe*iZze G dW dX             Z= G dY dZeN      Z1d)d)d)d[d\e
dEe	f   d]eeQd)f   d^e	d_e	d$e	f
d`ZEdaeeee   ee   f      d4eeee   ee   f   eQf   d$eeQe	f   fdbZ{d2ePd$eWfdcZ|d2ePd$eWfddZ}d&ee	   d$eeeQe	f      fdeZSd(ee   d$d)fdfZT	 dd(ed+e%d,   d-e	d$e	fdgZUd(ed$e	fdhZVd0d1d2ePd3e=d4ed5eeePe%d6   f   e>f   d7eWd$eeQe	f   fdiZXd9eeP   d$efdjZYd0d1d9eeP   d3e=d4ed7eWd$eeeePe%d6   f   e>f   eeQeeQe	f   f   f   f
dkZZd2ePd$eWfdlZ[d2ePd$eWfdmZ\d2ePd$eWfdnZ]d2ePd$eWfdoZ^d2ePd$eWfdpZ_d"e;d!e	d$e;fdqZ`d2ePdBe	d$ee	   fdrZadDeeQdEf   d$eeQe	f   fdsZbd9eeP   dGeQd$ee   fdtZcd&ee	   dueeeQe~f   dEf   d$eeeQe	f      fdvZd!eee	   d)f   d$eWfdwZd!eee	   d)f   d$eWfdxZdBe	d$eWfdyZd!eee	   d)f   d$eWfdzZd!eee	   d)f   d$eWfd{Zd!e	d$eWfd|Zd!eee	   d)f   d$eWfd}Zd!e	d$eWfd~Zd!e	d$eWfdZd!e	d$eWfdZd!e	d$eWfdZy)# eF$ r
 d dlDmGZE Y w xY w)    )dequecopy)	dataclassis_dataclass)Enum)AnyCallableDequeDict	FrozenSetListMappingSequenceSetTupleTypeUnion)RequestErrorModel)IncExModelNameMap	UnionType)	BaseModelcreate_model)VERSION)
UploadFile)	AnnotatedLiteralget_args
get_originz2.)PydanticSchemaGenerationError)TypeAdapter)ValidationError)GetJsonSchemaHandler)eval_type_lenient)lenient_issubclass)	FieldInfo)GenerateJsonSchema)JsonSchemaValue)
CoreSchema)PydanticUndefinedPydanticUndefinedType)Url)"with_info_plain_validator_function) general_plain_validator_functionc                       e Zd Zy)
BaseConfigN__name__
__module____qualname__     H/home/api-vastappli/venv/lib/python3.12/site-packages/fastapi/_compat.pyr1   r1   M       r7   r1   c                       e Zd Zy)ErrorWrapperNr2   r6   r7   r8   r;   r;   P   r9   r7   r;   c                   j   e Zd ZU eed<   eed<   dZed   ed<   edefd       Z	ede
fd       Zedefd	       Zedefd
       Zd"dZdefdZi fdddedeeef   deeeef   df   deeeeeeef      df   f   fdZdddddddddeded   deedf   deedf   de
de
de
de
defd Zdefd!Zy)#
ModelField
field_infoname
validationr@   serializationmodereturnc                 N    | j                   j                  }||S | j                  S N)r>   aliasr?   )selfas     r8   rG   zModelField.aliasY   s$    %%A144994r7   c                 6    | j                   j                         S rF   )r>   is_requiredrH   s    r8   requiredzModelField.required^   s    ??..00r7   c                 "    | j                         S rF   )get_defaultrL   s    r8   defaultzModelField.defaultb   s    ##%%r7   c                 .    | j                   j                  S rF   r>   
annotationrL   s    r8   type_zModelField.type_f   s    ??---r7   Nc                 r    t        t        | j                  j                  | j                  f         | _        y rF   )r"   r   r>   rS   _type_adapterrL   s    r8   __post_init__zModelField.__post_init__j   s*    3>$//44dooEF4Dr7   c                 z    | j                   j                         rt        S | j                   j                  d      S )NT)call_default_factory)r>   rK   	UndefinedrO   rL   s    r8   rO   zModelField.get_defaulto   s0    **,  ??..D.IIr7   r6   locvaluevaluesr\   .c                    	 | j                   j                  |d      d fS # t        $ r'}d t        |j	                         |      fcY d }~S d }~ww xY w)NT)from_attributes)errors
loc_prefix)rV   validate_pythonr#   _regenerate_error_with_locra   )rH   r]   r^   r\   excs        r8   validatezModelField.validatet   s_    &&66ud6S  # 7::<C  s   ! 	AAAAjsonTFrC   includeexcludeby_aliasexclude_unsetexclude_defaultsexclude_nonerg   pythonri   rj   rk   rl   rm   rn   c          
      H    | j                   j                  ||||||||      S )Nrh   )rV   dump_python)	rH   r]   rC   ri   rj   rk   rl   rm   rn   s	            r8   	serializezModelField.serialize   s:     %%11!+!1) 2 	 	r7   c                     t        |       S rF   )idrL   s    r8   __hash__zModelField.__hash__   s     d8Or7   )rD   N)r3   r4   r5   r'   __annotations__strrC   r   propertyrG   boolrM   r	   rP   rT   rW   rO   r   r   r   intr   rf   r   rs   rv   r6   r7   r8   r=   r=   S   s   	7Cg34C		53 	5 
	5 
	1d 	1 
	1 
	&S 	& 
	& 
	.3 	. 
	.	
	J 	J &(	
 02		 cN	
 uS#X+,	 3d4S>2D899:	* /5*.*.!"'%*!&		 *+		
 5$;'	 5$;'	 	  	 #	 	 	2	c 	r7   r=   rS   r>   
field_namerD   c                     | S rF   r6   )rS   r>   r|   s      r8   get_annotation_from_field_infor~      s
     r7   ra   c                     | S rF   r6   )ra   s    r8   _normalize_errorsr      s    r7   modelNc                 $    | j                          y rF   )model_rebuildr   s    r8   _model_rebuildr      s    r7   rC   ro   kwargsc                 *     | j                   dd|i|S )NrC   r6   )
model_dumpr   rC   r   s      r8   _model_dumpr      s      u4T4V44r7   c                     | j                   S rF   )model_configr   s    r8   _get_model_configr      s    !!!r7   T)separate_input_output_schemasfieldschema_generatormodel_name_mapfield_mappingrA   r   c                     |rd nd}|| |xs | j                   f   }d|vrE| j                  j                  xs* | j                  j                         j	                  dd      |d<   |S )Nr@   z$ref_ title)rC   r>   r   rG   replace)r   r   r   r   r   override_modejson_schemas          r8   get_schema_from_model_fieldr      sw     2D| 	 $UM,GUZZ$HI$
   &&O%++*;*;*=*E*Ec3*O  r7   fieldsc                     i S rF   r6   )r   s    r8   get_compat_model_name_mapr      s    	r7   c                     |rd nd}| D cg c])  }||xs |j                   |j                  j                  f+ }}|j                  |      \  }}||fS c c}w )Nr@   )inputs)rC   rV   core_schemagenerate_definitions)	r   r   r   r   r   r   r   r   definitionss	            r8   get_definitionsr      s}     2D| 	
  
 M/UZZ1D1D1P1PQ
 
 &6%J%J &K &
"{ k))
s   .Ac                     ddl m} t        | j                  j                        xr! t        | j                  |j                         S )Nr   params)fastapir   field_annotation_is_scalarr>   rS   
isinstanceBody)r   r   s     r8   is_scalar_fieldr      s=    ")''
 <U--v{{;;	<r7   c                 @    t        | j                  j                        S rF   )field_annotation_is_sequencer>   rS   r   s    r8   is_sequence_fieldr      s    +E,<,<,G,GHHr7   c                 @    t        | j                  j                        S rF   )#field_annotation_is_scalar_sequencer>   rS   r   s    r8   is_scalar_sequence_fieldr      s    253C3C3N3NOOr7   c                 ,    t        | j                        S rF   )$is_bytes_or_nonable_bytes_annotationrT   r   s    r8   is_bytes_fieldr      s    3EKK@@r7   c                 ,    t        | j                        S rF   )is_bytes_sequence_annotationrT   r   s    r8   is_bytes_sequence_fieldr      s    +EKK88r7   c                 6    t        |       j                  |      S rF   )typefrom_annotationrR   s     r8   copy_field_infor      s    J//
;;r7   r]   c                     t        | j                  j                        xs | j                  j                  }t        |t              sJ t        |   |      S rF   )r    r>   rS   
issubclasssequence_typessequence_annotation_to_type)r   r]   origin_types      r8   serialize_sequence_valuer      sK    u''223Ru7G7G7R7R 	 +~66*;7>>r7   r\   .c                 h    t        j                  dd| i dg      j                         d   }d |d<   |S )NzField requiredmissing)r   r\   inputr   r   )r#   from_exception_datara   )r\   errors     r8   get_missing_field_errorr     s?    33	#KL

&(1 gr7   
model_namec                     | D ci c]/  }|j                   |j                  j                  |j                  f1 }}t        |fi |}|S c c}w rF   )r?   r>   rS   r   )r   r   ffield_params	BodyModels        r8   create_body_modelr     sP     RXXA!8!8!,, GGXX%1*%M%M	 Ys   4A	)
REF_PREFIX)AnyUrl)r1   )	Validator)r;   )MissingError)SHAPE_FROZENSET
SHAPE_LISTSHAPE_SEQUENCE	SHAPE_SETSHAPE_SINGLETONSHAPE_TUPLESHAPE_TUPLE_ELLIPSIS)r=   )Required)rZ   )UndefinedType)field_schemaget_flat_models_from_fieldsget_model_name_mapmodel_process_schema)r~   )evaluate_forwardrefc                       e Zd ZU eed<   y)r(   ref_templateN)r3   r4   r5   rx   rw   r6   r7   r8   r(   r(   [  s    r7   r(   c                       e Zd Zy)r!   Nr2   r6   r7   r8   r!   r!   _  r9   r7   r!   )refmetadatarB   functionr   r   rB   c                    i S rF   r6   )r   r   r   rB   s       r8   r.   r.   b  s	     	r7   flat_modelsc                     i }| D ]Q  }t        ||t              \  }}}|j                  |       ||   }d|v r|d   j                  d      d   |d<   |||<   S |S )Nr   
ref_prefixdescriptionr   )r   r   updatesplit)r   r   r   r   m_schemam_definitionsm_nested_modelsr   s           r8   get_model_definitionsr   k  s    
 24  	/E7Kn84Hm_ }-'.J(*2=*A*G*G*Ma*P'&.K
#	/ r7   c                    ddl m} | j                  }| j                  t        k(  rtt        | j                  t              sZt        | j                  t              s@t        | j                        s+t        | j                        st        ||j                        ry| j                  rt        d | j                  D              syy)Nr   r   Fc              3   2   K   | ]  }t        |        y wrF   is_pv1_scalar_field).0r   s     r8   	<genexpr>z&is_pv1_scalar_field.<locals>.<genexpr>  s       $A&   T)r   r   r>   shaper   r&   rT   r   dictr   r   r   r   
sub_fieldsall)r   r   r>   s      r8   r   r   |  s    "%%
KK?*&u{{I>&u{{D90= -z6;;7 ))  r7   c                     | j                   t        v rEt        | j                  t              s+| j
                  | j
                  D ]  }t        |      r y yt        | j                        ryy)NFT)r   sequence_shapesr&   rT   r   r   r   _annotation_is_sequence)r   	sub_fields     r8   is_pv1_scalar_sequence_fieldr    sd    KK?*4FKK5
 +!&!1!1 %I.y9$% "5;;/r7   c                    g }| D ]  }t        |t              r2t        |gt              j	                         }|j                  |       Et        |t              r|j                  t        |             p|j                  |        |S )N)ra   r   )	r   r;   r#   r   ra   extendlistr   append)ra   
use_errorsr   
new_errorss       r8   r   r     s     "
 		)E%.,!7*;&(  !!*-E4(!!"3E":;!!%(		) r7   c                 $    | j                          y rF   )update_forward_refsr   s    r8   r   r     s    !!#r7   c                 &     | j                   di |S )Nr6   )r   r   s      r8   r   r     s     uzz#F##r7   c                     | j                   S rF   )
__config__r   s    r8   r   r     s    r7   c                 ,    t        | |t              d   S )Nr   r   )r   r   )r   r   r   r   r   s        r8   r   r     s      .Z

 	r7   c                 B    t        | t                     }t        |      S )Nknown_models)r   setr   )r   modelss     r8   r   r     s    ,V#%H!&))r7   c                 J    t        | t                     }i t        ||      fS )Nr  )r   r   )r   r  r   )r   r   r   r   r  s        r8   r   r     s,     -V#%H(~
 
 	
r7   c                     t        |       S rF   r   r   s    r8   r   r     s    "5))r7   c                 T    | j                   t        v xs t        | j                        S rF   )r   r   r  rT   r   s    r8   r   r     s     {{o-U1H1UUr7   c                     t        |       S rF   )r  r   s    r8   r   r     s    +E22r7   c                 6    t        | j                  t              S rF   )r&   rT   bytesr   s    r8   r   r     s    !%++u55r7   c                 ^    | j                   t        v xr t        | j                  t              S rF   )r   r   r&   rT   r  r   s    r8   r   r     s#    {{o-X2DU[[RW2XXr7   c                     t        |       S rF   r   rR   s     r8   r   r     s    Jr7   c                 2    t        | j                     |      S rF   )sequence_shape_to_typer   )r   r]   s     r8   r   r     s    %ekk2599r7   c                 t    t        t               |       }t        |gt              }|j	                         d   S )Nr[   r   )r;   r   r#   r   ra   )r\   missing_field_error	new_errors      r8   r   r     s6    *<>sC#%8$9;LM	!!$$r7   c                 \    t        |      }| D ]  }||j                  |j                  <    |S rF   )r   
__fields__r?   )r   r   r   r   s       r8   r   r     s7     !,	 	-A+,I  (	-r7   rb   c           
      r    t        |       D cg c]  }i |d||j                  dd      z   i }}|S c c}w )Nr\   r6   )r   get)ra   rb   errupdated_loc_errorss       r8   rd   rd     sP    
 %V,% 	837zCGGE2$667% %
 %s   "4c                 P    t        | t        t        f      ryt        | t              S )NF)r&   rx   r  r   rS   s    r8   r  r  	  s     *sEl3j.99r7   c                 D    t        |       xs t        t        |             S rF   )r  r    r)  s    r8   r   r     s$    ":. 2I:3 r7   c                 T    t        | t              xr t        | t        t        f       S rF   )r   r   rx   r  )r]   s    r8   value_is_sequencer,    s"    e^,TZU|5T1TTr7   c                 l    t        | t        t        t        f      xs t	        |       xs t        |       S rF   )r&   r   r   r   r  r   r)  s    r8   _annotation_is_complexr.    s2    :	7J'GH 	$":.	$
#r7   c                     t        |       }|t        u s|t        u rt        d t	        |       D              S t        |       xs' t        |      xs t        |d      xs t        |d      S )Nc              3   2   K   | ]  }t        |        y wrF   )field_annotation_is_complex)r   args     r8   r   z.field_annotation_is_complex.<locals>.<genexpr>$  s     T.s3Tr   __pydantic_core_schema____get_pydantic_core_schema__)r    r   r   anyr   r.  hasattr)rS   origins     r8   r1  r1  !  sn    
#F&I-Tx
?STTT 	z* 	;!&)	;656	; 69:	r7   c                 .    | t         u xs t        |        S rF   )Ellipsisr1  r)  s    r8   r   r   .  s    !P)DZ)P%PPr7   c                     t        |       }|t        u s|t        u r/d}t        |       D ]  }t	        |      rd}t        |      r y |S t        |       xr t        d t        |       D              S )NFTc              3   2   K   | ]  }t        |        y wrF   )r   r   sub_annotations     r8   r   z6field_annotation_is_scalar_sequence.<locals>.<genexpr>>  s      < 	#>2<r   )r    r   r   r   r   r   r   r   )rS   r7  at_least_one_scalar_sequencer2  s       r8   r   r   3  s    
#F&I-',$J' 	C237/3,/4	 ,+'
3  <&z2< 9 r7   c                     t        | t              ryt        |       }|t        u s|t        u r"t        |       D ]  }t        |t              s y yNTF)r&   r  r    r   r   r   rS   r7  r2  s      r8   r   r   D  sM    *e,
#F&I-J' 	C!#u-	 r7   c                     t        | t              ryt        |       }|t        u s|t        u r"t        |       D ]  }t        |t              s y yr@  )r&   r   r    r   r   r   rA  s      r8   .is_uploadfile_or_nonable_uploadfile_annotationrC  O  sM    *j1
#F&I-J' 	C!#z2	 r7   c                     t        |       }|t        u s|t        u r"d}t        |       D ]  }t	        |      sd} |S t        |       xr t        d t        |       D              S )NFTc              3   2   K   | ]  }t        |        y wrF   )r   r<  s     r8   r   z/is_bytes_sequence_annotation.<locals>.<genexpr>c  s      < 	-^<<r   )r    r   r   r   r   r   r   rS   r7  at_least_oner2  s       r8   r   r   Z  sv    
#F&I-J' 	C+C0#	 '
3  <&z2< 9 r7   c                     t        |       }|t        u s|t        u r"d}t        |       D ]  }t	        |      sd} |S t        |       xr t        d t        |       D              S )NFTc              3   2   K   | ]  }t        |        y wrF   )rC  r<  s     r8   r   z4is_uploadfile_sequence_annotation.<locals>.<genexpr>r  s      < 	7~F<r   )r    r   r   r   !is_uploadfile_sequence_annotationr   r   rF  s       r8   rJ  rJ  i  sv    
#F&I-J' 	C05#	 '
3  <&z2< 9 r7   )rg   )collectionsr   r   dataclassesr   r   enumr   typingr	   r
   r   r   r   r   r   r   r   r   r   r   fastapi.exceptionsr   fastapi.typesr   r   r   pydanticr   r   pydantic.versionr   PYDANTIC_VERSIONstarlette.datastructuresr   typing_extensionsr   r   r   r    
startswithPYDANTIC_V2r  tupler  	frozensetr   keysr   r!   r"   r#   ,pydantic._internal._schema_generation_sharedr$    pydantic._internal._typing_extrar%   pydantic._internal._utilsr&   pydantic.fieldsr'   pydantic.json_schemar(   r)   pydantic_corer*   r+   r,   r-   pydantic_core.core_schemar.   ImportErrorr/   r   rZ   r   r   r   r1   	Exceptionr;   r=   rx   r~   r   r   r   r   rz   r   r   r   r   r   r   r   r   r   r   r   r   fastapi.openapi.constantsr   r   pydantic.class_validatorspydantic.error_wrapperspydantic.errorsr   r   r   r   r   r   r   r   pydantic.schemar   r   r   r   pydantic.typingpydantic.utilsr   r  r   r   r  r{   rd   r  r   r,  r.  r1  r   r   r   rC  r   rJ  r6   r7   r8   <module>rk     sJ	     /     1 8 8 , 8 / F F)))$/ d$$	5	5yy	5	5  2779:W$; CR)MG6F(
	
 !H!I)M+I y  M M M^%.<?	
(3- Dc3h4H d9o $  =C55 '(8 95NQ5	5
" "s " /3 - %	
 *g&CDDEV
 (, 
c3h.$z*: |  /3*Z * -* %	*
 (,* 
*g&CDDEV	
 	S$sCx. !	#
*0<z <d <I I IP
 Pt PAj AT A9z 9d 9<y <c <i <?: ?c ?hsm ?U38_ c3h J'58	i C& < -   7  38nOJ 	O 	D3Ud   	  !%!38$ 39 	
  
tIT
:;< U4	?DJ#>?DE 
c3h	": $ *J 4 (3- Dc3h4H $d9o $$ $ =C$$ '(8 9$NQ$	$
   s   /3 - %	
 *g&CDDEV
 (, 
c3h*$z*: *| * /3
Z 
 -
 %	

 (,
 
*g&CDDEV	
 	S$sCx. !	#

"*z *d *V V V3
 3t 36j 6T 6Yz Yd Y y  c  i  :: :c :hsm :%U38_ %c3h %
J'58	i}*/c3h0D*E	$sCx.:d3io(> :4 :U49d?-C  US UT UuT#Y_'= $ 
E$s)T/,B 
t 
Q3 Q4 Q
E$s)T/4J t "S T s t S T # $ O  
	
 	

s   5S S! S!