
    <iBM                        d dl Z d dlZd dlmZ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mZ d dlmZ d dlmZmZmZ d d	l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( d dl)m*Z* d dl+m,Z, d dl-m.Z. d dl-m/Z/ d dl0m1Z1 d dl0m2Z2m3Z3 d dl0m4Z4 d dl5m6Z6m7Z7m8Z8m9Z9 	 d dl:m;Z; e2Z>e2Z?e3Z@e(ZAe
ZBi ddddddddddddd dd!dd"dd#dd$dd%dd&dd'dd(dd)dd*dd+dddd,ZCd-e,d.eeDe
f   fd/ZE G d0 d1      ZF G d2 d3eG      ZHe G d4 d5             ZId6e
d-e,d7eDd.e
fd8ZJd9ee   d.dfd:ZK	 dgd9ed;e7d<   d=e
d.e
fd>ZLd9ed.e
fd?ZMd@eId.eNfdAZOd+dBd@eIdCedDeeeIe7dE   f   e/f   dFeNd.eeDe
f   f
dGZPd+dBdHeeI   dCedFeNd.eeeeIe7dE   f   e/f   eeDeeDe
f   f   f   fdIZQdJeeDe
f   dKeeDeDf   d.eeDe
f   fdLZRdCedMeeDe
f   dDeeeIe7dE   f   e/f   d.eeeeIe7dE   f   e/f   eeDe
f   f   fdNZSd@eId.eNfdOZTd@eId.eNfdPZUd@eId.eNfdQZVd@eId.eNfdRZWd@eId.eNfdSZXd-e,d6e
d.e,fdTZYd@eIdUe
d.ee
   fdVZZdWeeDdf   d.eeDe
f   fdXZ[dHeeI   dYeDd.ee   fdZZ\d9ee   d.eeI   fd[Z]eed\   ee   f   Z^ee^   Z_d]eDd.eDfd^Z`d_e_d.ee^eDf   fd`Za	 dhd9ed\   daee_df   d.e_fdbZbd6e
dae_d.e_fdcZcd@eIdae_d.e_fddZddHeeI   dae_d.e_fdeZed9e^d.eDfdfZfy# e<$ r
 d dl:m=Z; Y 0w xY w)i    N)copydeepcopy)	dataclassis_dataclass)Enum)	AnyDictListSequenceSetTupleTypeUnioncast)may_v1shared)REF_TEMPLATE)IncExModelNameMap	UnionType)	BaseModel
ConfigDictField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_functiondefault.default_factoryaliasalias_priorityvalidation_aliasserialization_aliastitlefield_title_generatordescriptionexamplesexclude
exclude_ifdiscriminator
deprecatedjson_schema_extrafrozenvalidate_defaultT)reprinitinit_varkw_only
field_inforeturnc                     i }t         D ]!  }t        | |t              }|t        us|||<   # | j                  | j                  |dS )N)
annotationmetadata
attributes)_Attrsgetattr	UndefinedrG   rH   )rD   rI   attrvalues       W/home/www/utuvibe.miabetepe.com/venv/lib/python3.12/site-packages/fastapi/_compat/v2.pyasdictrP   P   sW    J %
D)4	!$Jt%
 !++''      c                       e Zd Zy)
