o
    f!v                     @   s  d dl Z d dlmZmZ d dlmZ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 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,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3 d d	l4m5Z5m6Z6 d d
l7m8Z8 d dl9m:Z: d dl;m<Z<m=Z= d dl>m?Z? d dl@mAZAmBZB d dlCmDZD d dlEm0ZF d dlGmHZH d dlImJZJmKZKmLZLmMZM d dlNmOZOmPZP d dlQmRZR d dlSmTZT d dlUmVZVmWZWmXZX dZYdZZdeddfddZ[ddde\dej]de\d eee\  de5f
d!d"Z^dej]de\de5fd#d$Z_ddd%dej]d&ed'ef de\d(ee\ d eee\  de5fd)d*Z`eeed'ef  ee\d'f f Zad+dd,d-e5d.ebd/eeea  de5fd0d1Zcd-e5dee fd2d3Zdd4ed'ef de jefd5d6Zfd7ed8e
e\ef defd9d:Zgd4ed'ef defd;d<Zhddd=d>de\d4ed'ef d(ee\ d eee\  d?ebde5fd@dAZide\dBed-e5deeb fdCdDZjde\d7edEedFebdeeeej] ee f f
dGdHZkdIedFebdebfdJdKZlded-e5ddfdLdMZmd4ed'ef debfdNdOZnd4ed'ef debfdPdQZod4ed'ef debfdRdSZpd4ed'ef dTedUe
e\ef defdVdWZqddddddXdYeePeTf d-e5dZeee
e\ef eJf  d[eeF d\eeR d]ee d^ee
eed'ef ee\ f ef  d_edee
e\ef ee eeF eRe
eed'ef ee\ f ef f fd`daZrdbee dceee\ef eLeKf dee
e\ef ee f fdddeZsdbee dfeee
e\ef eJf  dee
e\ef ee
e\ef  f fdgdhZtd-e5d(e\dee fdidjZudS )k    N)AsyncExitStackcontextmanager)copydeepcopy)AnyCallable	CoroutineDict
ForwardRefListMappingOptionalSequenceTupleTypeUnioncast)params)PYDANTIC_V2ErrorWrapper
ModelFieldRequired	Undefined_regenerate_error_with_loccopy_field_infocreate_body_modelevaluate_forwardreffield_annotation_is_scalarget_annotation_from_field_info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SecurityRequirement)logger)SecurityBase)OAuth2SecurityScopes)OpenIdConnect)create_response_fieldget_path_param_names)	FieldInfo)run_in_threadpool)FormDataHeadersQueryParams
UploadFile)HTTPConnectionRequest)Response)	WebSocket)	Annotated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
fieldreturnc                 C   s   | j }t|tjrEz*ddlm} |sJ zddlm} |sJ W W d S  ty3   t	
t ttd w  tyD   t	
t ttd w d S )Nr   )__version__)parse_options_header)
field_info
isinstancer   Form	multipartrF   multipart.multipartrG   ImportErrorr0   error!multipart_incorrect_install_errorRuntimeErrormultipart_not_installed_error)rD   rH   rF   rG    rR   R/var/www/NoticeGen/venv/lib/python3.10/site-packages/fastapi/dependencies/utils.pycheck_file_fieldR   s"   



rT   )security_scopes
param_namedependspathrU   c                 C   s   |j sJ t||j || |dS )N)rW   
dependencyrX   namerU   )rY   get_sub_dependantrV   rW   rX   rU   rR   rR   rS   get_param_sub_dependantg   s   
r]   c                 C   s"   t | js	J dt| | j|dS )Nz;A parameter-less dependency must have a callable dependency)rW   rY   rX   )callablerY   r[   )rW   rX   rR   rR   rS   get_parameterless_sub_dependantx   s   r_   )rZ   rU   rY   .rZ   c           	      C   s|   d }|pg }t | tjr| j}|| t |tr*g }t |ttfr$|}t||d}t	||||| j
d}|r<|j| |S )N)security_schemescopes)rX   callrZ   rU   	use_cache)rI   r   Securityra   extendr1   r2   r4   r/   get_dependantrc   security_requirementsappend)	rW   rY   rX   rZ   rU   security_requirementdependency_scopes
use_scopessub_dependantrR   rR   rS   r[      s,   

r[   Fskip_repeatsvisited	dependantrn   ro   c             
   C   s   |d u rg }| | j t| j | j | j | j | j | j	 | j
| jd}| jD ];}|r9|j|v r9q/t|||d}|j|j |j|j |j|j |j|j |j|j |j	|j	 q/|S )N)path_paramsquery_paramsheader_paramscookie_paramsbody_paramssecurity_schemesrc   rX   rm   )rh   	cache_keyr.   rq   r   rr   rs   rt   ru   rg   rc   rX   dependenciesget_flat_dependantre   )rp   rn   ro   flat_dependantrl   flat_subrR   rR   rS   ry      s4   

