
    pi                     H   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,m-Z- d d	l.m/Z/ d d
l0m1Z1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 d dl9m:Z: d dl;m<Z< d dl=m>Z>m?Z? d dl@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ZYdZZdddZ[dej                  de]de4fdZ^d ddd!d"e4d#e_d$ee`e<      d%ee`e]      de4f
d&Zad'e`e   de`e   fd(Zbd"e4de`e   fd)Zcd*ed+ef   dej                  fd,Zed*ed+ef   dej                  fd-Zfd.ed/ege]ef   defd0Zhd*ed+ef   defd1Zidddd2dd3de]d*ed+ef   d4ee]   d5ee`e]      d%ee`e]      d6e_d7eeVd8   df   de4fd9Zjd:e]d;ed"e4dee_   fd<Zke G d= d>             Zld:e]d.ed?ed@e_delf
dAZmdBed"e4ddfdCZnd"e4dDedEege]ef   defdFZoe G dG dH             ZpddddddIdJeePeTf   d"e4dKeeege]ef   eIf      dLeeE   dMeeR   dNee   dOeege<ef      dPedQe_depfdRZqdBed?edSege]ef   dTere]d+f   deree`e   f   f
dUZs	 dedBedSee]ef   dVee]df   defdWZtd'ee   dXeee]ef   eLeJf   derege]ef   e`e   f   fdYZudZede_fd[Zvd'e`e   de_fd\Zwd]e`e   d^eIdege]ef   fd_Zxd]e`e   d^eeege]ef   eIf      dQe_derege]ef   e`ege]ef      f   fd`Zydae4d4e]dQe_dee   fdbZzdBede]fdcZ{y)f    N)	CoroutineMappingSequence)AsyncExitStackcontextmanager)copydeepcopy)	dataclass)	AnnotatedAnyCallable
ForwardRefOptionalUnioncast)params)
ModelFieldRequiredParam	Undefined_regenerate_error_with_loccopy_field_infocreate_body_modelevaluate_forwardreffield_annotation_is_scalarget_cached_model_fieldsget_missing_field_erroris_bytes_fieldis_bytes_sequence_fieldis_scalar_fieldis_scalar_sequence_fieldis_sequence_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)	FieldInfo)run_in_threadpool)FormDataHeadersImmutableMultiDictQueryParams
UploadFile)HTTPConnectionRequest)Response)	WebSocket)Literalget_args
get_originzForm 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                  P   	 ddl m}  | dkD  sJ y # t        t        f$ r 	 ddlm}  | sJ 	 ddlm} |sJ n6# t        $ r* t        j                  t               t        t              d w xY wY y # 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_multipartrC   ImportErrorAssertionError	multipartmultipart.multipartrD   r-   error!multipart_incorrect_install_errorRuntimeErrormultipart_not_installed_error)rC   rD   s     \/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/fastapi/dependencies/utils.pyensure_multipart_is_installedrO   U   s    H0 X%%%( H	H-;	P ,++ P>?"#DE4OP ,  	HLL67<=4G	H!Hs.    B%
A.
6A.3A))A..3B!!B%dependspathc                    t        | j                        sJ d       g }t        | t        j                        r'| j
                  r|j                  | j
                         t        || j                  | j                  |      S )Nz;A parameter-less dependency must have a callable dependency)rQ   callscopeown_oauth_scopes)	callable
dependency
isinstancer   Securityscopesextendget_dependantrT   )rP   rQ   rU   s      rN   get_parameterless_sub_dependantr]   p   sq    G&&' E' #%'6??+/mm)	     Fskip_repeatsvisitedparent_oauth_scopes	dependantr`   ra   rb   c                <   |g }|j                  | j                         |xs g | j                  xs g z   }t        di d| j                  j                         d| j                  j                         d| j                  j                         d| j                  j                         d| j                  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                  j1                  |j                         |j                  j1                  |j                         |j                  j1                  |j                         |j                  j1                  |j                         |j                  j1                  |j                         |j,                  j1                  |j,                         ) |S )Npath_paramsquery_paramsheader_paramscookie_paramsbody_paramsnamerS   request_param_namewebsocket_param_namehttp_connection_param_nameresponse_param_namebackground_tasks_param_namesecurity_scopes_param_namerU   rb   	use_cacherQ   rT   r_    )append	cache_keyoauth_scopesr+   re   r   rf   rg   rh   ri   rj   rS   rk   rl   rm   rn   ro   rp   rU   rq   rQ   rT   dependenciesget_flat_dependantr[   )rc   r`   ra   rb   use_parent_oauth_scopesflat_dependantsub_dependantflat_subs           rN   rw   rw      s    NN9&&'28b$"  ))..0++002  --224  --224	
 ))..0 ^^ ^^ %77 ';; $-#G#G &99 %.$I$I $-#G#G #33 4  %%!" ^^#$ oo%N( #// BM33w>%% . ; ;	
 	##**84""))(*>*>?##**8+@+@A$$++H,B,BC$$++H,B,BC""))(*>*>?##**8+@+@AB" r^   fieldsc                     | s| S | d   }t        |       dk(  r1t        |j                  t              rt	        |j                        }|S | S )Nr      )lenr$   type_r2   r   )r|   first_fieldfields_to_extracts      rN   _get_flat_fields_from_paramsr      sK    )K
6{a.{/@/@)L3K4E4EF  Mr^   c                     t        | d      }t        |j                        }t        |j                        }t        |j                        }t        |j
                        }||z   |z   |z   S )NT)r`   )rw   r   re   rf   rg   rh   )rc   ry   re   rf   rg   rh   s         rN   get_flat_paramsr      sc    '	EN.~/I/IJK/0K0KLL01M1MNM01M1MNM%5EEr^   rS   .c                     t         j                  dk\  r	 t        j                  | d      }|S t        j                  |       }|S # t        $ r t        j                  |       }Y |S w xY w)N)   
   T)eval_str)sysversion_infoinspect	signature	NameError)rS   r   s     rN   _get_signaturer      sr    