BaseConfigN__name__
__module____qualname__ rQ   rO   rS   rS   ]       rQ   rS   c                       e Zd Zy)ErrorWrapperNrT   rX   rQ   rO   r[   r[   a   rY   rQ   r[   c                      e Zd ZU eed<   eed<   dZed   ed<   dZe	e
df   ed<   edefd	       Zede	edf   fd
       Zede	edf   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)&
ModelFieldrD   name
validationr_   serializationmodeNconfigrE   c                 N    | j                   j                  }||S | j                  S N)rD   r1   r^   )selfas     rO   r1   zModelField.aliasl   s$    OO!!Mq0tyy0rQ   c                 X    | j                   j                  }t        |t              r|r|S y re   )rD   r3   
isinstancestr)rf   vas     rO   r3   zModelField.validation_aliasq   s%    __--b#2IrQ   c                 :    | j                   j                  }|xs d S re   )rD   r4   )rf   sas     rO   r4   zModelField.serialization_aliasx   s    __00zTrQ   c                 6    | j                   j                         S re   )rD   is_requiredrf   s    rO   requiredzModelField.required}   s    **,,rQ   c                 "    | j                         S re   )get_defaultrp   s    rO   r/   zModelField.default   s    !!rQ   c                 .    | j                   j                  S re   )rD   rG   rp   s    rO   type_zModelField.type_   s    )))rQ   c                 Z   t        j                         5  t        j                  dk\  rddlm} t        j                  d|       t        | j                        }|d   g|d   t        d
i |d   }t        t        |   | j                  	      | _        d d d        y # 1 sw Y   y xY w)N)      r   ) UnsupportedFieldAttributeWarningignore)categoryrG   rH   rI   )rc   rX   )warningscatch_warningsr   PYDANTIC_VERSION_MINOR_TUPLEpydantic.warningsry   simplefilterrP   rD   r   r   r)   rc   _type_adapter)rf   ry   
field_dictannotated_argss       rO   __post_init__zModelField.__post_init__   s    $$& 	
 22g=N%%'G
  0J<(J'
 1
<01N 4?.){{4D+	 	 	s   BB!!B*c                 z    | j                   j                         rt        S | j                   j                  d      S )NT)call_default_factory)rD   ro   rL   rs   rp   s    rO   rs   zModelField.get_default   s0    ??&&(***EErQ   rX   )locrN   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)r   validate_pythonr   r   _regenerate_error_with_locr   )rf   rN   r   r   excs        rO   validatezModelField.validate   si    	""225$2O   	::zzez4  	s   ! 	A(AAAjsonTFrb   includer9   by_aliasexclude_unsetexclude_defaultsexclude_noner   pythonr   r9   r   r   r   r   c          
      H    | j                   j                  ||||||||      S )Nr   )r   dump_python)	rf   rN   rb   r   r9   r   r   r   r   s	            rO   	serializezModelField.serialize   s:     !!--'-% . 	
 		
rQ   c                     t        |       S re   )idrp   s    rO   __hash__zModelField.__hash__   s     $xrQ   )rE   N)rU   rV   rW   r"   __annotations__rj   rb   r*   rc   r   r   propertyr1   r3   r4   boolrq   r   r/   ru   r   rs   r	   r   intr
   r   r   r   r   rX   rQ   rO   r]   r]   e   s   
I3?D'/
0?&*FE*d"#*1s 1 1 %T	"2   U39%5   -$ - - " " " *s * *6FS F "$
 ,. S#X
 5c?C'( 
sE$tCH~.455	6* +1&*&*#!&"

 &'	

 ud{#
 ud{#
 
 
 
 
 

2# rQ   r]   rG   
field_namec                     | S re   rX   )rG   rD   r   s      rO   get_annotation_from_field_infor      s
     rQ   modelc                 $    | j                          y re   )model_rebuildr   s    rO   _model_rebuildr      s    	rQ   rb   r   kwargsc                 *     | j                   dd|i|S )Nrb   rX   )
