
    dh=                     &   d dl Z d dl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mZmZmZmZmZ d dlmZmZ d dlmZ d dlmZmZ d d	l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$ 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.m/Z/ d dl,m0Z0 d dl1m2Z2m3Z3m4Z4m5Z5 	 d dl6m7Z7 e.Z:e.Z;e/Z<e$Z=e	Z> G d d      Z? G d de@      ZAe G d d             ZBde	d e(d!eCd"e	fd#ZDd$ee   d"dfd%ZE	 dSd$ed&e3d'   d(e	d"e	fd)ZFd$ed"e	fd*ZGd+d,d-eBd.ed/e
eeBe3d0   f   e+f   d1eHd"e
eCe	f   f
d2ZId+d,d3eeB   d.ed1eHd"ee
eeBe3d0   f   e+f   e
eCe
eCe	f   f   f   fd4ZJd5e
eCe	f   d6e
eCeCf   d"e
eCe	f   fd7ZKd.ed8e
eCe	f   d/e
eeBe3d0   f   e+f   d"ee
eeBe3d0   f   e+f   e
eCe	f   f   fd9ZLd-eBd"eHfd:ZMd-eBd"eHfd;ZNd-eBd"eHfd<ZOd-eBd"eHfd=ZPd-eBd"eHfd>ZQd e(de	d"e(fd?ZRd-eBd@e	d"ee	   fdAZSdBeeCdCf   d"e
eCe	f   fdDZTd3eeB   dEeCd"ee   fdFZUd$ee   d"eeB   fdGZVeedH   ee   f   ZWeeW   ZXdIeCd"eCfdJZYdKeXd"e
eWeCf   fdLZZ	 dTd$edH   dMeeXdf   d"eXfdNZ[de	dMeXd"eXfdOZ\d-eBdMeXd"eXfdPZ]d3eeB   dMeXd"eXfdQZ^d$eWd"eCfdRZ_y# e8$ r
 d dl6m9Z7 Y w xY w)U    N)copydeepcopy)	dataclass)Enum)	AnyDictListSequenceSetTupleTypeUnioncast)sharedv1)REF_TEMPLATE)IncExModelNameMap)	BaseModelTypeAdaptercreate_model)PydanticSchemaGenerationError)PydanticUndefinedAnnotation)ValidationError)GetJsonSchemaHandler)eval_type_lenient)lenient_issubclass)	FieldInfo)GenerateJsonSchema)JsonSchemaValue)
CoreSchema)PydanticUndefinedPydanticUndefinedType)Url)	AnnotatedLiteralget_args
get_origin)"with_info_plain_validator_function) general_plain_validator_functionc                       e Zd Zy)
BaseConfigN__name__
__module____qualname__     E/var/www/zara/venv/lib/python3.12/site-packages/fastapi/_compat/v2.pyr,   r,   6       r2   r,   c                       e Zd Zy)ErrorWrapperNr-   r1   r2   r3   r6   r6   :   r4   r2   r6   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)r9   aliasr:   )selfas     r3   rB   zModelField.aliasD   s$    OO!!Mq0tyy0r2   c                 6    | j                   j                         S rA   )r9   is_requiredrC   s    r3   requiredzModelField.requiredI   s    **,,r2   c                 "    | j                         S rA   )get_defaultrG   s    r3   defaultzModelField.defaultM   s    !!r2   c                 .    | j                   j                  S rA   )r9   
annotationrG   s    r3   type_zModelField.type_Q   s    )))r2   Nc                 $   t        j                         5  t        j                  dk\  rddlm} t        j                  d|       t        t        | j                  j                  | j                  f         | _        d d d        y # 1 sw Y   y xY w)N)      r   ) UnsupportedFieldAttributeWarningignore)category)warningscatch_warningsr   PYDANTIC_VERSION_MINOR_TUPLEpydantic.warningsrR   simplefilterr   r%   r9   rM   _type_adapter)rC   rR   s     r3   __post_init__zModelField.__post_init__U   st    $$& 	
 22g=N%%'G 4?$//44dooEF4D	 	 	s   A(BBc                 z    | j                   j                         rt        S | j                   j                  d      S )NT)call_default_factory)r9   rF   	UndefinedrJ   rG   s    r3   rJ   zModelField.get_defaulte   s0    ??&&(***EEr2   r1   )locvaluevaluesr_   .c                    	 | j                   j                  |d      d fS # t        $ r3}d t        j                  |j                  d      |      fcY d }~S d }~ww xY w)NT)from_attributesFinclude_url)errors
