a
    g	gn                     @   s4  U 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
 d dlmZ d dlmZ d dlmZmZ ddlmZmZmZ eZeed	< G d
d deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZ G dd dZ!G dd de!Z"dS )     N)Enum)AnyCallableDictListOptionalSequenceUnion)Example)	FieldInfo)	Annotated
deprecated   )PYDANTIC_V2PYDANTIC_VERSION	Undefined_Unsetc                   @   s   e Zd ZdZdZdZdZdS )
ParamTypesqueryheaderpathcookieN)__name__
__module____qualname__r   r   r   r    r   r   Q/var/www/html/llm_bihealth/app/venv/lib/python3.9/site-packages/fastapi/params.pyr      s   r   c                "       s  e Zd ZU eed< efeddedddddddddddddeeeeededddddeee	g ef df e
e e
e eedf eedf eedf e
e e
e e
e e
e e
e e
e e
e e
e e
e ee
e edf eedf eedf eedf eedf eedf eedf e
ee  ee
e edf e
eeef  eeeedf eeeeef df ed fdd	Zed
ddZ  ZS )Paramin_NTdefault_factory
annotationaliasalias_priorityvalidation_aliasserialization_aliastitledescriptiongtgeltle
min_length
max_lengthpatternregexdiscriminatorstrictmultiple_ofallow_inf_nan
max_digitsdecimal_placesexamplesexampleopenapi_examplesr   include_in_schemajson_schema_extraEDeprecated in FastAPI 0.100.0 and Pydantic v2, use `pattern` instead.nDeprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, although still supported. Use examples instead.defaultr    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r9   r:   extrac          "         s  |t urtjdtdd || _|| _|| _tf |||||	|
||||||||||d|}|d urj||d< |d urtjdtdd |p|} tdk r|| _	n||d< t
r||||||| d	 |p||d
< n|p||d< |jf i |  dd | D }!t jf i |! d S )N<`example` has been deprecated, please use `examples` instead   category
stacklevelr>   r    r"   r&   r'   r(   r)   r*   r+   r,   r-   r0   r2   	allow_nanr4   r5   r6   z9`regex` has been deprecated, please use `pattern` instead2.7.0r   r!   r#   r$   r%   r1   r:   r.   r/   c                 S   s   i | ]\}}|t ur||qS r   r   .0kvr   r   r   
<dictcomp>       z"Param.__init__.<locals>.<dictcomp>)r   warningswarnDeprecationWarningr7   r9   r8   dictr   r   r   updateitemssuper__init__)"selfr>   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r9   r:   r?   kwargscurrent_json_schema_extra
use_kwargs	__class__r   r   rW      sp    /
zParam.__init__returnc                 C   s   | j j d| j dS N()r]   r   r>   rX   r   r   r   __repr__   s    zParam.__repr__)r   r   r   r   __annotations__r   r   r   r	   r   r   strintfloatr   r   boolr   r   r
   rW   re   __classcell__r   r   r\   r   r      s   










kr   c                "       st  e Zd ZejZd
eddedddddddddddddeeeeededddddeee	g ef df e
e e
e eedf eedf eedf e
e e
e e
e e
e e
e e
e e
e e
e e
e ee
e edf eedf eedf eedf eedf eedf eedf e
ee  ee
e edf e
eeef  eeeedf eeeeef df ed fdd	Z  ZS )Path.NTr   r;   r<   r=   c                    sj   |du sJ d| j | _ t jf |||||||||	|
|||||||||||||||||||d| d S )N.z+Path parameters cannot have a default valuer>   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r   r7   r6   r8   r9   r:   )r   rV   rW   rX   r>   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r9   r:   r?   r\   r   r   rW      sF    /zPath.__init__).)r   r   r   r   r   r   r   r   r	   r   r   rg   rh   ri   r   r   rj   r   r   r
   rW   rk   r   r   r\   r   rl      s    









rl   c                "       sv  e Zd ZejZefeddedddddddddddddeeeeededddddee	e
g ef df ee ee e	edf e	edf e	edf ee ee ee ee ee ee ee ee ee eee edf e	edf e	edf e	edf e	edf e	edf e	edf eee  eee edf eeeef  e	eeedf ee	eeef df ed fddZ  ZS )	QueryNTr   r;   r<   r=   c                    sR   t  jf |||||||||	|
|||||||||||||||||||d| d S Nrm   rV   rW   rn   r\   r   r   rW      sB    /zQuery.__init__)r   r   r   r   r   r   r   r   r   r	   r   r   rg   rh   ri   r   r   rj   r   r   r
   rW   rk   r   r   r\   r   ro      s   









ro   c                #       sz  e Zd ZejZefeddeddddddddddddddeeeeededddddee	e
g ef df ee ee e	edf e	edf e	edf eee ee ee ee ee ee ee ee ee eee edf e	edf e	edf e	edf e	edf e	edf e	edf eee  eee edf eeeef  e	eeedf ee	eeef df ed fddZ  ZS )	HeaderNT)r    r!   r"   r#   r$   r%   convert_underscoresr&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r9   r:   r;   r<   )r>   r    r!   r"   r#   r$   r%   rs   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r9   r:   r?   c                     sX   || _ t jf ||||||||	|
||||||||||||||||||||d| d S rp   )rs   rV   rW   ) rX   r>   r    r!   r"   r#   r$   r%   rs   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r9   r:   r?   r\   r   r   rW   4  sD    0zHeader.__init__)r   r   r   r   r   r   r   r   r   r	   r   r   rg   rh   rj   ri   r   r   r   r   r
   rW   rk   r   r   r\   r   rr   1  s   









