
    Oj|D                        d dl Z d dlZ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 d dl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-m0Z0 d dl1m2Z2 d dl1m3Z3 d dl1m4Z4 d dl5m6Z6 e3Z7e3Z8	 	 dYdede9e:ef         dz  de9e:ef         dz  defdZ; G d de/          Z.i 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d0dd1dddd2Z<d3e,de9e:ef         fd4Z=e G d5 d6                      Z>d7e>de?fd8Z@d1d9d7e>d:ed;e9eAe>ed<         f         e0f         d=e?de9e:ef         f
d>ZBd1d9d?ee>         d:ed=e?deAe9eAe>ed<         f         e0f         e9e:e9e:ef         f         f         fd@ZCd7e>de?fdAZDd3e,dBede,fdCZEd7e>dedee         fdDZFdEeAeGe:z  d f         de9e:ef         fdFZHd?ee>         dGe:deIe         fdHZJdIeIe         deKe>         fdJZLedIeIe         deKe>         fdK            ZMeIdL         eIe	         z  ZNeOeN         ZPdMe:de:fdNZQdOePde9eNe:f         fdPZR	 dZdIeIdL         dQePdz  dePfdRZSdBedQePdePfdSZTd7e>dQePdePfdTZUd?ee>         dQePdePfdUZVdVee         dWeAe:eGz  d f         deKe9e:ef                  fdXZWdS )[    N)Sequence)copy)	dataclassis_dataclass)Enum)	lru_cache)	AnnotatedAnyLiteralUnioncastget_args
get_origin)lenient_issubclassshared)REF_TEMPLATE)IncExModelNameMap	UnionType)	BaseModel
ConfigDictFieldTypeAdaptercreate_model)PydanticSchemaGenerationError)PydanticUndefinedAnnotation)ValidationError)_typing_extra)GetJsonSchemaHandler)	FieldInfo)GenerateJsonSchema)JsonSchemaValue)
CoreSchema)PydanticUndefined)Url)"with_info_plain_validator_functionvalueglobalnslocalnsreturnc                     t          t          dd           }| || ||          d         S t          j        | ||          S )Ntry_eval_typer   )getattr_pydantic_typing_extraeval_type_lenient)r'   r(   r)   r,   s       f/lsinfo/ai/hellotax_ai/training_center/backend/venv/lib/python3.11/site-packages/fastapi/_compat/v2.pyevaluate_forwardrefr1   +   sQ     2OTJJM }UHg66q99!3x      c                       e Zd ZdedefdZdS )r!   schemar*   c                     ddd}| j         dk    r| j        j        n| j        j        }|dk    rd|d<   |                     ||| j        j                   |S )Nstringzapplication/octet-stream)typecontentMediaTypeserializationbase64contentEncoding)mode_configser_json_bytesval_json_bytesupdate_with_validationsValidationsMappingbytes)selfr4   json_schema
bytes_modes       r0   bytes_schemazGenerateJsonSchema.bytes_schema<   su    '=WXX yO++ L'', 	
 !!-5K)*$$[&$:Q:WXXXr2   N)__name__
__module____qualname__r#   r"   rF    r2   r0   r!   r!   9   s6        
: 
/ 
 
 
 
 
 