ry   c                 C   s$   t | dd}|j|j |j |j S )NT)rn   )ry   rq   rr   rs   rt   )rp   rz   rR   rR   rS   get_flat_params   s   r|   rb   c                    s<   t | }t| di   fdd|j D }t |}|S )N__globals__c              	      s,   g | ]}t j|j|j|jt|j d qS ))rZ   kinddefault
annotation)inspect	ParameterrZ   r~   r   get_typed_annotationr   .0paramglobalnsrR   rS   
<listcomp>   s    
z'get_typed_signature.<locals>.<listcomp>)r   	signaturegetattr
parametersvalues	Signature)rb   r   typed_paramstyped_signaturerR   r   rS   get_typed_signature   s   


	r   r   r   c                 C   s"   t | trt| } t| ||} | S N)rI   strr
   r   )r   r   rR   rR   rS   r      s   
r   c                 C   s6   t | }|j}|t jju rd S t| di }t||S )Nr}   )r   r   return_annotationr   emptyr   r   )rb   r   r   r   rR   rR   rS   get_typed_return_annotation   s   

r   T)rZ   rU   rc   rc   c                 C   s   t | }t|}|j}t||| ||d}| D ]T\}	}
|	|v }t|	|
j|
j|d\}}}|d ur@t|	|| |d}|j	
| qt|	||drS|d u sRJ d|	q|d usYJ t||drf|j
| qt||d q|S )N)rb   rZ   rX   rU   rc   )rV   r   valueis_path_paramr\   rV   type_annotationrp   z0Cannot specify multiple FastAPI annotations for param_fieldr   )rD   rp   )r6   r   r   r.   itemsanalyze_paramr   r   r]   rx   rh   !add_non_field_param_to_dependencyis_body_paramru   add_param_to_fields)rX   rb   rZ   rU   rc   path_param_namesendpoint_signaturesignature_paramsrp   rV   r   r   r   rW   r   rl   rR   rR   rS   rf      sR   
rf   r   c                 C   s|   t |tr
| |_dS t |tr| |_dS t |tr| |_dS t |tr(| |_dS t |t	r2| |_
dS t |tr<| |_dS d S )NT)r'   r>   request_param_namer@   websocket_param_namer=   http_connection_param_namer?   response_param_nameStarletteBackgroundTasksbackground_tasks_param_namer3   security_scopes_param_namer   rR   rR   rS   r   %  s&   





r   r   r   c                 C   s  d }d }t }t }|tjjur|}|}t|tu ryt|}|d }dd |dd  D }	dd |	D }
|
r9|
d }nd }t|trqt	||d}|j
tu s]|j
tu s]J d|jj d	| d
|tjjurm|riJ d||_
nt|_
nt|tjry|}t|tjr|d u sJ d| |d u sJ d| |}nt|tr|d u sJ d| |}tr||_|d ur|jd u rt|}||_t|ttttttfr|d u sJ d||d u sJ d|nD|d u r%|d u r%|tjjur|nt}|rtj|d}n't|st|rtj||d}nt |dstj!||d}ntj"||d}d }|d ur|rCt|tjsBJ d|jj d| nt|tj#rXt$|dd d u rXtj%j&|_'t(||| }|j)spt$|dd rp| *dd}n|j)pu| }||_)t+| ||j
||j
ttfv |d}|||fS )Nr   c                 S   s    g | ]}t |ttjfr|qS rR   )rI   r7   r   Dependsr   argrR   rR   rS   r   N  s    z!analyze_param.<locals>.<listcomp>   c                 S   s&   g | ]}t |tjtjtjfr|qS rR   )rI   r   ParamBodyr   r   rR   rR   rS   r   S  s    )rH   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 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_-)rZ   type_r   aliasrequiredrH   ),r   r   r   r   rC   rA   rB   rI   r7   r   r   r   r   	__class____name__r   r   r   r   rY   r   r'   r>   r@   r=   r?   r   r3   Pathr%   r&   Filer   r   Queryr   r   
ParamTypesqueryr   r   r   replacer5   )rV   r   r   r   rH   rW   r   use_annotationannotated_argsfastapi_annotationsfastapi_specific_annotationsfastapi_annotationdefault_valuerD   use_annotation_from_field_infor   rR   rR   rS   r   =  s   










	r   r   c                 C   sl   |rt | dsJ ddS t | drdS t| jtjtjfr$t| r$dS t| jtjs4J d| j ddS )N)rD   z1Path params must be of one of the supported typesFzParam: z) can only be a request body, using Body()T)	r"   rI   rH   r   r   Headerr#   r   rZ   r   rR   rR   rS   r     s*   