7"	0))$>I  %%d+	  	0  ))$/I 	0s   A A'&A'c                 t   t        |       }t        j                  |       }t        |di       }|j                  j                         D cg c]M  }t        j                  |j                  |j                  |j                  t        |j                  |            O }}t        j                  |      }|S c c}w )N__globals__)rj   kinddefault
annotation)r   r   unwrapgetattr
parametersvalues	Parameterrj   r   r   get_typed_annotationr   	Signature)rS   r   	unwrappedglobalnsparamtyped_paramstyped_signatures          rN   get_typed_signaturer      s    t$It$Iy-4H ))002  	MM+E,<,<hG		
L  ''5Os   
AB5r   r   c                 r    t        | t              r&t        |       } t        | ||      } | t	        d       u ry | S N)rX   strr   r   type)r   r   s     rN   r   r      s9    *c"
+
(XxH
d#r^   c                     t        |       }t        j                  |       }|j                  }|t        j                  j
                  u ry t        |di       }t        ||      S )Nr   )r   r   r   return_annotationr   emptyr   r   )rS   r   r   r   r   s        rN   get_typed_return_annotationr      sW    t$It$I,,JW&&,,,y-4H
H55r^   T)rj   rU   rb   rq   rT   rj   rU   rq   rT   )functionrequestc           
         t        ||| ||||      }|xs g |xs g z   }t        |       }	t        |      }
|
j                  }|j	                         D ]3  \  }}||	v }t        ||j                  |j                  |      }|j                  O|j                  j                  sJ |j                  s|j                  rY|j                  dk(  rJ|j                  j                  dk(  r1|j                  sJ t        d|j                  j                    d      g }t#        |j                  t$        j&                        r5|j                  j(                  rt+        |j                  j(                        }t-        | |j                  j                  ||||j                  j.                  |j                  j                        }|j0                  j3                  |       t5        ||j6                  |      r|j8                  
J d	|       |j8                  J t#        |j8                  j:                  t$        j<                        r'|j>                  j3                  |j8                         tA        |j8                  |
       6 |S )N)rS   rj   rQ   rq   rT   rU   rb   )