model_dump)r   rb   r   s      rO   _model_dumpr      s     50000rQ   c                     | j                   S re   )model_configr   s    rO   _get_model_configr      s    rQ   fieldc                     | j                   j                  j                  di       j                  dg       }t        |      dkD  S )Nschemacomputed_fieldsr   )r   core_schemagetlen)r   r   s     rO   _has_computed_fieldsr      sB    ))5599(BGKK2O !##rQ   )separate_input_output_schemasmodel_name_mapfield_mappingr`   r   c                 V   |st        |       rd nd}| j                  dk(  r| j                  xs& | j                  n| j                  xs | j                  }|| |xs | j                  f   }d|vr;| j
                  j                  xs  |j                         j                  dd      |d<   |S )Nr_   $ref_ r5   )r   rb   r3   r1   r4   rD   r5   replace)r   r   r   r   override_modefield_aliasjson_schemas          rO   get_schema_from_model_fieldr      s     *-A%-H 	  ::% 
			.5;;''65;;   (C DEK[   %//55  
9J9J9L9T9T:
G rQ   fieldsc                 @   t        t              }| D cg c]  }|j                  dk(  s| }}| D cg c]  }|j                  dk(  s| }}t        |t	                     }t        |t	                     }|D 	cg c]$  }	t        t        |	      |	j                  d      & }
}	|D 	cg c]$  }	t        t        |	      |	j                  d      & }}	|
|z   }| D ch c]  }|j                   }}|D ch c]  }|j                  |vs| }}t        |       t        |      z   D cg c]4  }||st        |      r|j                  nd|j                  j                  f6 }}|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 c c}w c c}w c c}w )N)ref_templater_   ra   known_models)rG   )rD   r^   rb   )inputsr7   r   )r   definitionsr   )r#   r   rb   get_flat_models_from_fieldssetr]   r"   rU   ru   listr   r   r   generate_definitionsr   r	   rj   r   r   split%_remap_definitions_and_field_mappings)r   r   r   schema_generatorr   validation_fieldsserialization_fieldsflat_validation_modelsflat_serialization_modelsr   flat_validation_model_fieldsflat_serialization_model_fieldsflat_model_fieldsfinput_typesunique_flat_model_fieldsr   r   r   item_defitem_descriptionnew_mappingnew_definitionss                          rO   get_definitionsr     sW    *|D,2Q5ejjL6PQQ/5We9VEWW8 !<35! ,$  	 E2	
$  $ /'  	 E2 	
'# ' 57VV$*+q177+K+$ {(B    &\D)A$BB   25I%5P 

!++	
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
 ''g RW$' , s9   G=G=H	H=)H,)H H9HH,9Hr   old_name_to_new_name_mapc                    t        |       }|j                         D ]  \  }}|dk(  rO| d   }t        |t              r9| d   j	                  d      d   }||v r||   }t        j                  |      |d<   Zt        |t              rt        ||      ||<   {t        |t              sg }|D ]B  }t        |t              rt        ||      }	|j                  |	       2|j                  |       D |||<    |S )Nr   /r   r   r   )r   itemsri   rj   r   r   formatdict_replace_refsr   append)
r   r   
new_schemakeyrN   ref_namenew_name	new_valueitemnew_items
             rO   r   r   S  s   
 &!J &&( (
U&=6NE%%!&>//4R8777AH)5)<)<8)LJv&eT"+)AJsO t$I 	+dD),#1I H $$X. $$T*	+ (JsO5(6 rQ   r   c                    i }|j                         D ]K  \  }}|d   j                  }|| vsd|vr| |   }|d   j                  d      d   }|| d| dhv rG|||<   M i }	|j                         D ]  \  }}t        ||      }
|
|	|<    i }|j                         D ]#  \  }}||v r||   }n|}t        ||      }|||<   % |	|fS )Nr   r   r   r   z-Inputz-Outputr   )r   ru   r   r   )r   r   r   r   	field_keyr   r   r   old_namenew_field_mappingr   r   r   rN   new_keyr   s                   rO   r   r   w  s>     "*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--rQ   c                     ddl m} t        j                  | j                  j
                        xr! t        | j                  |j                         S )Nr   )params)fastapir   r   field_annotation_is_scalarrD   rG   ri   Body)r   r   s     rO   is_scalar_fieldr    sC    ,,## 8))6;;7