r   c                 C   s   | j }t|dd }|tjjkr|j|  d S |tjjkr%|j|  d S |tjj	kr3|j
|  d S |tjjksAJ d| j |j|  d S )Nr   z>non-body parameters must be in path, query, header or cookie: )rH   r   r   r   rX   rq   rh   r   rr   headerrs   cookierZ   rt   )rD   rp   rH   field_info_inrR   rR   rS   r     s   
r   c                 C   s8   t | r
t | S t | rdS t| dd }t |S )NF__call__)r   	isroutineiscoroutinefunctionisclassr   rb   dunder_callrR   rR   rS   is_coroutine_callable  s   



r   c                 C   $   t | rdS t| dd }t |S NTr   )r   isasyncgenfunctionr   r   rR   rR   rS   is_async_gen_callable     

r   c                 C   r   r   )r   isgeneratorfunctionr   r   rR   rR   rS   is_gen_callable  r   r   stack
sub_valuesc                    sL   t | rtt| di |}nt| rt| di |}||I d H S )NrR   )r   r-   r   r   r,   enter_async_context)rb   r   r   cmrR   rR   rS   solve_generator  s   r   )bodybackground_tasksresponsedependency_overrides_providerdependency_cacherequestr   r   r   r   r   async_exit_stackc                    s  i }g }	|d u rt  }|jd= d |_|pi }|jD ]}
ttdtf |
j|
_tttdtf tt	 f |
j
|
_
|
j}|
}|r\|jr\|
j}t|di ||}|
j}t|||
j|
jd}t| |||||||dI d H }|\}}}}}|| |r|	| q|
jr|
j
|v r||
j
 }n-t|st|rt|||dI d H }nt|r|d	i |I d H }nt|fi |I d H }|
jd ur|||
j< |
j
|vr|||
j
< qt|j| j\}}t|j| j\}}t|j| j\}}t|j| j \}}|| || || || |	|| | | 7 }	|j!r+t"|j!|dI d H \}}|| |	| |j#r4| ||j#< |j$rDt%| t&rD| ||j$< n|j'rSt%| t(rS| ||j'< |j)rd|d u r_t* }|||j)< |j+rm|||j+< |j,rzt-|jd||j,< ||	|||fS )
Nzcontent-length.dependency_overrides)rX   rb   rZ   rU   )r   rp   r   r   r   r   r   r   )rb   r   r   )required_paramsreceived_body)ra   rR   ).r?   headersstatus_coderx   r   r   r   rb   r   r   rw   r   r   getrX   rf   rZ   rU   solve_dependenciesupdatere   rc   r   r   r   r   r8   request_params_to_argsrq   rr   rs   rt   cookiesru   request_body_to_argsr   r   rI   r>   r   r@   r   r+   r   r   r3   )r   rp   r   r   r   r   r   r   r   errorsrl   rb   use_sub_dependantoriginal_calluse_pathsolved_resultr   
sub_errorsr   sub_dependency_cachesolvedpath_valuespath_errorsquery_valuesquery_errorsheader_valuesheader_errorscookie_valuescookie_errorsbody_valuesbody_errorsrR   rR   rS   r     s   


















r   r   received_paramsc                 C   s   i }g }| D ]u}t |rt|ttfr||jp|j}n||j}|j}t|t	j
s0J d|jj|jf}|d u rP|jrG|t|d nt|j||j< q|j|||d\}}	t|	tre||	 qt|	trvt|	dd}
||
 q|||j< q||fS )Nz"Params must be subclasses of ParamlocrR   )r   