param_namer   valueis_path_paramr   r   zThe dependency "zS" has a scope of "request", it cannot depend on dependencies with scope "function".)rQ   rS   rj   rU   rb   rq   rT   r   type_annotationrc   z0Cannot specify multiple FastAPI annotations for )fieldrc   )!r+   r1   r   r   itemsanalyze_paramr   r   rP   rW   is_gen_callableis_async_gen_callablecomputed_scoperT   rS   r,   __name__rX   r   rY   rZ   listr\   rq   rv   rs   !add_non_field_param_to_dependencyr   r   
field_infoBodyri   add_param_to_fields)rQ   rS   rj   rU   rb   rq   rT   rc   current_scopespath_param_namesendpoint_signaturesignature_paramsr   r   r   param_detailssub_own_oauth_scopesrz   s                     rN   r\   r\      ss    )/I */R4D4JKN+D1,T2)44-335 0P
E"&66%!''--'	
   , ((3333**i.M.M,,	9!))//:= ~~%~*&y~~'>'>&? @Y Y  /1 -//A ((//+/0E0E0L0L+M()"**55!5$2'//99#++11M ""))-8,!)99

 !&&. B:.Q. ""...m))44fkkB!!(()<)<=m&9&9YOa0Pb r^   r   r   c                 $   t        |t              r| |_        yt        |t              r| |_        yt        |t
              r| |_        yt        |t              r| |_        yt        |t              r| |_
        yt        |t              r| |_        yy )NT)r$   r;   rk   r=   rl   r:   rm   r<   rn   StarletteBackgroundTasksro   r.   rp   r   s      rN   r   r   F  s     /73'1	$	OY	7)3	&	O^	</9	,	OX	6(2	%	O-E	F0:	-	O^	</9	,r^   c                   L    e Zd ZU eed<   eej                     ed<   ee   ed<   y)ParamDetailsr   rP   r   N)	r   