rr   c                "       sv  e Zd ZejZefeddedddddddddddddeeeeededddddee	e
g ef df ee ee e	edf e	edf e	edf ee ee ee ee ee ee ee ee ee eee edf e	edf e	edf e	edf e	edf e	edf e	edf eee  eee edf eeeef  e	eeedf ee	eeef df ed fddZ  ZS )	CookieNTr   r;   r<   r=   c                    sR   t  jf |||||||||	|
|||||||||||||||||||d| d S rp   rq   rn   r\   r   r   rW     sB    /zCookie.__init__)r   r   r   r   r   r   r   r   r   r	   r   r   rg   rh   ri   r   r   rj   r   r   r
   rW   rk   r   r   r\   r   rt     s   









rt   c                $       s  e Zd Zefeddddedddddddddddddeeeeededddddeeeg ef df ee e	e
ee
 eedf ee
df ee
df ee
 ee
 ee ee ee ee ee ee ee
 eee
 edf ee
df ee	df eedf ee	df eedf eedf eee  eee edf eee
ef  eee
e	df e	eee
ef df ed  fd	d
Ze
dddZ  ZS )BodyNFzapplication/jsonT)r    r!   embed
media_typer"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r9   r:   r;   r<   ) r>   r    r!   rv   rw   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r9   r:   r?   c          $         s  || _ || _|tur$tjdtdd || _|| _|| _t	f ||||
||||||||||||d| }!|d urv||!d< |d urtjdtdd |p| }"t
dk r|| _n||!d< tr|!||||	||"d	 |p||!d
< n|p||!d< |!jf i |" dd |! D }#t jf i |# d S )Nr@   rA   rB   rE   r6   z:`regex` has been depreacated, please use `pattern` insteadrG   r   rH   r.   r/   c                 S   s   i | ]\}}|t ur||qS r   rI   rJ   r   r   r   rN   H  rO   z!Body.__init__.<locals>.<dictcomp>)rv   rw   r   rP   rQ   rR   r7   r9   r8   rS   r   r   r   rT   rU   rV   rW   )$rX   r>   r    r!   rv   rw   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r9   r:   r?   rY   rZ   r[   r\   r   r   rW     st    1
zBody.__init__r^   c                 C   s   | j j d| j dS r`   rc   rd   r   r   r   re   L  s    zBody.__repr__)r   r   r   r   r   r   r	   r   r   rj   rg   rh   ri   r   r   r   r   r
   rW   re   rk   r   r   r\   r   ru     s   









pru   c                #       st  e Zd Zefedddedddddddddddddeeeeededddddeeeg ef df ee e	ee	 ee
df ee	df ee	df ee	 ee	 ee ee ee ee ee
 ee
 ee	 eee	 edf ee	df eedf eedf eedf ee
df ee
df eee  eee edf eee	ef  eee	edf eeee	ef df ed fdd	Z  ZS )
FormNz!application/x-www-form-urlencodedTr    r!   rw   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r9   r:   r;   r<   r>   r    r!   rw   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r9   r:   r?   c              "      sV   t  jf |||d||||||	|
||||||||||||||||||||d| d S )NT)r>   r    r!   rv   rw   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r   r7   r6   r8   r9   r:   rq    rX   r>   r    r!   rw   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r9   r:   r?   r\   r   r   rW   Q  sF    0 zForm.__init__r   r   r   r   r   r   r	   r   r   rg   rh   ri   r   r   rj   r   r   r
   rW   rk   r   r   r\   r   rx   P  s   









rx   c                #       st  e Zd Zefedddedddddddddddddeeeeededddddeeeg ef df ee e	ee	 ee
df ee	df ee	df ee	 ee	 ee ee ee ee ee
 ee
 ee	 eee	 edf ee	df eedf eedf eedf ee
df ee
df eee  eee edf eee	ef  eee	edf eeee	ef df ed fdd	Z  ZS )
FileNzmultipart/form-dataTry   r;   r<   rz   c              !      sT   t  jf |||||||||	|
||||||||||||||||||||d| d S )N)r>   r    r!   rw   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r   r7   r6   r8   r9   r:   rq   r{   r\   r   r   rW     sD    0zFile.__init__r|   r   r   r\   r   r}     s   









r}   c                   @   s>   e Zd Zdddeedef  edddZedd	d
Z	dS )DependsNT)	use_cache.
dependencyr   c                C   s   || _ || _d S )Nr   )rX   r   r   r   r   r   rW     s    zDepends.__init__r^   c                 C   s<   t | jdt| jj}| jr dnd}| jj d| | dS )Nr    z, use_cache=Falsera   rb   )getattrr   typer   r   r]   )rX   attrcacher   r   r   re      s    zDepends.__repr__)N)
r   r   r   r   r   r   rj   rW   rg   re   r   r   r   r   r~     s    r~   c                       sD   e Zd Zddddeedef  eee  ed fddZ	  Z
S )	SecurityNT)scopesr   .)r   r   r   c                   s   t  j||d |pg | _d S )Nr   )rV   rW   r   )rX   r   r   r   r\   r   r   rW     s    zSecurity.__init__)N)r   r   r   r   r   r   r   rg   rj   rW   rk   r   r   r\   r   r     s    
r   )#rP   enumr   typingr   r   r   r   r   r   r	   Zfastapi.openapi.modelsr
   Zpydantic.fieldsr   Ztyping_extensionsr   r   _compatr   r   r   r   rf   r   r   rl   ro   rr   rt   ru   rx   r}   r~   r   r   r   r   r   <module>   s$   
$rVTVTuUT