
    wi;                     t   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 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l,m.Z. d dl,m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4m5Z5 e.Z6e.Z7e&Z8i 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,Z9d-e(d.e:e;ef         fd/Z<e G d0 d1                      Z=d2e=d.e>fd3Z?d+d4d2e=d5ed6e:e@e=e3d7         f         e+f         d8e>d.e:e;ef         f
d9ZAd+d4d:ee=         d5ed8e>d.e@e:e@e=e3d7         f         e+f         e:e;e:e;ef         f         f         fd;ZBd2e=d.e>fd<ZCd-e(d=ed.e(fd>ZDd2e=d?ed.ee         fd@ZEdAe@eeFe;f         df         d.e:e;ef         fdBZGd:ee=         dCe;d.eHe         fdDZIdEeHe         d.eJe=         fdFZKedEeHe         d.eJe=         fdG            ZLeeHdH         eHe	         f         ZMeNeM         ZOdIe;d.e;fdJZPdKeOd.e:eMe;f         fdLZQ	 dUdEeHdH         dMeeOdf         d.eOfdNZRd=edMeOd.eOfdOZSd2e=dMeOd.eOfdPZTd:ee=         dMeOd.eOfdQZUdRee         dSe@ee;eFf         df         d.eJe:e;ef                  fdTZVdS )V    N)Sequence)copy)	dataclassis_dataclass)Enum)	lru_cache)	AnnotatedAnyUnioncast)lenient_issubclassshared)REF_TEMPLATE)IncExModelNameMap	UnionType)	BaseModel
ConfigDictFieldTypeAdaptercreate_model)PydanticSchemaGenerationError)PydanticUndefinedAnnotation)ValidationError)GetJsonSchemaHandler)eval_type_lenient)	FieldInfo)GenerateJsonSchema)JsonSchemaValue)
CoreSchema)PydanticUndefined)Url)"with_info_plain_validator_function)Literalget_args
get_origin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r|||<   '| j        | j        |dS )N)
annotationmetadata
attributes)_Attrsgetattr	Undefinedr?   r@   )r<   rA   attrvalues       b/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/fastapi/_compat/v2.pyasdictrH   D   s[    J % %
D)44	!!$Jt +'       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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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dS )$
ModelFieldr<   name
validationrM   serializationmodeNconfigr=   c                 0    | j         j        }||n| j        S N)r<   r)   rL   )selfas     rG   r)   zModelField.aliasX   s    O!Mqqty0rI   c                 P    | j         j        }t          |t                    r|r|S d S rS   )r<   r+   
isinstancestr)rT   vas     rG   r+   zModelField.validation_alias]   s/    _-b# 	2 	ItrI   c                 "    | j         j        }|pd S rS   )r<   r,   )rT   sas     rG   r,   zModelField.serialization_aliasd   s    _0zTrI   c                 *    |                                  S rS   )get_defaultrT   s    rG   r'   zModelField.defaulti   s    !!!rI   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)categoryr?   r@   rA   )rQ    )warningscatch_warningsr   PYDANTIC_VERSION_MINOR_TUPLEpydantic.warningsrb   simplefilterrH   r<   r   r   r	   rQ   _type_adapter)rT   rb   
field_dictannotated_argss       rG   __post_init__zModelField.__post_init__m   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_requiredrD   r]   r^   s    rG   r]   zModelField.get_default   s7    ?&&(( 	***EEErI   re   )locrF   valuesrr   .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)rk   validate_pythonr   _regenerate_error_with_locrx   )rT   rF   rs   rr   excs        rG   validatezModelField.validate   s    	"225$2OO   	 	 	3zzez44         	s     
A&AAAjsonTFrP   includer1   by_aliasexclude_unsetexclude_defaultsexclude_none)r~   pythonr   r1   r   r   r   r   c          
      F    | j                             ||||||||          S )Nr   )rk   dump_python)	rT   rF   rP   r   r1   r   r   r   r   s	            rG   	serializezModelField.serialize   s<     !--'-% . 	
 	
 		