loc_prefix)r#   rI   r;   r:   getlistr   r   r   rH   r   r   r   r   r   rh   r   r   rZ   validater   listr   re   )r   r  r   r   rD   r   rH   r  v_errors_
new_errorsrR   rR   rS   r     s8   


r   r   c              
      sf  i }g }| r/| d }|j }t|dd }t| dko| }|r%|j|i}| D ]}|r/d}nd|jf}d }	|d urct|rJt|trJ||j}	nz||j}	W n t	yb   |
t| Y q'w |	d u st|tjrq|	dkst|tjrt|rt|	dkr|jr|
t| nt|j||j< q't|tjrt|rt|	tr|	 I d H }	n^t|r
t|tjr
t|	r
t|	tsJ g  dtg ttttf f dd f fd	d
}
t 4 I d H }|	D ]	}||
|j qW d   I d H  n1 I d H sw   Y  t| d}	|j |	||d\}}t|t!r |"| q'|r)|
| q'|||j< q'||fS )Nr   embedr   )r   r    fnrE   c                    s   |  I d H }  | d S r   )rh   )r  resultresultsrR   rS   
process_fn  s   z(request_body_to_args.<locals>.process_fn)rD   r   r  )#rH   r   lenr   r$   rI   r9   r	  r   AttributeErrorrh   r   r   rJ   r   r   r   rZ   r   r    r<   readr!   r*   r(   r   r   r   anyiocreate_task_group
start_soonr)   r
  r  re   )r   r   r   r   rD   rH   r  field_alias_omittedr  r   r  tg	sub_valuer  r  rR   r  rS   r     s   






(r   c              	   C   sF  t | }|js	d S |jd }|j}t|dd }dd |jD }t|dkr-|s-t| |S |jD ]	}t|jdd q0d| }t|j|d}	td	d
 |jD }
|	dd}|
sZd |d< tdd
 |jD rht	j
}n'tdd
 |jD rvt	j}nt	j}dd |jD }tt|dkr|d |d< td|	|
d|di |d}t| |S )Nr   r  c                 S   s   h | ]}|j qS rR   )rZ   r   rR   rR   rS   	<setcomp>  s    z!get_body_field.<locals>.<setcomp>r   TBody_)fields
model_namec                 s   s    | ]}|j rd V  qdS )TN)r   r   frR   rR   rS   	<genexpr>  s    z!get_body_field.<locals>.<genexpr>r   )r   r   r   c                 s       | ]
}t |jtjV  qd S r   )rI   rH   r   r   r#  rR   rR   rS   r%        c                 s   r&  r   )rI   rH   r   rJ   r#  rR   rR   rS   r%    r'  c                 S   s"   g | ]}t |jtjr|jjqS rR   )rI   rH   r   r   
media_typer#  rR   rR   rS   r   #  s    z"get_body_field.<locals>.<listcomp>r(  )rZ   r   r   r   rH   rR   )ry   ru   rH   r   r  rT   setattrr   anyr   r   rJ   r   setr5   )rp   rZ   rz   first_paramrH   r  body_param_names_setr   r"  	BodyModelr   BodyFieldInfo_kwargsBodyFieldInfobody_param_media_typesfinal_fieldrR   rR   rS   get_body_field  sR   

r3  )vr   
contextlibr   r   r   r   typingr   r   r   r	   r
   r   r   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'   r(   r)   r*   fastapi.backgroundr+   fastapi.concurrencyr,   r-   fastapi.dependencies.modelsr.   r/   fastapi.loggerr0   fastapi.security.baser1   fastapi.security.oauth2r2   r3   $fastapi.security.open_id_connect_urlr4   fastapi.utilsr5   r6   pydantic.fieldsr7   starlette.backgroundr   starlette.concurrencyr8   starlette.datastructuresr9   r:   r;   r<   starlette.requestsr=   r>   starlette.responsesr?   starlette.websocketsr@   typing_extensionsrA   rB   rC   rQ   rO   rT   r   r   r]   r_   r[   CacheKeyboolry   r|   r   r   r   r   rf   r   r   r   r   r   r   r   r   r   r   r   r3  rR   rR   rR   rS   <module>   sT   <d





  

#



4

 	



"	


 
#
R