loc_prefix)rZ   validate_pythonr   r   _regenerate_error_with_locrf   )rC   r`   ra   r_   excs        r3   validatezModelField.validatej   si    	""225$2O   	66zzez4  	s   ! 	A(AAAjsonTFr>   includeexcludeby_aliasexclude_unsetexclude_defaultsexclude_nonerl   pythonrn   ro   rp   rq   rr   rs   c          
      H    | j                   j                  ||||||||      S )Nrm   )rZ   dump_python)	rC   r`   r>   rn   ro   rp   rq   rr   rs   s	            r3   	serializezModelField.serialize{   s:     !!--'-% . 	
 		
r2   c                     t        |       S rA   )idrG   s    r3   __hash__zModelField.__hash__   s     $xr2   )r?   N)r.   r/   r0   r   __annotations__strr>   r&   propertyrB   boolrH   r   rK   rN   r[   rJ   r   r   r   intr	   rk   r   rx   r{   r1   r2   r3   r8   r8   >   s   
I3?D'/
0?1s 1 1 -$ - - " " " *s * * FS F "$
 ,. S#X
 5c?C'( 
sE$tCH~.455	6* +1&*&*#!&"

 &'	

 ud{#
 ud{#
 
 
 
 
 

2# r2   r8   rM   r9   
field_namer?   c                     | S rA   r1   )rM   r9   r   s      r3   get_annotation_from_field_infor      s
     r2   modelc                 $    | j                          y rA   )model_rebuildr   s    r3   _model_rebuildr      s    	r2   r>   rt   kwargsc                 *     | j                   dd|i|S )Nr>   r1   )
model_dump)r   r>   r   s      r3   _model_dumpr      s     50000r2   c                     | j                   S rA   )model_configr   s    r3   _get_model_configr      s    r2   T)separate_input_output_schemasfieldmodel_name_mapfield_mappingr<   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;   $ref_ title)r>   r9   r   rB   replace)r   r   r   r   override_modejson_schemas         r3   get_schema_from_model_fieldr      sv     .<   (C DEK[   %//55  
9J9J9L9T9T:
G r2   fieldsc                    t        t              }|rd nd}t        | t                     }|D cg c]#  }t	        t        |      |j                        % }}| D ch c]  }|j                   }	}|D ch c]  }|j                  |	vs| }
}t        |       t        |
      z   D cg c])  }||xs |j                  |j                  j                  f+ }}|j                  |      \  }}t        t        t        t        t        t         f   f   |      j#                         D ]1  }d|v st        t        |d         j%                  d      d	   }||d<   3 t'        |||
      \  }}||fS c c}w c c}w c c}w c c}w )N)ref_templater;   known_models)rM   r9   r:   )inputsdescriptionr   )r   definitionsr   )r   r   get_flat_models_from_fieldssetr8   r   r.   rN   listr>   rZ   core_schemagenerate_definitionsr   r   r}   r   ra   split%_remap_definitions_and_field_mappings)r   r   r   schema_generatorr   flat_modelsr   flat_model_fieldsfinput_typesunique_flat_model_fieldsr   r   r   r   item_defitem_descriptionnew_mappingnew_definitionss                      r3   get_definitionsr      s    *|D-<  .f35IK ! 	i59O  %++q177+K+$ {(B    &\D)A$BB 
+U-@-@-L-LMF  "2!F!Ff!F!UM;c4S>12K@GGI 7H$#C-)@AGGMaP&6H]#7 $I%#$ K
 ''/ , s   (E0E57E:E:*.E?schemaold_name_to_new_name_mapc                    t        |       }|j                         D ]  \  }}|dk(  rC| d   j                  d      d   }||v r||   }t        j                  |      |d<   n| d   |d<   Nt        |t              rt        ||      ||<   ot        |t              sg }|D ]B  }t        |t              rt        ||      }	|j                  |	       2|j                  |       D |||<    |S )Nr   /r   r   r   )