__module____qualname__r   __annotations__r   r   Dependsr   rr   r^   rN   r   r   ^  s"    fnn%%Jr^   r   r   r   c           	      	   d }d }t         }t         }|t        j                  j                  ur|}|}t	        |      t
        u rNt        |      }|d   }|dd  D 	cg c]$  }	t        |	t        t        j                  f      r|	& }
}	|
D 	cg c]=  }	t        |	t        j                  t        j                  t        j                  f      r|	? }}	|r|d   }nd }t        |t              rt        ||      }|j                  t        k(  s5|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
|        |}n5t        |t              r%|
J d|        |}t        |t              r||_        |.|j(                  "t+        |      }t-        j.                  ||      }t1        |t2        t4        t6        t8        t:        t<        f      r|
J d|       |J d|       |||t        j                  j                  ur|nt         }|rt        j>                  |      }nitA        |      stC        |      rt        jD                  ||      }n;tG        |      st        j                  ||      }nt        jH                  ||      }d }||r;t        |t        j>                        sgJ d|j"                  j$                   d|        t        |t        j                        r,tK        |dd       t        jL                  jN                  |_(        |}t        |t        jR                        r
tU                |jV                  s tK        |dd       r| j/                  dd      }n|jV                  xs | }||_+        tY        | ||j                  ||j                  t         t        fv |      }|rt[        |      scJ d       t        |t        jH                        rBt[        |      s7t]        |      s,t1        |j^                  t`              rtK        |dd      dk(  sJ tc        |||      S c c}	w c c}	w )Nr   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 )rW   z"Cannot specify `Depends` for type z+Cannot specify FastAPI annotation for type )r   )r   r   zCannot use `z` for path param in_convert_underscores_-)rj   r   r   aliasrequiredr   )r   z1Path params must be of one of the supported typesshape)r   rP   r   )2r   r   r   r   r@   r   r?   rX   r3   r   r   Paramr   r   r   r   r   	__class__r   r   rW   r   dataclassesreplacer$   r;   r=   r:   r<   r   r.   Pathr"   r#   Filer   Queryr   
ParamTypesqueryr   FormrO   r   r0   r   r    r   r2   r   )r   r   r   r   r   rP   r   use_annotationannotated_argsargfastapi_annotationsfastapi_specific_annotationsfastapi_annotationdefault_valuer   use_annotation_from_field_infor   s                    rN   r   r   e  s    JGON**000#$.!Y.!*-(+ &ab)
#	6>>:; 
 
 +(
LLKKNN (
$ (
 (,R0  "&()4(-)J
 ""i/:3E3E3V J((112 3$$.>1Z\V
 G--333(V*VV(%*
"%2
"*FNN;(G%( 	
'N,	
 ! 	
++5.:	
! 	E9	%! 	
'N,	
! 
j),$3J! w119w-%%g/J $	

 X"D_DW XX! 	
9/9LM	
! 
	!&g.?.?.E.E!E=  ?J;
.?VJ+GVJWJEj&++6 z33<<= >>#6
 z6<<0
E408#..44JN)7&j&++.)+GJ8Mt$T&&sC0E$$2
E 
"0&&''M9+EE!
 "/ C/ 
FLL1&+E2&u{{I>w2a7 PUVVk

(
s   )R8	AR=r   c                 $   | j                   }t        |dd       }|t        j                  j                  k(  r|j
                  j                  |        y |t        j                  j                  k(  r|j                  j                  |        y |t        j                  j                  k(  r|j                  j                  |        y |t        j                  j                  k(  sJ d| j                          |j                  j                  |        y )Nr   z>non-body parameters must be in path, query, header or cookie: )r   r   r   r   rQ   re   rs   r   rf   headerrg   cookierj   rh   )r   rc   r   field_info_ins       rN   r   r     s    !!JJt4M))...$$U+	&++11	1%%e,	&++22	2&&u- 1 1 8 88 	
LUZZLY	
8 	&&u-r^   stack
sub_valuesc                   K   | j                   sJ | j                  r t        | j                         di |}n0| j                  r$t	         t        | j                         di |      }|j                         d {   S 7 w)Nrr   )rS   r   r)   r   r*   r   enter_async_context)rc   r   r   cms       rN   _solve_generatorr     st      >>>&&0 0>:>		"	")*H.*H*V:*VW**2....s   A;B=B>Bc                   `    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<   y)SolvedDependencyr   errorsbackground_tasksresponsedependency_cacheN)r   r   r   dictr   r   r   r   r   r   r<   r/   rr   r^   rN   r   r   *  s=    cNI788-s233r^   r   )bodyr   r   dependency_overrides_providerr   r   r   r   r   r   r   async_exit_stackembed_body_fieldsc        	         	  K   | j                   j                  d      }	t        |	t              sJ d       | j                   j                  d      }
t        |
t              sJ d       i }g }|t	               }|j
                  d= d |_        |i }|j                  D ]  }t        t        dt        f   |j                        |_        |j                  }|}|ro|j                  rc|j                  }t        |di       j                  ||      }|j                  }t        |||j                   |j"                  |j                         }t%        | ||||||||		       d {   }|j&                  }|j(                  r|j+                  |j(                         |j,                  r|j.                  |v r||j.                     }n|j0                  s|j2                  r4|	}|j                   d
k(  r|
}t5        |||j6                         d {   }nE|j8                  r |di |j6                   d {   }nt;        |fi |j6                   d {   }|j                   |||j                   <   |j.                  |vs|||j.                  <    t=        |j>                  | j>                        \  }}t=        |j@                  | j@                        \  }}t=        |jB                  | j
                        \  }}t=        |jD                  | jF                        \  }}|jI                  |       |jI                  |       |jI                  |       |jI                  |       |||z   |z   |z   z  }|jJ                  rEtM        |jJ                  ||       d {   \  }}|jI                  |       |j+                  |       |jN                  r| ||jN                  <   |jP                  r t        | tR              r| ||jP                  <   n+|jT                  rt        | tV              r| ||jT                  <   |jX                  r|