r2   r!   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_infoc                     i }t           D ]&}t          | |t                    }|t          ur|||<   '| j        | j        |dS )N)
annotationmetadata
attributes)_Attrsr-   	Undefinedrb   rc   )r`   rd   attrr'   s       r0   asdictrh   d   s[    J % %
D)44	!!$Jt +'   r2   c                      e Zd ZU eed<   eed<   dZed         ed<   dZe	dz  ed<   e
defd	            Ze
dedz  fd
            Ze
dedz  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z  df         deeeeeef                  f         fdZdddddddddeded         dedz  dedz  dededed edefd!Zddddddd"dededz  dedz  dededed edefd#Zdefd$ZdS )&
ModelFieldr`   name
validationrl   r9   r<   Nconfigr*   c                 0    | j         j        }||n| j        S N)r`   rM   rk   )rC   as     r0   rM   zModelField.aliasx   s    O!Mqqty0r2   c                 P    | j         j        }t          |t                    r|r|S d S rp   )r`   rO   
isinstancestr)rC   vas     r0   rO   zModelField.validation_alias}   s/    _-b# 	2 	Itr2   c                 "    | j         j        }|pd S rp   )r`   rP   )rC   sas     r0   rP   zModelField.serialization_alias   s    _0zTr2   c                 *    |                                  S rp   )get_defaultrC   s    r0   rK   zModelField.default   s    !!!r2   c                 r   t          j                    5  t          j        dk    rddlm} t          j        d|           t          | j                  }|d         g|d         t          d
i |d         R }t          t          |         | j        	          | _        d d d            d S # 1 swxY w Y   d S )N)      r   ) UnsupportedFieldAttributeWarningignore)categoryrb   rc   rd   )rn   rJ   )warningscatch_warningsr   PYDANTIC_VERSION_MINOR_TUPLEpydantic.warningsr~   simplefilterrh   r`   r   r   r	   rn   _type_adapter)rC   r~   
field_dictannotated_argss       r0   __post_init__zModelField.__post_init__   s,   $&& 	 	
 2g==NNNNNN%'G   
  00J<(J'
 11
<011 N 4?.){4 4 4D+	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   BB,,B03B0c                 x    | j                                         rt          S | j                             d          S )NT)call_default_factory)r`   is_requiredrf   ry   rz   s    r0   ry   zModelField.get_default   s7    ?&&(( 	***EEEr2   rJ   )locr'   valuesr   .c                    	 | j                             |d          g fS # t          $ r1}d t          |                    d          |          fcY d }~S d }~ww xY w)NT)from_attributesFinclude_url)errors
loc_prefix)r   validate_pythonr   _regenerate_error_with_locr   )rC   r'   r   r   excs        r0   validatezModelField.validate   s    	"225$2OO   	 	 	3zzez44         	s     
A&AAAjsonTFr<   includerU   by_aliasexclude_unsetexclude_defaultsexclude_none)r   pythonr   rU   r   r   r   r   c          
      F    | j                             ||||||||          S )Nr   )r   dump_python)	rC   r'   r<   r   rU   r   r   r   r   s	            r0   	serializezModelField.serialize   s<     !--'-% . 	
 	
 		
r2   r   rU   r   r   r   r   c          	      D    | j                             |||||||          S )Nr   )r   	dump_json)rC   r'   r   rU   r   r   r   r   s           r0   serialize_jsonzModelField.serialize_json   s9      !++'-% , 
 
 	
r2   c                      t          |           S rp   )idrz   s    r0   __hash__zModelField.__hash__   s     $xxr2   )r*   N)rG   rH   rI   r    __annotations__rt   r<   r   rn   r   propertyrM   rO   rP   r
   rK   r   ry   dicttupleintlistr   r   boolr   rB   r   r   rJ   r2   r0   rj   rj   q   s        
III3?D'/
0??? $FJ$$$1s 1 1 1 X1 #*    X S4Z    X " " " " X"   6FS F F F F "$
 &(   S#X
 39c>" 
sDc3h((	)   * +1 $ $#!&"
 
 

 &'	

 
 
 
 
 
 
 

 
 
 
: !% $#!&"
 
 

 	

 
 
 
 
 
 

 
 
 
4#      r2   rj   fieldc                     | j         j                            di                               dg           }t          |          dk    S )Nr4   computed_fieldsr   )r   core_schemagetlen)r   r   s     r0   _has_computed_fieldsr      sG    )599(BGGKK2 O !##r2   )separate_input_output_schemasmodel_name_mapfield_mappingrm   r   c                    |st          |           rd nd}| j        dk    r| j        p| j        n| j        p| j        }|| |p| j        f         }d|vr7| j        j        p'|                                                    dd          |d<   |S )Nrl   z$ref_ rQ   )r   r<   rO   rM   rP   r`   rQ   replace)r   r   r   r   override_modefield_aliasrD   s          r0   get_schema_from_model_fieldr      s     *	-A%-H-H	  :%% 
		.5;'65;   (C DEK[    %/5  
9J9J9L9L9T9T:
 :
G r2   fieldsc                 V   t          t                    }d | D             }d | D             }t          |t                                }t          |t                                }d |D             }d |D             }	||	z   }
d | D             fd|
D             }fd	t	          |           t	          |          z   D             }|                    |
          \  }}t          t          t          t          t          t          f         f         |          
                                D ]?}d|v r9t          t          |d                                       d          d         }||d<   @|t          t          t          t          t          t          f         f         |          fS )N)ref_templatec                 (    g | ]}|j         d k    |S rl   r<   .0r   s     r0   