r   itemsr   r   format
isinstancedict_replace_refsr   append)
r   r   
new_schemakeyr`   ref_namenew_name	new_valueitemnew_items
             r3   r   r      s   
 &!J &&( (
U&=f~++C04H333H=%1%8%8x%H
6"%+F^
6"eT"+)AJsO t$I 	+dD),#1I H $$X. $$T*	+ (JsO5(6 r2   r   c                    i }|j                         D ]G  \  }}|d   j                  }|| vr| |   }|d   j                  d      d   }|| d| dhv rC|||<   I i }	|j                         D ]  \  }}t        ||      }
|
|	|<    i }|j                         D ]#  \  }}||v r||   }n|}t        ||      }|||<   % |	|fS )Nr   r   r   r   z-Inputz-Outputr   )r   rN   r   r   )r   r   r   r   	field_keyr   r   r   old_namenew_field_mappingr   r   r   r`   new_keyr   s                   r3   r   r     s7     "*002 6	6!""&!%(&>'',R08*F+z-ABB-5 *6 	  +002 2	6"%=

 (2)$2 O!'') 	-
U**.s3GG!%=
	 $- 	- o--r2   c                     ddl m} t        j                  | j                  j
                        xr! t        | j                  |j                         S )Nr   )params)fastapir   r   field_annotation_is_scalarr9   rM   r   Body)r   r   s     r3   is_scalar_fieldr   ?  sC    ,,## 8))6;;7
78r2   c                 T    t        j                  | j                  j                        S rA   )r   field_annotation_is_sequencer9   rM   r   s    r3   is_sequence_fieldr   G  s    ..u/?/?/J/JKKr2   c                 T    t        j                  | j                  j                        S rA   )r   #field_annotation_is_scalar_sequencer9   rM   r   s    r3   is_scalar_sequence_fieldr   K  s    55e6F6F6Q6QRRr2   c                 @    t        j                  | j                        S rA   )r   $is_bytes_or_nonable_bytes_annotationrN   r   s    r3   is_bytes_fieldr   O  s    66u{{CCr2   c                 @    t        j                  | j                        S rA   )r   is_bytes_sequence_annotationrN   r   s    r3   is_bytes_sequence_fieldr   S  s    ..u{{;;r2   c                     t        |       }|j                  |      }t        |       }|j                  |_        |j                  |_        |S rA   )typefrom_annotationr   metadatarM   )r9   rM   clsmerged_field_infonew_field_infos        r3   copy_field_infor   W  sI    
z
C++J7*%N/88N 1 < <Nr2   r`   c                     t        | j                  j                        xs | j                  j                  }t        |t        j
                        sJ t	        j                  |   |      S rA   )r(   r9   rM   
issubclassr   sequence_typessequence_annotation_to_type)r   r`   origin_types      r3   serialize_sequence_valuer   `  sU    U--889XU=M=M=X=XKk6#8#8999--k:5AAr2   r_   .c                 l    t        j                  dd| i dg      j                  d      d   }d |d<   |S )NzField requiredmissing)r   r_   inputFrd   r   r   )r   from_exception_datarf   )r_   errors     r3   get_missing_field_errorr   f  sD    //IcBGHff#E E'NLr2   
model_namec                     | D ci c]/  }|j                   |j                  j                  |j                  f1 }}t        |fi |}|S c c}w rA   )r:   r9   rM   r   )r   r   r   field_params	BodyModels        r3   create_body_modelr   n  sP     NTTAFFQ\\44allCCTLT!-j!IL!II Us   4A	c                 ~    | j                   j                         D cg c]  \  }}t        ||       c}}S c c}}w )Nr   )model_fieldsr   r8   )r   r:   r9   s      r3   get_model_fieldsr   v  s>     !& 2 2 8 8 :D* 	jt4  s   9r   r:   c                 0    t        j                  dd|       S )Nz[^a-zA-Z0-9.\-_]r   )resub)r:   s    r3   normalize_namer    s    66%sD11r2   unique_modelsc                 `   i }t               }| D ]t  }t        |j                        }||v rt        |      }|||<   -||v r?|j	                  |       |j                  |      }||t        |      <   ||t        |      <   p|||<   v |j                         D ci c]  \  }}||
 c}}S c c}}w rA   )r   r  r.   get_long_model_nameaddpopr   )r  name_model_mapconflicting_namesr   r   conflicting_modelkvs           r3   get_model_name_mapr    s    N"%% /#ENN3