t[               }|||jX                  <   |j\                  r|||j\                  <   |j^                  r#ta        |j"                        ||j^                  <   tc        |||||      S 7 S7 7 7 m7 )w)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)rQ   rS   rj   rb   rT   )	r   rc   r   r   r   r   r   r   r   r   )rc   r   r   )body_fieldsreceived_bodyr   )rZ   )r   r   r   r   r   rr   )2rT   getrX   r   r<   headersstatus_coderv   r   r   r   rS   r   r   rQ   r\   rj   ru   solve_dependenciesr   r   r[   rq   rt   r   r   r   r   is_coroutine_callabler4   request_params_to_argsre   rf   rg   rh   cookiesupdateri   request_body_to_argsrm   rk   r;   rl   r=   ro   r(   rn   rp   r.   r   )r   rc   r   r   r   r   r   r   r   request_astackfunction_astackr   r   rz   rS   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                                  rN   r  r  3  s     ]]&&'=>Nnn5 95 mm''(ABOo~6 <6  FF:-.#"// 8?!(38"4m6H6HI!!))-BB)..M-/Erc-/  *..H -"''$1$>$>#))! 1'-*G--/

 

 )99MM-../""}'>'>BR'R%m&=&=>F--1B1X1X'J""j0,
++ (// F
 447-"6"677F,TJ]5I5IJJF))/F=%%&""*::8>]445q8?r  6w22 K "8 4 4"L, $:$ M= $:$ M= MM+
MM,
MM- 
MM- 
kL(=8=HHF '!--/
 
	
 	k"k"++7>y334##
7G(D/6y++,		'	'Jw	,J18y--.,,#.08Hy445$$08y,,-++7E))8
y334 )) a

. 8J4
sc   ER?R0B(R?R3&R?-R6.R?R9-R?<DR?R<DR?3R?6R?9R?<R?r   locc                     |2| j                   rd t        |      gfS t        | j                        g fS | j	                  |||      \  }}t        |t              rt        |d      }d |fS |g fS )N)r  rr   )r   
loc_prefix)r   r   r	   r   validaterX   r   r   )r   r   r   r  v_errors_
new_errorss          rN    _validate_value_with_model_fieldr%    sz     }>>1c:;;;EMM*B....C.8KB'4 /w2N
Z2vr^   r   c                    |xs t        |       }t        |       r(t        |t        t        f      r|j                  |      }n|j                  |d       }|Rt        | j                  t        j                        rt        |t              r|dk(  st        |       r0t        |      dk(  r"| j                  ry t        | j                        S |S )N r   )get_validation_aliasr!   rX   r7   r6   getlistr  r   r   r   r   r   r   r	   r   )r   r   r   r   s       rN   _get_multidict_valuer*    s     0)%0EJv8JG7T$Uu%

5$'u''55#&e$Uq>>EMM**Lr^   received_paramsc                    i }g }| s||fS | d   }| }d}d}t        |       dk(  rHt        |j                  t              r.t	        |j                        }d}t        |j                  dd      }i }t               }	|D ]  }
d }t        |t              rEt        |
j                  d|      }|r,t        |
      }||
j                  k(  r|j                  dd      }t        |
||      }|||t        |
      <   |	j                  |xs t        |
              |j                         D ]e  }||	vst!        |d	      r>|j#                  |      }t        |t$              rt        |      dk(  r	|d   ||<   L|||<   R|j'                  |      ||<   g |rf|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|j3                  |       |||