<listcomp>z#get_definitions.<locals>.<listcomp>'  s$    QQQ5ejL6P6P6P6P6Pr2   c                 (    g | ]}|j         d k    |S )r9   r   r   s     r0   r   z#get_definitions.<locals>.<listcomp>(  s$    WWWe9V9VE9V9V9Vr2   known_modelsc                 X    g | ]'}t          t          |           |j        d          (S )rb   rl   r`   rk   r<   rj   r    rG   r   models     r0   r   z#get_definitions.<locals>.<listcomp>/  sO     $ $ $  	 E222	
 	
 	
$ $ $r2   c                 X    g | ]'}t          t          |           |j        d          (S )r   r9   r   r   r   s     r0   r   z#get_definitions.<locals>.<listcomp>7  sO     ' ' '  	 E222 	
 	
 	
' ' 'r2   c                 &    h | ]}|j         j        S rJ   r`   rb   r   fs     r0   	<setcomp>z"get_definitions.<locals>.<setcomp>@  s    ;;;q1<*;;;r2   c                 0    h | ]}|j         j        v|S rJ   r   )r   r   input_typess     r0   r   z"get_definitions.<locals>.<setcomp>A  s/          (?{(R(R(R(R(Rr2   c                 ^    g | ])}|st          |          r|j        nd |j        j        f*S r   )r   r<   r   r   )r   r   r   s     r0   r   z#get_definitions.<locals>.<listcomp>D  s\          2"5I%5P5P"

!+	
  r2   )inputsrS   r   )r!   r   get_flat_models_from_fieldssetr   generate_definitionsr   r   rt   r
   r   split)r   r   r   schema_generatorvalidation_fieldsserialization_fieldsflat_validation_modelsflat_serialization_modelsflat_validation_model_fieldsflat_serialization_model_fieldsflat_model_fieldsunique_flat_model_fieldsr   r   definitionsitem_defitem_descriptionr   s     `              @r0   get_definitionsr     s    *|DDDQQFQQQWWvWWW8   !<355! ! !$ $ ,$ $ $ ' ' /' ' '# 57VV;;F;;;K       $         &\\D)A$B$BB  F "2!F!Ff!F!U!UM;c4S>12K@@GGII 7 7H$$#C-)@AAGGMMaP&6H]# $tCc3h$78+FFFFr2   c                     ddl m} t          j        | j        j                  ot          | j        |j                   S )Nr   )params)fastapir   r   field_annotation_is_scalarr`   rb   rs   Body)r   r   s     r0   is_scalar_fieldr   ]  sL    ,#  8)6;77
78r2   rb   c                     t          |           }|                    |          }t          |           }|j        |_        |j        |_        |S rp   )r7   from_annotationr   rc   rb   )r`   rb   clsmerged_field_infonew_field_infos        r0   copy_field_infor   e  sL    
z

C++J77*%%N/8N 1 <Nr2   c                 ^   t          | j        j                  p| j        j        }|t          u s	|t          u rAt          | j        j                  }|D ]%}|t          d           u rt          |          p|} t          |t          j	                  sJ t          j
        |         |          S rp   )r   r`   rb   r   r   r   r7   
issubclassr   sequence_typessequence_annotation_to_type)r   r'   origin_type
union_args	union_args        r0   serialize_sequence_valuer  n  s    U-899XU=M=XKe{i77e.9::
# 	 	IDJJ&&$Y//<9Kk6#899999-k:5AAAr2   r   c                 x    t          j        dd| i dg                              d          d         }d |d<   |S )NzField requiredmissing)r7   r   inputFr   r   r  )r   from_exception_datar   )r   errors     r0   get_missing_field_errorr
  {  sL    /IcBGGH ff#E E'NLr2   
model_namec                 8    d | D             }t          |fi |}|S )Nc                 @    i | ]}|j         |j        j        |j        fS rJ   )rk   r`   rb   r   s     r0   
<dictcomp>z%create_body_model.<locals>.<dictcomp>  s(    TTTAFQ\4alCTTTr2   )r   )r   r  field_params	BodyModels       r0   create_body_modelr    s3     UTVTTTL!-j!I!IL!I!IIr2   r   c                 
   g }| j                                         D ]f\  }}|j        }t          |t          t
          f          st          |          rd }n| j        }|                    t          |||                     g|S )N)r`   rk   rn   )