78rQ   c                 T    t        j                  | j                  j                        S re   )r   field_annotation_is_sequencerD   rG   r   s    rO   is_sequence_fieldr    s    ..u/?/?/J/JKKrQ   c                 T    t        j                  | j                  j                        S re   )r   #field_annotation_is_scalar_sequencerD   rG   r  s    rO   is_scalar_sequence_fieldr	    s    55e6F6F6Q6QRRrQ   c                 @    t        j                  | j                        S re   )r   $is_bytes_or_nonable_bytes_annotationru   r  s    rO   is_bytes_fieldr    s    66u{{CCrQ   c                 @    t        j                  | j                        S re   )r   is_bytes_sequence_annotationru   r  s    rO   is_bytes_sequence_fieldr    s    ..u{{;;rQ   c                     t        |       }|j                  |      }t        |       }|j                  |_        |j                  |_        |S re   )typefrom_annotationr   rH   rG   )rD   rG   clsmerged_field_infonew_field_infos        rO   copy_field_infor    sI    
z
C++J7*%N/88N 1 < <NrQ   rN   c                    t        | j                  j                        xs | j                  j                  }|t        u s|t        u rDt        | j                  j                        }|D ]   }|t        d       u rt        |      xs |} n t        |t        j                        sJ t        j                  |   |      S re   )r,   rD   rG   r   r   r+   r  
issubclassr   sequence_typessequence_annotation_to_type)r   rN   origin_type
union_args	union_args        rO   serialize_sequence_valuer    s    U--889XU=M=M=X=XKe{i7e..99:
# 	IDJ&$Y/<9K		
 k6#8#8999--k:5AArQ   r   c                 l    t        j                  dd| i dg      j                  d      d   }d |d<   |S )NzField requiredmissing)r  r   inputFr   r   r!  )r   from_exception_datar   )r   errors     rO   get_missing_field_errorr$    sD    //IcBGHff#E E'NLrQ   
model_namec                     | D ci c]/  }|j                   |j                  j                  |j                  f1 }}t        |fi |}|S c c}w re   )r^   rD   rG   r   )r   r%  r   field_params	BodyModels        rO   create_body_modelr)    sP     NTTAFFQ\\44allCCTLT!-j!IL!II Us   4A	c                     g }| j                   j                         D ]^  \  }}|j                  }t        |t        t
        f      st        |      rd }n| j                  }|j                  t        |||             ` |S )N)rD   r^   rc   )
model_fieldsr   rG   r!   r   r   r   r   r   r]   )r   r+  r^   rD   ru   r   s         rO   get_model_fieldsr,    s    %'L!..446 
j%%ei%67<;NL --L%#	

 rQ   r   r^   c                 0    t        j                  dd|       S )Nz[^a-zA-Z0-9.\-_]r   )resub)r^   s    rO   normalize_namer0    s    66%sD11rQ   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 re   )r   r0  rU   get_long_model_nameaddpopr   )r1  name_model_mapconflicting_namesr   r%  conflicting_modelkvs           rO   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      rO   get_flat_models_from_modelr>    s*      (35Le$F\BrQ   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   r4  r>  get_flat_models_from_annotation)rG   r   originargs       rO   r@  r@    st     
#FJ' 	PC!#	4'89c>U  %%c95.sN/,O	P rQ   c                     | j                   }t        |t              r&||v r|S |j                  |       t	        ||       |S t        |t
              r|j                  |       |S t        ||       |S r=  )ru   r!   r   r4  r>  r   r@  )r   r   
field_types      rO   get_flat_models_from_fieldrE  *  sy     J*i0%$":LI
 	 
J	-$  	(
NrQ   c                 .    | D ]  }t        ||        |S r=  )rE  )r   r   r   s      rO   r   r   :  s%      E"5|DErQ   c                 X    | j                    d| j                   j                  dd      S )N__.)rV   rW   r   r   s    rO   r3  r3  B  s.    r%"4"4!56>>sDIIrQ   )r   re   )gr.  r|   r   r   dataclassesr   r   enumr   typingr   r	   r
   r   r   r   r   r   r   fastapi._compatr   r   fastapi.openapi.constantsr   fastapi.typesr   r   r   pydanticr   r   r   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.   RequiredParamrL   UndefinedTypeevaluate_forwardref	ValidatorrJ   rj   rP   rS   	Exceptionr[   r]   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r  r  r$  r)  r,  TypeModelOrEnumTypeModelSetr0  r;  r>  r@  rE  r   r3  rX   rQ   rO   <module>ra     s   	   / 
 
 
 + 2 8 8 L L S O 7 ? N 2 I C 2 B $ F F "	%' 	
s
t
 T
 d	

 
 4
 T
 T
 4
 
 t
 $
 T
 $
 
  d!
" #
$ +
4
y 
T#s(^ 
	 		9 	 p p pf!*8;$y/ d 
 9?11#$451JM11Y 3 $
 $t $ +/ ! j'"?@@A?R	 $( 
#s(^F +/	=(Z =( !=( $(	=(
 z7#@AA	BO	STd38n	=(@!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q   s   2K K)(K)