j                  <    ||fS )Nr   FTr~   r   r   r   )r   r)  z"Params must be subclasses of Paramr   r   r   r  )r   r$   r   r2   r   r   r   setrX   r6   r(  rj   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  r"  r#  s                      rN   r  r    s     F#%Fv~)K %"&
6{a.{/@/@)L3K4E4EF$(! '.""$94'
# )+UN" Aow/ #*  "79T# #,U3EJJ&!MM#s3E$UO5I=B259:5?$8$?@A" ##% 	Bn$	2'//4eT*E
a-21X%c*-2%c*)8)<)<S)A!#&	B ! ++
*fll3 	
0	
3 !+ 4 466%6v3
G   "%w.. $$UO<%%
*fll3 	
0	
3 ~~##%9%%@A6uV
G MM'"!#F5::$ 6>r^   
field_typec                     ddl m} t        |       }|t        ur||uryt	        |       }|D ]  }t        |t              r y y)zJCheck if field type is a Union where all members are BaseModel subclasses.r   )	UnionTypeFT)fastapi.typesr9  r@   r   r?   r$   r2   )r7  r9  origin
union_argsr   s        rN   is_union_of_base_modelsr=  :  sN    '
#F UvY6*%J !#y1 r^   c                 F   | sy| D ch c]  }|j                    }}t        |      dkD  ry| d   }t        |j                  dd       ryt	        |j                  t
        j                        r0t        |j                  t              st        |j                        syyc c}w )NFr~   Tr   embed)rj   r   r   r   rX   r   r   r$   r   r2   r=  )r|   r   body_param_names_setr   s       rN   _should_embed_body_fieldsrA  M  s     5;;5EJJ;;
 1$)K{%%w5 	;))6;;7";#4#4i@'(9(9:! <s   Br  r  c                   K   i }| D ]E  }t        ||      }|j                  }t        |t        j                        r4t        |      r)t        |t              r|j                          d {   }nt        |      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 {   }|D ]  }|j!                  ||j                           d d d       d {    t#        |      }|8||t%        |      <   H | D ch c]  }t%        |       }	}|j'                         D ]4  }
|
|	vs|j)                  |
      }t+        |      dk(  r	|d   ||
<   0|||
<   6 |S 7 F7 7 # 1 d {  7  sw Y   xY wc c}w w)NfnrA   c                 R   K    |         d {   }j                  |       y 7 wr   )rs   )rC  resultresultss     rN   
process_fnz&_extract_form_body.<locals>.process_fn}  s#       "tv& $s   '%')r   r   r~   r   )r*  r   rX   r   r   r   r9   readr   r'   r%   r   r   r   anyiocreate_task_group
start_soonr&   r(  r0  r)  r   )r  r  r   r   r   r   rG  tg	sub_valuefield_aliasesr6  param_valuesrF  s               @rN   _extract_form_bodyrP  e  s     F 8$UM:%%
z6;;/u%5*-**,&E#E*:v{{3!%( e^444/1G'R3S=!99:'' ..0 > >B!& >IMM*inn=>> > -5HE27F'./;8< ?JJU)%0JMJ!!# +m#(005L< A%*1os*s+ M= ' > > > > > Kss   A)G,F2-B
G7F58G;$F9G*F7+G GG'G2G5G7G9G	?G G	Gc                   K   i }g }| sJ d       t        |       dk(  xr | }| d   }|}| }|r?t        |j                  t              r%t	        |t
              rt        |j                        }t	        |t
              rt        ||       d {   }|r$d}	t        ||||	      \  }
}|j                  |
i|fS | D ]c  }dt        |      f}	d }|	 |j                  t        |            }t        ||||	      \  }
}|r|j                  |       U|
||j                  <   e ||fS 7 # t        $ r |j                  t        |	             Y w xY ww)Nz3request_body_to_args() should be called with fieldsr~   r   )r   r-  r   )r   r$   r   r2   rX   r5   r   rP  r%  rj   r(  r  AttributeErrorrs   r   r[   )r  r  r   r   r   r2  r   body_to_processr   r  r"  r#  r   r   s                 rN   r  r    s    
  F#%FMMM; #K 0A 5 O>O:Oa.K#O*5 	"{00)<}h/3K4E4EF-* 23Dm TT (6_V
