B
    ind3                 @   s  d dl Z d dlmZ d dlmZmZmZmZmZ d dl	m
Z
mZ d dlmZm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eZG dd dZG dd deZdS )    N)Enum)AnyCallableListOptionalSequence)	FieldInfo	Undefined)	Annotated
deprecatedc               @   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   2/tmp/pip-unpacked-wheel-x7mu4my2/fastapi/params.pyr   	   s   r   c                   s   e Zd ZU eed< efdddddddddddedddeee ee 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 eed fddZed	d
dZ  ZS )Paramin_NT)aliastitledescriptiongtgeltle
min_length
max_lengthregexexamplesexampler   include_in_schemaznDeprecated 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$   extrac               sj   || _ |tk	rtjdtdd || _|| _|}|r<||d< t jf |||||||||	|
|d| d S )Nz=`example` has been depreacated, please use `examples` instead   )category
stacklevelr"   )r%   r   r   r   r   r   r   r   r   r    r!   )	r   r	   warningswarnDeprecationWarningr#   r$   super__init__)selfr%   r   r   r   r   r   r   r   r   r    r!   r"   r#   r   r$   r&   extra_kwargs)	__class__r   r   r.      s0    zParam.__init__)returnc             C   s   | j j d| j dS )N())r1   r   r%   )r/   r   r   r   __repr__H   s    zParam.__repr__)r   r   r   r   __annotations__r	   r   r   strfloatintr   r
   r   boolr.   r5   __classcell__r   r   )r1   r   r      s$   
hr   c                   s   e Zd ZejZd	dddddddddddedddeee	 ee	 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 eed fddZ  ZS )
Path.NT)r   r   r   r   r   r   r   r   r    r!   r"   r#   r   r$   znDeprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, although still supported. Use examples instead.)r%   r   r   r   r   r   r   r   r   r    r!   r"   r#   r   r$   r&   c               sN   |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$   )AssertionErrorr   r-   r.   )r/   r%   r   r   r   r   r   r   r   r   r    r!   r"   r#   r   r$   r&   )r1   r   r   r.   O   s&    zPath.__init__).)r   r   r   r   r   r   r	   r   r   r7   r8   r9   r   r
   r   r:   r.   r;   r   r   )r1   r   r<   L   s"   hr<   c                   s   e Zd ZejZefdddddddddddedddeee	 ee	 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 eed fddZ  ZS )QueryNT)r   r   r   r   r   r   r   r   r    r!   r"   r#   r   r$   znDeprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, although still supported. Use examples instead.)r%   r   r   r   r   r   r   r   r   r    r!   r"   r#   r   r$   r&   c               s6   t  jf |||||||||	|
|||||d| d S )N)r%   r   r   r   r   r   r   r   r   r    r!   r   r#   r"   r$   )r-   r.   )r/   r%   r   r   r   r   r   r   r   r   r    r!   r"   r#   r   r$   r&   )r1   r   r   r.      s"    zQuery.__init__)r   r   r   r   r   r   r	   r   r   r7   r8   r9   r   r
   r   r:   r.   r;   r   r   )r1   r   r>      s"   hr>   c                   s   e Zd ZejZefddddddddddddedddeee	 e
ee	 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
 e
ed fddZ  ZS )HeaderNT)r   convert_underscoresr   r   r   r   r   r   r   r    r!   r"   r#   r   r$   znDeprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, although still supported. Use examples instead.)r%   r   r@   r   r   r   r   r   r   r   r    r!   r"   r#   r   r$   r&   c               s<   || _ t jf ||||||||	|
||||||d| d S )N)r%   r   r   r   r   r   r   r   r   r    r!   r   r#   r"   r$   )r@   r-   r.   )r/   r%   r   r@   r   r   r   r   r   r   r   r    r!   r"   r#   r   r$   r&   )r1   r   r   r.      s$    zHeader.__init__)r   r   r   r   r   r   r	   r   r   r7   r:   r8   r9   r   r
   r   r.   r;   r   r   )r1   r   r?      s$   jr?   c                   s   e Zd ZejZefdddddddddddedddeee	 ee	 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 eed fddZ  ZS )CookieNT)r   r   r   r   r   r   r   r   r    r!   r"   r#   r   r$   znDeprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, although still supported. Use examples instead.)r%   r   r   r   r   r   r   r   r   r    r!   r"   r#   r   r$   r&   c               s6   t  jf |||||||||	|