rI   c                      t          |           S rS   )idr^   s    rG   __hash__zModelField.__hash__   s     $xxrI   )r=   N)__name__
__module____qualname__r   __annotations__rX   rP   r$   rQ   r   r   propertyr)   r+   r,   r
   r'   rn   r]   dicttupleintlistr}   r   boolr   r   re   rI   rG   rK   rK   Q   s        
III3?D'/
0???&*FE*d"#***1s 1 1 1 X1 %T	"2    X U39%5    X " " " " X"   6FS F F F F "$
 ,.   S#X
 5c?C'( 
sDc3h((	)   * +1&*&*#!&"
 
 

 &'	

 ud{#
 ud{#
 
 
 
 
 

 
 
 
2#      rI   rK   fieldc                     | j         j                            di                               dg           }t          |          dk    S )Nschemacomputed_fieldsr   )rk   core_schemagetlen)r   r   s     rG   _has_computed_fieldsr      sG    )599(BGGKK2 O !##rI   )separate_input_output_schemasmodel_name_mapfield_mappingrN   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 )NrM   z$ref_ r-   )r   rP   r+   r)   r,   r<   r-   replace)r   r   r   r   override_modefield_aliasjson_schemas          rG   get_schema_from_model_fieldr      s     *	-A%-H-H	  :%% 
		.5;'65;   (C DEK[    %/5  
9J9J9L9L9T9T:
 :
G rI   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 rM   rP   .0r   s     rG   
<listcomp>z#get_definitions.<locals>.<listcomp>   s$    QQQ5ejL6P6P6P6P6PrI   c                 (    g | ]}|j         d k    |S )rO   r   r   s     rG   r   z#get_definitions.<locals>.<listcomp>   s$    WWWe9V9VE9V9V9VrI   known_modelsc                 X    g | ]'}t          t          |           |j        d          (S )r?   rM   r<   rL   rP   rK   r   r   r   models     rG   r   z#get_definitions.<locals>.<listcomp>   sO     $ $ $  	 E222	
 	
 	
$ $ $rI   c                 X    g | ]'}t          t          |           |j        d          (S )r   rO   r   r   r   s     rG   r   z#get_definitions.<locals>.<listcomp>   sO     ' ' '  	 E222 	
 	
 	
' ' 'rI   c                 &    h | ]}|j         j        S re   r<   r?   r   fs     rG   	<setcomp>z"get_definitions.<locals>.<setcomp>  s    ;;;q1<*;;;rI   c                 0    h | ]}|j         j        v|S re   r   )r   r   input_typess     rG   r   z"get_definitions.<locals>.<setcomp>  s/          (?{(R(R(R(R(RrI   c                 ^    g | ])}|st          |          r|j        nd |j        j        f*S r   )r   rP   rk   r   )r   r   r   s     rG   r   z#get_definitions.<locals>.<listcomp>
  s\          2"5I%5P5P"

!+	
  rI   )inputsr/   r   )r   r   get_flat_models_from_fieldssetr   generate_definitionsr   r   rX   r
   rs   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     `              @rG   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FrI   c                     ddl m} t          j        | j        j                  ot          | j        |j                   S )Nr   )params)fastapir   r   field_annotation_is_scalarr<   r?   rW   Body)r   r   s     rG   is_scalar_fieldr   #  sL    ,#  8)6;77
78rI   r?   c                     t          |           }|                    |          }t          |           }|j        |_        |j        |_        |S rS   )typefrom_annotationr   r@   r?   )r<   r?   clsmerged_field_infonew_field_infos        rG   copy_field_infor   +  sL    
z

C++J77*%%N/8N 1 <NrI   rF   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 rS   )r&   r<   r?   r   r   r%   r   
issubclassr   sequence_typessequence_annotation_to_type)r   rF   origin_type
union_args	union_args        rG   serialize_sequence_valuer   4  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ArI   rr   c                 x    t          j        dd| i dg                              d          d         }d |d<   |S )NzField requiredmissing)r   rr   inputFrv   r   r   )r   from_exception_datarx   )rr   errors     rG   get_missing_field_errorr   A  sL    /IcBGGH ff#E E'NLrI   
model_namec                 8    d | D             }t          |fi |}|S )Nc                 @    i | ]}|j         |j        j        |j        fS re   )rL   r<   r?   r   s     rG   
<dictcomp>z%create_body_model.<locals>.<dictcomp>L  s(    TTTAFQ\4alCTTTrI   )r   )r   r   field_params	BodyModels       rG   create_body_modelr   I  s3     UTVTTTL!-j!I!IL!I!IIrI   r   c                 
   g }| j                                         D ]f\  }}|j        }t          |t          t
          f          st          |          rd }n| j        }|                    t          |||                     g|S )N)r<   rL   rQ   )
model_fieldsitemsr?   r   r   r   r   model_configappendrK   )r   r   rL   r<   type_r   s         rG   get_model_fieldsr   Q  s    %'L!.4466 
 
j%ei%677 	.<;N;N 	.LL -L%#  	
 	
 	
 	
 rI   c                      t          |           S rS   )r   )r   s    rG   get_cached_model_fieldsr  c  s    E"""rI   r   rL   c                 .    t          j        dd|           S )Nz[^a-zA-Z0-9.\-_]r   )resub)rL   s    rG   normalize_namer  o  s    6%sD111rI   unique_modelsc                 ~    i }| D ]}t          |j                  }|||<   d |                                D             S )Nc                     i | ]\  }}||	S re   re   )r   kvs      rG   r   z&get_model_name_map.<locals>.<dictcomp>x  s    444TQAq444rI   )r  r   r   )r  name_model_mapr   r   s       rG   get_model_name_mapr  s  sR    N + +#EN33
%*z""44^11334444rI   r   c                 f    |pt                      }t          |           }t          ||           |S Nr   )r   r   r   )r   r   r   s      rG   get_flat_models_from_modelr  {  s8      (355Le$$F\BBBBrI   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)r?   r   originargs       rG   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rI   c                    | j         j        }t          |t                    r-||v r|S |                    |           t          ||           n<t          |t                    r|                    |           nt          ||           |S r  )r<   r?   r   r   r  r  r   r  )r   r   
field_types      rG   get_flat_models_from_fieldr    s     !,J*i00 O%%$$$":LIIIII	J	-	- O$$$$'
NNNNrI   c                 2    | D ]}t          ||           |S r  )r  )r   r   r   s      rG   r   r     s1      E E"5|DDDDDrI   rx   ry   c                 $    fd| D             }|S )Nc           	      N    g | ]!}i |d |                     d d          z   i"S )rr   re   )r   )r   errry   s     rG   r   z._regenerate_error_with_loc.<locals>.<listcomp>  sI     % % %<?737zCGGE2$6$6677% % %rI   re   )rx   ry   updated_loc_errorss    ` rG   r{   r{     s4    % % % %CI% % % rI   rS   )Wr  rf   collections.abcr   r   dataclassesr   r   enumr   	functoolsr   typingr	   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.fieldsr   pydantic.json_schemar   r   pydantic_corer    r!   r"   pydantic_core.core_schemar#   typing_extensionsr$   r%   r&   RequiredParamrD   evaluate_forwardrefrB   r   rX   rH   rK   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  TypeModelOrEnumr   TypeModelSetr  r  r  r  r  r   r{   re   rI   rG   <module>r1     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      ? > > > > > 2 2 2 2 2 2 I I I I I I C C C C C C 2 2 2 2 2 2 + + + + + + $ $ $ $ $ $      < ; ; ; ; ; ; ; ; ;!	' 
s
t
 T
 d	

 
 4
 T
 T
 4
 
 t
 $
 T
 $
 
  d!
" #
$ +
 
 
4
y 
T#s(^ 
 
 
 
 h h h h h h h hV$
 $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uS#X';!< c3h    
#14	)_   DO Z0@    $ #4	? #tJ7G # # # # [)4:56?#2 2 2 2 2 25l 5tOS<P7Q 5 5 5 5 IM ,1,2D,E   #/    %1    Z 0<   }*/c3h0D*E	$sCx.     rI   