G   "%w.. $+E23#&'++,@,GH
 7uV
G MM'"!#F5::!$" 6>3 U " 5c:;s7   B
ED#A ED%(<E%#EE
EEry   c                    | j                   sy| j                   d   }|s|S d|z   }t        | j                   |      }t        d | j                   D              }|dd}|sd|d<   t        d	 | j                   D              rt        j                  }nt        d
 | j                   D              rt        j
                  }nt        j                  }| j                   D 	cg c]<  }	t        |	j                  t        j                        r|	j                  j                  > }
}	t        t        |
            dk(  r|
d   |d<   t        d||d |di |      }|S c c}	w )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   :   K   | ]  }|j                   sd   yw)TN)r   .0fs     rN   	<genexpr>z!get_body_field.<locals>.<genexpr>  s     JAqzz4Js   r   )r   r   r   c              3   d   K   | ](  }t        |j                  t        j                         * y wr   )rX   r   r   r   rX  s     rN   r[  z!get_body_field.<locals>.<genexpr>  s     
UQ:allFKK0
U   .0c              3   d   K   | ](  }t        |j                  t        j                         * y wr   )rX   r   r   r   rX  s     rN   r[  z!get_body_field.<locals>.<genexpr>  s     WqZfkk2Wr]  r~   
media_type)rj   r   r   r   r   rr   )ri   r   anyr   r   r   r   rX   r   r_  r   r.  r0   )ry   rj   r   first_paramrV  	BodyModelr   BodyFieldInfo_kwargsBodyFieldInforZ  body_param_media_typesfinal_fields               rN   get_body_fieldrg    sV    %% ,,Q/K4J!))jI J!;!;JJH, *.Y'

U.:T:T
UU+1;;	WN<V<VW	W $//"
!,,4 LL##"
 "

 s)*+q01G1J .$ 8#78K "
s   AEc                 <    t        | dd       }|xs | j                  S )Nvalidation_alias)r   r   )r   vas     rN   r(  r(    s     	*D	1Br^   )rA   Nr   )|r   r   r   collections.abcr   r   r   
contextlibr   r   r   r	   r
   typingr   r   r   r   r   r   r   rI  fastapir   fastapi._compatr   r   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.   r:  r/   fastapi.utilsr0   r1   pydanticr2   pydantic.fieldsr3   starlette.backgroundr   starlette.concurrencyr4   starlette.datastructuresr5   r6   r7   r8   r9   starlette.requestsr:   r;   starlette.responsesr<   starlette.websocketsr=   typing_extensionsr>   r?   r@   rM   rK   rO   r   r   r]   boolr   rw   r   r   r   r   r   r   r   r   r\   r   r   r   r   r   r   r  tupler%  r*  r  r=  rA  rP  r  rg  r(  rr   r^   rN   <module>r     s     
 8 8 5  !         . / 2 3 ! 2 , B  % L 3  7 ( * ; ;% % "H6 c i $ 26/333 3 d-./	3
 "$s),3 3lj)9 d:>N Fy FT*-= F
#s(+ 
0A0A 
hsCx0 W5F5F "S DcN s 	6hsCx&8 	6S 	6  ,0/39=H
H 38
H 3-	H
 tCy)H "$s),H H ./56H HV),9Bd^0      gWgW gW 	gW
 gW gWT.* . .t . //$2/@DS#X// 4 4 4 7;;?#'37@DI7I%&I I 5c3h12
3	I
 78I x I $,C=I t$6$;<=I %I I IX!$.238nCHc?
3S	>" MQ&sCx09>sDy9I0PZ P738,k7BCP 4S>49$%Pf  &d:&6 4 0,j!,, 
#s(^,^/j!/E$sCx.(":;</ / 4S>4S#X//0	/d2 2(+2@D2j2j
 s r^   