|||||d| d S )N)r%   r   r   r   r   r   r   r   r   r    r!   r   r#   r"   r$   )r-   r.   )r/   r%   r   r   r   r   r   r   r   r   r    r!   r"   r#   r   r$   r&   )r1   r   r   r.      s"    zCookie.__init__)r   r   r   r   r   r   r	   r   r   r7   r8   r9   r   r
   r   r:   r.   r;   r   r   )r1   r   rA      s"   hrA   c                   s   e Zd Zefdddddddddddddedeeeee ee 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d fddZed	d
dZ  ZS )BodyFzapplication/jsonN)embed
media_typer   r   r   r   r   r   r   r   r    r!   r"   r#   znDeprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, although still supported. Use examples instead.)r%   rC   rD   r   r   r   r   r   r   r   r   r    r!   r"   r#   r&   c               sn   || _ || _|tk	r$tjdtdd || _|}|d k	r@||d< t jf |||||||	|
|||d| d S )Nz=`example` has been depreacated, please use `examples` insteadr'   )r(   r)   r"   )r%   r   r   r   r   r   r   r   r   r    r!   )	rC   rD   r	   r*   r+   r,   r#   r-   r.   )r/   r%   rC   rD   r   r   r   r   r   r   r   r   r    r!   r"   r#   r&   r0   )r1   r   r   r.     s0    zBody.__init__)r2   c             C   s   | j j d| j dS )Nr3   r4   )r1   r   r%   )r/   r   r   r   r5   J  s    zBody.__repr__)r   r   r   r	   r   r:   r7   r   r8   r9   r   r
   r   r.   r5   r;   r   r   )r1   r   rB     s"   drB   c                   s   e Zd Zefddddddddddddedeeee ee 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d fddZ  ZS )Formz!application/x-www-form-urlencodedN)rD   r   r   r   r   r   r   r   r   r    r!   r"   r#   znDeprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, although still supported. Use examples instead.)r%   rD   r   r   r   r   r   r   r   r   r    r!   r"   r#   r&   c               s6   t  jf |d||||||||	|
||||d| d S )NT)r%   rC   rD   r   r   r   r   r   r   r   r   r    r!   r#   r"   )r-   r.   )r/   r%   rD   r   r   r   r   r   r   r   r   r    r!   r"   r#   r&   )r1   r   r   r.   O  s"    zForm.__init__)r   r   r   r	   r   r7   r   r8   r9   r   r
   r   r.   r;   r   r   )r1   r   rE   N  s   brE   c                   s   e Zd Zefddddddddddddedeeee ee 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d fddZ  ZS )Filezmultipart/form-dataN)rD   r   r   r   r   r   r   r   r   r    r!   r"   r#   znDeprecated in OpenAPI 3.1.0 that now uses JSON Schema 2020-12, although still supported. Use examples instead.)r%   rD   r   r   r   r   r   r   r   r   r    r!   r"   r#   r&   c               s4   t  jf |||||||||	|
||||d| d S )N)r%   rD   r   r   r   r   r   r   r   r   r    r!   r#   r"   )r-   r.   )r/   r%   rD   r   r   r   r   r   r   r   r   r    r!   r"   r#   r&   )r1   r   r   r.   }  s     zFile.__init__)r   r   r   r	   r   r7   r   r8   r9   r   r
   r   r.   r;   r   r   )r1   r   rF   |  s   brF   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.)
dependencyrH   c            C   s   || _ || _d S )N)rI   rH   )r/   rI   rH   r   r   r   r.     s    zDepends.__init__)r2   c             C   s<   t | jdt| jj}| jr dnd}| jj d| | dS )Nr    z, use_cache=Falser3   r4   )getattrrI   typer   rH   r1   )r/   attrcacher   r   r   r5     s    zDepends.__repr__)N)
r   r   r   r   r   r   r:   r.   r7   r5   r   r   r   r   rG     s   $rG   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)scopesrH   .)rI   rP   rH   c               s   t  j||d |pg | _d S )N)rI   rH   )r-   r.   rP   )r/   rI   rP   rH   )r1   r   r   r.     s    zSecurity.__init__)N)r   r   r   r   r   r   r   r7   r:   r.   r;   r   r   )r1   r   rO     s   rO   )r*   enumr   typingr   r   r   r   r   Zpydantic.fieldsr   r	   typing_extensionsr
   r   r   r   r<   r>   r?   rA   rB   rE   rF   rG   rO   r   r   r   r   <module>   s   <3131:.-