U
    &%el                     @   s0  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 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	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   M/var/www/html/Darija-Ai-API/env/lib/python3.8/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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.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r   r8   r9   extrac          "         s   || _ |tk	rtjdtdd || _|| _|| _tf |||||	|
||||||||||d|}|d k	rp||d< |d k	rtjdtdd |p|} t	r|
|||||| d |p||d< n|p||d	< |j
f |  d
d | D }!t jf |! d S )N<`example` has been deprecated, please use `examples` instead   category
stacklevelr=   r   r!   r%   r&   r'   r(   r)   r*   r+   r,   r/   r1   	allow_nanr3   r4   r5   z9`regex` has been deprecated, please use `pattern` insteadr    r"   r#   r$   r0   r9   r-   r.   c                 S   s   i | ]\}}|t k	r||qS r   r   .0kvr   r   r   
<dictcomp>|   s       z"Param.__init__.<locals>.<dictcomp>)r   r   warningswarnDeprecationWarningr6   r8   r7   dictr   updateitemssuper__init__)"selfr=   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   r   r8   r9   r>   kwargscurrent_json_schema_extra
use_kwargs	__class__r   r   rT      sl    /
zParam.__init__returnc                 C   s   | j j d| j dS N()rZ   r   r=   rU   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
   rT   rb   __classcell__r   r   rY   r   r      s   










hr   c                "       sl  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eeef df ed fdd	Z  ZS )Path.NTr   r:   r;   r<   c                    sj   |dkst 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.   r/   r0   r1   r2   r3   r4   r   r6   r5   r7   r8   r9   )AssertionErrorr   rS   rT   rU   r=   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   r   r8   r9   r>   rY   r   r   rT      sF    /zPath.__init__).)r   r   r   r   r   r   r   r   r	   r   r   rd   re   rf   r   r   rg   r   r   r
   rT   rh   r   r   rY   r   ri      s    









ri   c                "       sn  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	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 Nrj   rS   rT   rl   rY   r   r   rT      sB    /zQuery.__init__)r   r   r   r   r   r   r   r   r   r	   r   r   rd   re   rf   r   r   rg   r   r   r
   rT   rh   r   r   rY   r   rm      s   









rm   c                #       sr  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	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.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r   r8   r9   r:   r;   )r=   r   r    r!   r"   r#   r$   rq   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r   r8   r9   r>   c                     sX   || _ t jf ||||||||	|
||||||||||||||||||||d| d S rn   )rq   rS   rT   ) rU   r=   r   r    r!   r"   r#   r$   rq   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r   r8   r9   r>   rY   r   r   rT   1  sD    0zHeader.__init__)r   r   r   r   r   r   r   r   r   r	   r   r   rd   re   rg   rf   r   r   r   r   r
   rT   rh   r   r   rY   r   rp   .  s   









rp   c                "       sn  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	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 rn   ro   rl   rY   r   r   rT     sB    /zCookie.__init__)r   r   r   r   r   r   r   r   r   r	   r   r   rd   re   rf   r   r   rg   r   r   r
   rT   rh   r   r   rY   r   rr     s   









rr   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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.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r   r8   r9   r:   r;   ) r=   r   r    rt   ru   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r   r8   r9   r>   c          $         s  || _ || _|| _|tk	r*tjdtdd || _|| _|| _	t
f ||||
||||||||||||d| }!|d k	r|||!d< |d k	rtjdtdd |p| }"tr|!||||	||"d |p||!d< n|p||!d	< |!jf |" d
d |! D }#t jf |# d S )Nr?   r@   rA   rD   r5   z:`regex` has been depreacated, please use `pattern` insteadrF   r-   r.   c                 S   s   i | ]\}}|t k	r||qS r   rG   rH   r   r   r   rL   B  s       z!Body.__init__.<locals>.<dictcomp>)rt   ru   r   r   rM   rN   rO   r6   r8   r7   rP   r   rQ   rR   rS   rT   )$rU   r=   r   r    rt   ru   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r   r8   r9   r>   rV   rW   rX   rY   r   r   rT     sp    1
zBody.__init__r[   c                 C   s   | j j d| j dS r]   r`   ra   r   r   r   rb   F  s    zBody.__repr__)r   r   r   r   r   r   r	   r   r   rg   rd   re   rf   r   r   r   r   r
   rT   rb   rh   r   r   rY   r   rs     s   









mrs   c                #       sl  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ee	ef df ed fdd	Z  ZS )
FormNz!application/x-www-form-urlencodedTr   r    ru   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r   r8   r9   r:   r;   r=   r   r    ru   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r   r8   r9   r>   c              "      sV   t  jf |||d||||||	|
||||||||||||||||||||d| d S )NT)r=   r   r    rt   ru   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r   r6   r5   r7   r8   r9   ro    rU   r=   r   r    ru   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r   r8   r9   r>   rY   r   r   rT   K  sF    0 zForm.__init__r   r   r   r   r   r   r	   r   r   rd   re   rf   r   r   rg   r   r   r
   rT   rh   r   r   rY   r   rv   J  s   









rv   c                #       sl  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ee	ef df ed fdd	Z  ZS )
FileNzmultipart/form-dataTrw   r:   r;   rx   c              !      sT   t  jf |||||||||	|
||||||||||||||||||||d| d S )N)r=   r   r    ru   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r   r6   r5   r7   r8   r9   ro   ry   rY   r   r   rT     sD    0zFile.__init__rz   r   r   rY   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~   )rU   r   r}   r   r   r   rT     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=Falser^   r_   )getattrr   typer   r}   rZ   )rU   attrcacher   r   r   rb     s    zDepends.__repr__)N)
r   r   r   r   r   r   rg   rT   rd   rb   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~   )rS   rT   r   )rU   r   r   r}   rY   r   r   rT     s    zSecurity.__init__)N)r   r   r   r   r   r   r   rd   rg   rT   rh   r   r   rY   r   r      s    
r   )"rM   enumr   typingr   r   r   r   r   r   r	   Zfastapi.openapi.modelsr
   Zpydantic.fieldsr   Ztyping_extensionsr   r   Z_compatr   r   r   rc   r   r   ri   rm   rp   rr   rs   rv   r{   r|   r   r   r   r   r   <module>   s&    $oVTVTrUT