**,U3J).N:&>)!!*- . 2 2: >EVN./@AB9>N.u56).N:&/ ,1134TQAqD444s   B*r   c                 R    |xs
 t               }t        |       }t        ||       |S Nr   )r   r   r   )r   r   r   s      r3   get_flat_models_from_modelr    s*      (35Le$F\Br2   c                     t        |       }|gt        |       D ]Y  }t        |t        t        f      r4||vr0|j                  |       t        |t              s?t        ||       Mt        ||       [ |S r  )r(   r'   r   r   r   r  r  get_flat_models_from_annotation)rM   r   originargs       r3   r  r    st     
#FJ' 	PC!#	4'89c>U  %%c95.sN/,O	P r2   c                     | j                   }t        |t              r&||v r|S |j                  |       t	        ||       |S t        |t
              r|j                  |       |S t        ||       |S r  )rN   r   r   r  r  r   r  )r   r   
field_types      r3   get_flat_models_from_fieldr    sy     J*i0%$":LI
 	 
J	-$  	(
Nr2   c                 .    | D ]  }t        ||        |S r  )r  )r   r   r   s      r3   r   r     s%      E"5|DEr2   c                 X    | j                    d| j                   j                  dd      S )N__.)r/   r0   r   r   s    r3   r  r    s.    r%"4"4!56>>sDIIr2   )rl   rA   )`r  rU   r   r   dataclassesr   enumr   typingr   r   r	   r
   r   r   r   r   r   fastapi._compatr   r   fastapi.openapi.constantsr   fastapi.typesr   r   pydanticr   r   r   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$   typing_extensionsr%   r&   r'   r(   pydantic_core.core_schemar)   ImportErrorr*   RequiredParamr^   UndefinedTypeevaluate_forwardref	Validatorr,   	Exceptionr6   r8   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   TypeModelOrEnumTypeModelSetr  r  r  r  r  r   r  r1   r2   r3   <module>r4     s   	   ! 
 
 
 ' 2 - 9 9 S O 7 ? N 2 I C 2 B $ F F "	%' 		 		9 	 X X Xv!*8;$y/ d 
 9?11#$451JM11Y 3  +/ ! j'"?@@A?R	 $( 
#s(^6 +/	%(Z %( !%( $(	%(
 z7#@AA	BO	STd38n	%(P!cN! #38n! 
#s(^	!H+. +. c3h+. j'"?@@A?R	+. z7#@AA	BO	STcN+.\8: 8$ 8LZ LD LSJ S4 SD* D D<: <$ <9 # ) Bz B# B(3- BsCx T#s(^ 
#14	)_DO Z0@  [)4:56?#2 2 25l 5tOS<P7Q 5& IM,1,2D,E#/%1 Z 0<J J3 JA   s   *J JJ