
    wi                        d dl Z d dlZd dlZd dlmZmZm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 d dl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$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, d d	l-m.Z. d d
l/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z=m>Z> d dl?m@Z@mAZA d dlBmCZC d d	lDm.ZE d dlFmGZG d dlHmIZImJZJmKZKmLZLmMZM d dlNmOZOmPZP d dlQmRZR d dlSmTZT d dlUmVZVmWZWmXZX d dlYmZZZ dZ[dZ\dfdZ]dej^        de_de3fd Z`d!ddd"d#e3d$ead%eebe;                  d&eebe_                  de3f
d'Zcd(ebe         debe         fd)Zdd#e3debe         fd*Zed+ed,ef         dejf        fd-Zgd+ed,ef         dejf        fd.Zhd/ed0eie_ef         defd1Zjd+ed,ef         defd2Zkdddd3dd4de_d+ed,ef         d5ee_         d6eebe_                  d&eebe_                  d7ead8eeVd9         df         de3fd:Zld;e_d<ed#e3deea         fd=Zme G d> d?                      Znd;e_d/ed@edAeadenf
dBZodCed#e3ddfdDZpd#e3dEedFeie_ef         defdGZqe G dH dI                      ZrddddddJdKeePeTf         d#e3dLeeeie_ef         eIf                  dMeeE         dNeeR         dOee         dPeeie;ef                  dQedReaderfdSZsdCed@edTeie_ef         dUete_d,f         deteebe         f         f
dVZudCedeafdWZv	 dgdCedTee_ef         dXee_df         defdYZwd(ee         dZeee_ef         eLeJf         deteie_ef         ebe         f         fd[Zxd\edeafd]Zyd(ebe         deafd^Zzd_ebe         d`eIdeie_ef         fdaZ{d_ebe         d`eeeie_ef         eIf                  dReadeteie_ef         ebeie_ef                  f         fdbZ|dce3d5e_dReadee         fddZ}dCede_fdeZ~dS )h    N)	CoroutineMappingSequence)AsyncExitStackcontextmanager)copydeepcopy)	dataclass)	AnnotatedAnyCallable
ForwardRefOptionalUnioncast)params)
ModelFieldRequiredParam	Undefinedcopy_field_infocreate_body_modelevaluate_forwardreffield_annotation_is_scalar#field_annotation_is_scalar_sequencefield_annotation_is_sequenceget_cached_model_fieldsget_missing_field_error$is_bytes_or_nonable_bytes_annotationis_bytes_sequence_annotationis_scalar_field.is_uploadfile_or_nonable_uploadfile_annotation!is_uploadfile_sequence_annotationlenient_issubclasssequence_typesserialize_sequence_valuevalue_is_sequence)BackgroundTasks)asynccontextmanagercontextmanager_in_threadpool)	Dependant)DependencyScopeError)logger)SecurityScopes)DependencyCacheKey)create_model_fieldget_path_param_names)	BaseModelJson)	FieldInfo)run_in_threadpool)FormDataHeadersImmutableMultiDictQueryParams
UploadFile)HTTPConnectionRequest)Response)	WebSocket)Literalget_args
get_origin)is_typealiastypezForm data requires "python-multipart" to be installed. 
You can install "python-multipart" with: 

pip install python-multipart
zForm data requires "python-multipart" to be installed. It seems you installed "multipart" instead. 
You can remove "multipart" with: 

pip uninstall multipart

And then install "python-multipart" with: 

pip install python-multipart
returnc                  r   	 ddl m}  | dk    sJ d S # t          t          f$ r 	 ddlm}  | sJ 	 ddlm} |sJ n<# t          $ r/ t          j        t                     t          t                    d w xY wY d S # t          $ r/ t          j        t                     t          t                    d w xY ww xY w)Nr   )__version__z0.0.12)parse_options_header)python_multipartrD   ImportErrorAssertionError	multipartmultipart.multipartrE   r,   error!multipart_incorrect_install_errorRuntimeErrormultipart_not_installed_error)rD   rE   s     j/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/fastapi/dependencies/utils.pyensure_multipart_is_installedrP   U   s>   H000000 X%%%%%%( H H H	H------;	P      ,++++ P P P>???"#DEE4OP ,++  	H 	H 	HL6777<==4G	H!Hs.    B6
A9
:A99A33A999B22B6dependspathc                     t          | j                  s
J d            g }t          | t          j                  r!| j        r|                    | j                   t          || j        | j        |          S )Nz;A parameter-less dependency must have a callable dependency)rR   callscopeown_oauth_scopes)	callable
dependency
isinstancer   Securityscopesextendget_dependantrU   )rQ   rR   rV   s      rO   get_parameterless_sub_dependantr^   p   s    G&''  E ' #%'6?++ 0 0///m)	       Fskip_repeatsvisitedparent_oauth_scopes	dependantra   rb   rc   c                @   |g }|                     | j                   |pg | j        pg z   }t          di d| j                                        d| j                                        d| j                                        d| j                                        d| j	                                        d| j
        d| j        d| j        d	| j        d
| j        d| j        d| j        d| j        d| j        d|d| j        d| j        d| j        }| j        D ]}|r
|j        |v rt/          ||||j                  }|j                             |           |j                            |j                   |j                            |j                   |j                            |j                   |j                            |j                   |j	                            |j	                   |j                            |j                   |S )Npath_paramsquery_paramsheader_paramscookie_paramsbody_paramsnamerT   request_param_namewebsocket_param_namehttp_connection_param_nameresponse_param_namebackground_tasks_param_namesecurity_scopes_param_namerV   rc   	use_cacherR   rU   r`    )append	cache_keyoauth_scopesr*   rf   r   rg   rh   ri   rj   rk   rT   rl   rm   rn   ro   rp   rq   rV   rr   rR   rU   dependenciesget_flat_dependantr\   )rd   ra   rb   rc   use_parent_oauth_scopesflat_dependantsub_dependantflat_subs           rO   rx   rx      s    NN9&'''28b$"    )..000+00222  -22444  -22444	
 )..000 ^^ ^^ %77 ';; $-#G#G &99 %.$I$I $-#G#G #33 43  %%!" ^^#$ oo%N( #/ B B 	M3w>>%% . ;	
 
 
 	#**8444"))(*>???#**8+@AAA$++H,BCCC$++H,BCCC"))(*>???#**8+@AAAAr_   fieldsc                     | s| S | d         }t          |           dk    r:t          |j        j        t                    rt          |j        j                  }|S | S )Nr      )lenr#   
field_info
annotationr1   r   )r}   first_fieldfields_to_extracts      rO   _get_flat_fields_from_paramsr      se     )K
6{{a.)9  4K4J4UVV  Mr_   c                     t          | d          }t          |j                  }t          |j                  }t          |j                  }t          |j                  }||z   |z   |z   S )NT)ra   )rx   r   rf   rg   rh   ri   )rd   rz   rf   rg   rh   ri   s         rO   get_flat_paramsr      si    '	EEEN.~/IJJK/0KLLL01MNNM01MNNM%5EEr_   rT   .c                 *   t           j        dk    rn	 t          j        | d          }nj# t          $ rI t           j        dk    r"ddlm} t          j        | |j                  }nt          j        |           }Y nw xY wt          j        |           }|S )N)   
   T)eval_str)r      r   )Format)annotation_format)sysversion_infoinspect	signature	NameErrorannotationlibr   
FORWARDREF)rT   r   r   s      rO   _get_signaturer      s    
7""
	4)$>>>II 	4 	4 	4 7**000000#-dfFWXXX		#-d33		4 %d++	s   ) AA<;A<c                     t          |           }t          j        |           }t          |di           fd|j                                        D             }t          j        |          }|S )N__globals__c                     g | ]<}t          j        |j        |j        |j        t          |j                             =S ))rk   kinddefaultr   )r   	Parameterrk   r   r   get_typed_annotationr   ).0paramglobalnss     rO   
<listcomp>z'get_typed_signature.<locals>.<listcomp>   s\         	M+E,<hGG		
 	
 	
  r_   )r   r   unwrapgetattr
parametersvalues	Signature)rT   r   	unwrappedtyped_paramstyped_signaturer   s        @rO   get_typed_signaturer      s    t$$It$$Iy-44H    )0022  L '55Or_   r   r   c                     t          | t                    r3t          |           } t          | ||          } | t	          d           u rd S | S N)rY   strr   r   type)r   r   s     rO   r   r      sN    *c"" 
++
(XxHH
d##4r_   c                     t          |           }t          j        |           }|j        }|t          j        j        u rd S t          |di           }t          ||          S )Nr   )r   r   r   return_annotationr   emptyr   r   )rT   r   r   r   r   s        rO   get_typed_return_annotationr      s]    t$$It$$I,JW&,,,ty-44H
H555r_   T)rk   rV   rc   rr   rU   rk   rV   rr   rU   )functionrequestc           
         t          ||| ||||          }|pg |pg z   }t          |           }	t          |          }
|
j        }|                                D ]\  }}||	v }t          ||j        |j        |          }|j        |j        j	        sJ |j
        s|j        rA|j        dk    r6|j        j        dk    r&|j        sJ t          d|j        j         d          g }t#          |j        t$          j                  r%|j        j        rt+          |j        j                  }t-          | |j        j	        ||||j        j        |j        j                  }|j                            |           !t5          ||j        |          r|j        J d	|            N|j        J t#          |j        j        t$          j                  r!|j                            |j                   tA          |j        |
           |S )N)rT   rk   rR   rr   rU   rV   rc   )
param_namer   valueis_path_paramr   r   zThe dependency "zS" has a scope of "request", it cannot depend on dependencies with scope "function".)rR   rT   rk   rV   rc   rr   rU   r   type_annotationrd   z0Cannot specify multiple FastAPI annotations for )fieldrd   )!r*   r0   r   r   itemsanalyze_paramr   r   rQ   rX   is_gen_callableis_async_gen_callablecomputed_scoperU   rT   r+   __name__rY   r   rZ   r[   listr]   rr   rw   rt   !add_non_field_param_to_dependencyr   r   r   Bodyrj   add_param_to_fields)rR   rT   rk   rV   rc   rr   rU   rd   current_scopespath_param_namesendpoint_signaturesignature_paramsr   r   r   param_detailssub_own_oauth_scopesr{   s                     rO   r]   r]     s    )/  I */R4D4JKN+D11,T22)4-3355 0P 0P
E"&66%!'-'	
 
 
  , (3333*	.7.M	,	99!)/:== ~%%~*Yy~'> Y Y Y   /1 -/AA N (/ N+/0E0L+M+M()"*5!5$2'/9#+1  M "))-888,!)9
 
 
 	
 !&..Q:QQ /.. "...m)4fkBB 	P!(()<====m&9YOOOOOr_   r   r   c                 n   t          |t                    r	| |_        dS t          |t                    r	| |_        dS t          |t
                    r	| |_        dS t          |t                    r	| |_        dS t          |t                    r	| |_
        dS t          |t                    r	| |_        dS d S )NT)r#   r;   rl   r=   rm   r:   rn   r<   ro   StarletteBackgroundTasksrp   r-   rq   r   s      rO   r   r   M  s     /733 '1	$t	OY	7	7 )3	&t	O^	<	< /9	,t	OX	6	6 (2	%t	O-E	F	F 0:	-t	O^	<	< /9	,t4r_   c                   P    e Zd ZU eed<   eej                 ed<   ee         ed<   dS )ParamDetailsr   rQ   r   N)	r   
__module____qualname__r   __annotations__r   r   Dependsr   rs   r_   rO   r   r   e  sB         fn%%%%Jr_   r   r   r   c           	      	   d }d }t           }t           }t          |          r|j        }|t          j        j        ur|}|}t          |          t          u rt          |          }|d         }d |dd          D             }	d |	D             }
|
r	|
d         }nd }t          |t                    rt          ||          }|j        t          k    s+|j        t          k    sJ d|j        j         d| d	            |t          j        j        ur|r
J d
            ||_        n)t          |_        nt          |t"          j                  r|}t          |t"          j                  r!|J d|             |J d|             |}nBt          |t                    r-|J d|             |}t          |t                    r||_        |,|j        %t+          |          }t-          j        ||          }|Dt1          |t2          t4          t6          t8          t:          t<          f          r|J d|            n|||t          j        j        ur|nt          }|rt#          j        |          }nrtA          |          stC          |          rt#          j"        ||          }n=tG          |          st#          j$        ||          }nt#          j%        ||          }d }||r5t          |t"          j                  sJ d|j        j         d|             nAt          |t"          j&                  r'tO          |dd           t"          j(        j)        |_*        |}t          |t"          j+                  rtY                       |j-        s(tO          |dd           r|                     dd          }n	|j-        p| }||_-        t]          | ||j        ||          }|rt_          |          s
J d            not          |t"          j%                  rUt_          |          sFta          |j1        j                  s-t1          |j1        j        td                    sJ d| d            tg          |||          S )Nr   c                 T    g | ]%}t          |t          t          j        f          #|&S rs   )rY   r3   r   r   r   args     rO   r   z!analyze_param.<locals>.<listcomp>  s?     
 
 
#	6>:;;

 
 
r_   r   c                 t    g | ]5}t          |t          j        t          j        t          j        f          3|6S rs   )rY   r   Paramr   r   r   s     rO   r   z!analyze_param.<locals>.<listcomp>  sO     (
 (
 (
LKN (
(
 (
 (
r_   )r   r   `z1` default value cannot be set in `Annotated` for z). Set the default value with `=` instead.z*Path parameters cannot have default valueszGCannot specify `Depends` in `Annotated` and default value together for zaCannot specify a FastAPI annotation in `Annotated` and `Depends` as a default value together for zQCannot specify FastAPI annotations in `Annotated` and default value together for )rX   z+Cannot specify FastAPI annotation for type )r   )r   r   zCannot use `z` for path param in_convert_underscores_-)rk   type_r   aliasr   r   z1Path params must be of one of the supported typeszQuery parameter z# must be one of the supported types)r   rQ   r   )4r   rA   	__value__r   r   r   r@   r   r?   rY   r3   r   r   r   r   	__class__r   r   r   r   rX   r   dataclassesreplacer#   r;   r=   r:   r<   r   r-   Pathr!   r"   Filer   r   Queryr   r   
ParamTypesqueryr   FormrP   r   r/   r    r   r   r1   r   )r   r   r   r   r   rQ   r   use_annotationannotated_argsfastapi_annotationsfastapi_specific_annotationsfastapi_annotationdefault_valuer   use_annotation_from_field_infor   s                   rO   r   r   l  s    JGON
## *)
*000#$.!!Y..!*--(+
 
%abb)
 
 

(
 (
*(
 (
 (
$ ( 	&,R0  "&()44 	)(-)  J
 "i//:3E3V3V3V\J(1 \ \$.\ \ \ 4W3VV
 G-333(VV*VVV(%*
""%2
""*FN;; 	)(G%(( 4,', ,  !!:+5: : "!! 	E9	%	% 4!!,', , "!! 
j),, 	4$3J! w19w--%g/JJJ
 -$	

 
 !!M/MM "!!! 
	!&g.?.E!E!E= 	X  ???JJ;
 
 	X.??	X  VVVJJ+GGG 	XVVVJJWWWJE 		5j&+66  #z3< # ## # 6 
 z6<00	5
E4008#.4JN)7&j&+.. 	,)+++ 	3GJ8Mt$T$T 	3&&sC00EE$2
E 
"0&!
 
 
  		T"///  C /  
FL11 	T&&T6u7G7RSST &e&6&A9MMT T T*SSS	T TN
 PUVVVVr_   r   c                    | j         }t          |dd           }|t          j        j        k    r|j                            |            d S |t          j        j        k    r|j                            |            d S |t          j        j	        k    r|j
                            |            d S |t          j        j        k    sJ d| j                     |j                            |            d S )Nr   z>non-body parameters must be in path, query, header or cookie: )r   r   r   r   rR   rf   rt   r   rg   headerrh   cookierk   ri   )r   rd   r   field_info_ins       rO   r   r     s    !JJt44M)...$$U+++++	&+1	1	1%%e,,,,,	&+2	2	2&&u----- 1 8888YUZYY 988 	&&u-----r_   stack
sub_valuesc                    K   | j         sJ | j        r t          | j                   di |}n.| j        r't	           t          | j                   di |          }|                    |           d {V S )Nrs   )rT   r   r(   r   r)   r   enter_async_context)rd   r   r   cms       rO   _solve_generatorr   %  s       >>& X0 00>>:>>		" X)*H.*H*H*V*V:*V*VWW**2.........r_   c                   z    e Zd ZU eeef         ed<   ee         ed<   ee	         ed<   e
ed<   eeef         ed<   dS )SolvedDependencyr   errorsbackground_tasksresponsedependency_cacheN)r   r   r   dictr   r   r   r   r   r   r<   r.   rs   r_   rO   r   r   0  sk         cNI78888-s2333333r_   r   )bodyr  r  dependency_overrides_providerr  r   r  r  r  r  r  async_exit_stackembed_body_fieldsc        	         D  K   | j                             d          }	t          |	t                    s
J d            | j                             d          }
t          |
t                    s
J d            i }g }|t	                      }|j        d= d |_        |i }|j        D ]}t          t          dt          f         |j                  |_        |j        }|}|r]|j        rV|j        }t          |di                               ||          }|j        }t          |||j        |j        |j                   }t%          | ||||||||		  	         d {V }|j        }|j        r|                    |j                   |j        r|j        |v r||j                 }nn|j        s|j        r-|	}|j         d
k    r|
}t5          |||j                   d {V }n3|j        r |di |j         d {V }nt;          |fi |j         d {V }|j        
|||j        <   |j        |vr
|||j        <   t=          |j        | j                  \  }}t=          |j         | j                   \  }}t=          |j!        | j                  \  }}t=          |j"        | j#                  \  }}|$                    |           |$                    |           |$                    |           |$                    |           |||z   |z   |z   z  }|j%        rJtM          |j%        ||           d {V \  }}|$                    |           |                    |           |j'        r
| ||j'        <   |j(        r t          | tR                    r| ||j(        <   n&|j*        rt          | tV                    r
| ||j*        <   |j,        r|t[                      }|||j,        <   |j.        r
|||j.        <   |j/        rta          |j                  ||j/        <   tc          |||||          S )Nfastapi_inner_astackz/fastapi_inner_astack not found in request scopefastapi_function_astackz2fastapi_function_astack not found in request scopezcontent-length.dependency_overrides)rR   rT   rk   rc   rU   )	r   rd   r  r  r  r  r  r  r  r   )rd   r   r   )body_fieldsreceived_bodyr  )r[   )r   r   r  r  r  rs   )2rU   getrY   r   r<   headersstatus_coderw   r   r   r   rT   r  r   rR   r]   rk   rv   solve_dependenciesr  r   r\   rr   ru   r   r   r   r   is_coroutine_callabler4   request_params_to_argsrf   rg   rh   ri   cookiesupdaterj   request_body_to_argsrn   rl   r;   rm   r=   rp   r'   ro   rq   r-   r   )r   rd   r  r  r  r  r  r  r  request_astackfunction_astackr   r   r{   rT   use_sub_dependantoriginal_calluse_pathsolved_resultsolved
use_astackpath_valuespath_errorsquery_valuesquery_errorsheader_valuesheader_errorscookie_valuescookie_errorsbody_valuesbody_errorss                                  rO   r  r  9  s      ]&&'=>>Nnn55  9 5 m''(ABBOo~66  < 6  FF::-.#"/ 8? 8?!(38"4m6HII!))	-B	 *.M-/Er c-//  *.H -"'$1$>#)! ! ! 1'-*G--/

 

 

 

 

 

 

 

 

 )9 	MM-.///" 	K}'>BR'R'R%m&=>FF-	K1B1X	K (J"j00,
++ (/        FF
 4 	K477-"677777777FF,TJJ]5IJJJJJJJJF))/F=%&"*:::8>]455w2   K "8 4" "L, $:$ $ M= $:$ $ M= MM+
MM,
MM-   
MM-   
kL(=8=HHF 
# '!-/
 
 
 
 
 
 
 
 
	
 	k"""k"""+ ?7>y34# 9
7G(D(D 9/6y+,,		' 9Jw	,J,J 918y-., I#.008Hy45$ 908y,-+ 
7E)8
 8
 8
y34 ))   r_   r   locc                     |B| j                                         rd t          |          gfS t          | j                  g fS |                     |||          S )N)r*  )r   is_requiredr   r	   r   validater   r   r   r*  s       rO    _validate_value_with_model_fieldr/    sg     }'')) 	/1c:::;;;EM**B..>>%S>111r_   c                 H    t          d | j        j        D                       S )Nc              3   B   K   | ]}t          |          t          u V  d S r   )r   r2   )r   items     rO   	<genexpr>z!_is_json_field.<locals>.<genexpr>  s-      HHdtDzzT!HHHHHHr_   )anyr   metadatar   s    rO   _is_json_fieldr6    s%    HHe.>.GHHHHHHr_   r   c                 6   |pt          |           }t          |           sKt          | j        j                  r2t          |t          t          f          r|                    |          }n|	                    |d           }|ft          | j        t          j                  rt          |t                    r|dk    s,t          | j        j                  rBt          |          dk    r/| j                                        rd S t          | j                  S |S )N r   )get_validation_aliasr6  r   r   r   rY   r7   r6   getlistr  r   r   r   r   r,  r	   r   )r   r   r   r   s       rO   _get_multidict_valuer;    s    0)%00EE""(()9)DEE( v 2G<==(
 u%%

5$''u'55 	 5#&& 	  ))9)DEE  E

a '')) 	+FEM***Lr_   received_paramsc                 |   i }g }| s||fS | d         }| }d}d}t          |           dk    rPt          |j        j        t                    r1t          |j        j                  }d}t          |j        dd          }i }t                      }	|D ]}
d }t          |t                    rHt          |
j        d|          }|r0t          |
          }||
j        k    r|                    dd          }t          |
||          }|||t          |
          <   |	                    |pt          |
                     |                                D ]}}||	vrwt!          |d	          rO|                    |          }t          |t$                    rt          |          dk    r|d         ||<   _|||<   e|                    |          ||<   ~|rY|j        }t          |t(          j                  s
J d
            |j        j        f}t1          ||||          \  }}|j        |i|fS | D ]}
t          |
|          }|
j        }t          |t(          j                  s
J d
            |j        j        t          |
          f}t1          |
|||          \  }}|r|                    |           |||
j        <   ||fS )Nr   FTr   r   r   r   )r   r:  z"Params must be subclasses of Paramr.  )r   r#   r   r   r1   r   r   setrY   r6   r9  rk   r   r;  addkeyshasattrr:  r   r  r   r   r   r   r/  r\   )r}   r<  r   r   r   r   single_not_embedded_fielddefault_convert_underscoresparams_to_processprocessed_keysr   r   r   r   keyr   r*  v_errors_s                      rO   r  r    sj     F#%F v~)K %"&
6{{a.)9  4K4J4UVV$(! '."$94'
 '
# )+UUN" A Aow// 		4 #* "79T# # # 4,U33EJ&&!MM#s33E$UO5III=B2599:5?$8$?$?@@@@##%% 	B 	Bn$$	22 B'//44eT** 3E

a-21X%c**-2%c**)8)<)<S)A)A!#&  	/ +
*fl33 	
 	
0	
 	
3 !+ 466%6v3
 
 
G  "%w.. $ $$UO<<%
*fl33 	
 	
0	
 	
3 ~#%9%%@%@A6uV
 
 
G  	$MM'""""!#F5:6>r_   
field_typec                     ddl m} t          |           }|t          ur||urdS t	          |           }|D ]}t          |t                    s dS dS )zJCheck if field type is a Union where all members are BaseModel subclasses.r   )	UnionTypeFT)fastapi.typesrK  r@   r   r?   r#   r1   )rI  rK  origin
union_argsr   s        rO   is_union_of_base_modelsrO  H  s~    ''''''
##F UvY66u*%%J  !#y11 	55	 4r_   c                 B   | sdS d | D             }t          |          dk    rdS | d         }t          |j        dd           rdS t          |j        t          j                  r:t          |j        j        t                    st          |j        j                  sdS dS )NFc                     h | ]	}|j         
S rs   )rk   r   r   s     rO   	<setcomp>z,_should_embed_body_fields.<locals>.<setcomp>`  s    ;;;5EJ;;;r_   r   Tr   embed)
r   r   r   rY   r   r   r#   r   r1   rO  )r}   body_param_names_setr   s      rO   _should_embed_body_fieldsrV  [  s     u <;F;;;
  1$$t)K{%w55 t 	;)6;77";#9#DiPP ((>(IJJ
 t5r_   r  r  c                   K   i }| D ]}t          ||          }|j        }t          |t          j                  rIt          |j        j                  r0t          |t                    r|                                 d {V }nt          |j        j                  rt          |t          j                  rt          |          rt          |t                    sJ g dt          g t          t          t          t          f         f         dd ffd}t          j                    4 d {V }|D ]}|                    ||j                   	 d d d           d {V  n# 1 d {V swxY w Y   t%          |          }|||t'          |          <   d | D             }	|                                D ]?}
|
|	vr9|                    |
          }t-          |          dk    r|d         ||
<   :|||
<   @|S )NfnrB   c                 V   K    |              d {V }                     |           d S r   )rt   )rX  resultresultss     rO   
process_fnz&_extract_form_body.<locals>.process_fn  s8        "rttv&&&&&r_   )r   r   c                 ,    h | ]}t          |          S rs   )r9  rR  s     rO   rS  z%_extract_form_body.<locals>.<setcomp>  s!    JJJU)%00JJJr_   r   r   )r;  r   rY   r   r   r   r   r9   readr   r&   r$   r   r   r   anyiocreate_task_group
start_soonr%   r9  r@  r:  r   )r  r  r   r   r   r   r\  tg	sub_valuefield_aliasesrF  param_valuesr[  s               @rO   _extract_form_bodyrf  s  s      F 8 8$UM::%
z6;//	I4U5E5PQQ	I 5*--	I
  **,,&&&&&&EE()9)DEE	I:v{33	I "%((	I e^44444/1G'R3S=!99:'' ' ' ' ' ' .00 > > > > > > >B!& > >IMM*in====>> > > > > > > > > > > > > > > > > > > > > > > > > > > -5HHHE27F'../JJkJJJM!!## + +m##(0055L<  A%%*1os*sMs   -!E!!
E+	.E+	c                    K   i }g }| s
J d            t          |           dk    o| }| d         }|}| }|rMt          |j        j        t                    r.t          |t                    rt          |j        j                  }t          |t                    rt          ||           d {V }|r#d}	t          ||||	          \  }
}|j
        |
i|fS | D ]}dt          |          f}	d }|V	 |                    t          |                    }n2# t          $ r% |                    t          |	                     Y iw xY wt          ||||	          \  }
}|r|                    |           |
||j
        <   ||fS )Nz3request_body_to_args() should be called with fieldsr   r   )r  r.  r  )r   r#   r   r   r1   rY   r5   r   rf  r/  rk   r9  r  AttributeErrorrt   r   r\   )r  r  r  r   r   rB  r   body_to_processr   r*  rG  rH  r   r   s                 rO   r  r    s     
  F#%FMMMMM; #K 0 0A 5 O>O:Oa.K#O*5 	"W{5@)LLW }h//W
 4K4J4UVV-** U 23Dm T TTTTTTT  /(6_V
 
 
G  "%w.. $ $+E223#&'++,@,G,GHH!   5c::;;; 7uV
 
 
G  	$MM'""""!#F5:6>s   ."D,E ?E rz   c           
      2   | j         sdS | j         d         }|s|S d|z   }t          | j         |          }t          d | j         D                       }|dd}|sd|d<   t          d	 | j         D                       rt          j        }nst          d
 | j         D                       rt          j        }nHt          j        }d | j         D             }	t          t          |	                    dk    r|	d         |d<   t          d|d |di |          }
|
S )a  
    Get a ModelField representing the request body for a path operation, combining
    all body parameters into a single field if necessary.

    Used to check if it's form data (with `isinstance(body_field, params.Form)`)
    or JSON and to generate the JSON Schema for a request body.

    This is **not** used to validate/parse the request body, that's done with each
    individual body parameter.
    Nr   Body_)r}   
model_namec              3   L   K   | ]}|j                                         d V   dS )TN)r   r,  r   fs     rO   r3  z!get_body_field.<locals>.<genexpr>  sI        AL4L4L4N4N     r_   r  )r   r   r   c              3   T   K   | ]#}t          |j        t          j                  V  $d S r   )rY   r   r   r   rn  s     rO   r3  z!get_body_field.<locals>.<genexpr>  s0      
U
UQ:alFK00
U
U
U
U
U
Ur_   c              3   T   K   | ]#}t          |j        t          j                  V  $d S r   )rY   r   r   r   rn  s     rO   r3  z!get_body_field.<locals>.<genexpr>  s0      WWqZfk22WWWWWWr_   c                 d    g | ]-}t          |j        t          j                  !|j        j        .S rs   )rY   r   r   r   
media_typern  s     rO   r   z"get_body_field.<locals>.<listcomp>  sA     "
 "
 "
!,44"
L#"
 "
 "
r_   r   rs  )rk   r   r   r   rs   )
rj   r   r4  r   r   r   r   r   r>  r/   )rz   rk   r  first_paramrl  	BodyModelrequiredBodyFieldInfo_kwargsBodyFieldInfobody_param_media_typesfinal_fields              rO   get_body_fieldr{    s    % t ,Q/K 4J!)j  I   $0    H  , ,  /*.Y'

U
U.:T
U
U
UUU K+1;	WWN<VWWW	W	W K"
 "
#/"
 "
 "

 s)**++q001G1J .$ =88#788	  K r_   c                 6    t          | dd           }|p| j        S )Nvalidation_alias)r   r   )r   vas     rO   r9  r9  
  s!    	*D	1	1Br_   )rB   Nr   )r   r   r   collections.abcr   r   r   
contextlibr   r   r   r	   r
   typingr   r   r   r   r   r   r   r_  fastapir   fastapi._compatr   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   fastapi.backgroundr'   fastapi.concurrencyr(   r)   fastapi.dependencies.modelsr*   fastapi.exceptionsr+   fastapi.loggerr,   fastapi.security.oauth2r-   rL  r.   fastapi.utilsr/   r0   pydanticr1   r2   pydantic.fieldsr3   starlette.backgroundr   starlette.concurrencyr4   starlette.datastructuresr5   r6   r7   r8   r9   starlette.requestsr:   r;   starlette.responsesr<   starlette.websocketsr=   typing_extensionsr>   r?   r@    typing_inspection.typing_objectsrA   rN   rL   rP   r   r   r^   boolr   rx   r   r   r   r   r   r  r   r   r]   r   r   r   r   r   r   r  tupler/  r6  r;  r  rO  rV  rf  r  r{  r9  rs   r_   rO   <module>r     s
        



 8 8 8 8 8 8 8 8 8 8 5 5 5 5 5 5 5 5         ! ! ! ! ! !                                                                   , / . . . . .        2 1 1 1 1 1 3 3 3 3 3 3 ! ! ! ! ! ! 2 2 2 2 2 2 , , , , , , B B B B B B B B $ $ $ $ $ $ $ $ % % % % % % L L L L L L 3 3 3 3 3 3              7 6 6 6 6 6 6 6 ( ( ( ( ( ( * * * * * * ; ; ; ; ; ; ; ; ; ; = = = = = =% % "H H H H6 c i    $ 26/33 3 33 3 d-./	3
 "$s),3 3 3 3 3l	j)9 	d:>N 	 	 	 	Fy FT*-= F F F F#s(+ 0A    $hsCx0 W5F    "S DcN s    	6hsCx&8 	6S 	6 	6 	6 	6  ,0/39=H H H
H 38
H 3-	H
 tCy)H "$s),H H ./56H H H H HV),9Bd^   0                fWfW fW 	fW
 fW fW fW fW fWR.* . .t . . . . //$2/@DS#X// / / / 4 4 4 4 4 4 4 4 7;;?#'37@DI I I7I%&I I 5c3h12
3	I
 78I x I $,C=I t$6$;<=I %I I I I I IX22!$2.238n2CHc?2
3S	>2 2 2 2I* I I I I I
 MQ &sCx09>sDy9I   >RZ R738,k7BCR 4S>49$%R R R Rj     &d:&6 4    0,j!,, 
#s(^, , , ,^/j!/E$sCx.(":;</ / 4S>4S#X//0	/ / / /d3 3(+3@D3j3 3 3 3l
 s      r_   