model_fieldsitemsrb   r   r   r   r   model_configappendrj   )r   r  rk   r`   type_r  s         r0   get_model_fieldsr    s    %'L!.4466 
 
j%ei%677 	.<;N;N 	.LL -L%#  	
 	
 	
 	
 r2   c                      t          |           S rp   )r  )r   s    r0   get_cached_model_fieldsr    s    E"""r2   r   rk   c                 .    t          j        dd|           S )Nz[^a-zA-Z0-9.\-_]r   )resub)rk   s    r0   normalize_namer    s    6%sD111r2   unique_modelsc                 ~    i }| D ]}t          |j                  }|||<   d |                                D             S )Nc                     i | ]\  }}||	S rJ   rJ   )r   kvs      r0   r  z&get_model_name_map.<locals>.<dictcomp>  s    444TQAq444r2   )r  rG   r  )r  name_model_mapr   r  s       r0   get_model_name_mapr%    sR    N + +#EN33
%*z""44^11334444r2   r   c                 f    |pt                      }t          |           }t          ||           |S Nr   )r   r  r   )r   r   r   s      r0   get_flat_models_from_modelr(    s8      (355Le$$F\BBBBr2   c                 &   t          |           }|t          |           D ]o}t          |t          t          f          r@||vr;|                    |           t          |t                    rt          ||           ^t          ||           p|S r'  )r   r   r   r   r   addr(  get_flat_models_from_annotation)rb   r   originargs       r0   r+  r+    s     
##FJ'' 	P 	PC!#	4'899 Pl** $$S))))#y99 S23\RRRR/,OOOOOr2   c                    | j         j        }t          |t                    r-||v r|S |                    |           t          ||           n<t          |t                    r|                    |           nt          ||           |S r'  )r`   rb   r   r   r*  r(  r   r+  )r   r   
field_types      r0   get_flat_models_from_fieldr0    s     !,J*i00 O%%$$$":LIIIII	J	-	- O$$$$'
NNNNr2   c                 2    | D ]}t          ||           |S r'  )r0  )r   r   r   s      r0   r   r     s1      E E"5|DDDDDr2   r   r   c                 $    fd| D             }|S )Nc           	      N    g | ]!}i |d |                     d d          z   i"S )r   rJ   )r   )r   errr   s     r0   r   z._regenerate_error_with_loc.<locals>.<listcomp>  sI     % % %<?737zCGGE2$6$6677% % %r2   rJ   )r   r   updated_loc_errorss    ` r0   r   r     s4    % % % %CI% % % r2   )NNrp   )Xr  r   collections.abcr   r   dataclassesr   r   enumr   	functoolsr   typingr	   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._internalr   r.   ,pydantic._internal._schema_generation_sharedr   pydantic.fieldsr    pydantic.json_schemar!   _GenerateJsonSchemar"   pydantic_corer#   r$   r%   pydantic_core.core_schemar&   RequiredParamrf   r   rt   r1   re   rh   rj   r   r   r   r   r   r   r   r  r   r
  r7   r  r   r  r  TypeModelOrEnumr   TypeModelSetr  r%  r(  r+  r0  r   r   rJ   r2   r0   <module>rI     s)   				  $ $ $ $ $ $       / / / / / / / /                              7 6 6 6 6 6 6 6 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 L L L L L L L L L L L L L L S S S S S S O O O O O O 7 7 7 7 7 7 F F F F F F      3 2 2 2 2 2 J J J J J J C C C C C C 2 2 2 2 2 2 + + + + + + $ $ $ $ $ $      "	
 '+%) 38nt# #s(^d" 		       ,   "
s
t
 T
 d	

 
 4
 T
 T
 4
 
 t
 $
 T
 $
 
  d!
" #
$ +
 
 
4
y 
T#s(^ 
 
 
 
 B B B B B B B BJ$
 $t $ $ $ $ +/   ! j'"?@@A?R	 $( 
#s(^   F +/	=G =G =GZ =G !=G $(	=G
 z7#@AA	BO	STd38n	=G =G =G =G@8: 8$ 8 8 8 89 # )    
Bz 
B# 
B(3- 
B 
B 
B 
BsSy#~!6 4S>    
#14	)_   DO Z0@    $ #4	? #tJ7G # # # # {#d4j0?#2 2 2 2 2 25l 5tOS<P7Q 5 5 5 5 CG ,84,?   #/    %1    Z 0<   }*/c	3*?	$sCx.     r2   