o
    +if                     @   sb  d dl Z d dl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 d dlZddlmZ ddl mZ ddlmZmZ erQddlmZ ddlmZ dd	lmZmZ nd Z Z ZZd
ZG dd de jZeee ef Zej dddddG dd deZ!ej dddddG dd deZ"de#de#dedede!f
ddZ$de#dedede!fddZ%de#dedede!fddZ&dddde#ded e	e# d!e'dede!fd"d#Z(de#dedede!fd$d%Z)de#dedede!fd&d'Z*de#dedede!fd(d)Z+de#dedede!fd*d+Z,de#dee dede!fd,d-Z-d.e#dedede"fd/d0Z.eegef Z/G d1d2 d2e
e Z0dS )3    N)TYPE_CHECKINGAnyCallableDictIteratorListOptionalSequenceTypeUnionoverload   )hdrs)AbstractView)HandlerPathLike)Request)StreamResponse)AbstractRouteUrlDispatcher)AbstractRouteDefRouteDef	StaticDefRouteTableDefheadoptionsgetpostpatchputdeleterouteviewstaticc                   @   s(   e Zd Zejdedee fddZdS )r   routerreturnc                 C      d S N )selfr$   r(   r(   M/var/www/html/corbot_env/lib/python3.10/site-packages/aiohttp/web_routedef.pyregister2      zAbstractRouteDef.registerN)	__name__
__module____qualname__abcabstractmethodr   r   r   r+   r(   r(   r(   r*   r   1   s    r   TF)auto_attribsfrozenreprslotsc                   @   sZ   e Zd ZU eed< eed< eed< eeef ed< defddZde	de
e fd	d
ZdS )r   methodpathhandlerkwargsr%   c                 C   sP   g }t | j D ]\}}|d| d| q	dj| j| j| jd|dS )N, =z8<RouteDef {method} {path} -> {handler.__name__!r}{info}> )r6   r7   r8   info)	sortedr9   itemsappendformatr6   r7   r8   joinr)   r=   namevaluer(   r(   r*   __repr__A   s   zRouteDef.__repr__r$   c                 C   sZ   | j tjv rt|d| j   }|| j| jfi | jgS |j| j | j| jfi | jgS )Nadd_)	r6   r   METH_ALLgetattrlowerr7   r8   r9   	add_route)r)   r$   regr(   r(   r*   r+   I   s
   zRouteDef.registerN)r-   r.   r/   str__annotations___HandlerTyper   r   rF   r   r   r   r+   r(   r(   r(   r*   r   :   s   
 r   c                   @   sR   e Zd ZU eed< eed< eeef ed< defddZde	de
e fdd	Zd
S )r   prefixr7   r9   r%   c                 C   sL   g }t | j D ]\}}|d| d| q	dj| j| jd|dS )Nr:   r;   z$<StaticDef {prefix} -> {path}{info}>r<   )rP   r7   r=   )r>   r9   r?   r@   rA   rP   r7   rB   rC   r(   r(   r*   rF   Y   s   zStaticDef.__repr__r$   c                 C   s6   |j | j| jfi | j}| di }t| S )Nroutes)
add_staticrP   r7   r9   get_infor   listvalues)r)   r$   resourcerQ   r(   r(   r*   r+   a   s   zStaticDef.registerN)r-   r.   r/   rM   rN   r   r   r   rF   r   r   r   r+   r(   r(   r(   r*   r   S   s   
 r   r6   r7   r8   r9   r%   c                 K   s   t | |||S r'   )r   )r6   r7   r8   r9   r(   r(   r*   r!   g   s   r!   c                 K      t tj| |fi |S r'   r!   r   	METH_HEADr7   r8   r9   r(   r(   r*   r   k      r   c                 K   rW   r'   r!   r   METH_OPTIONSrZ   r(   r(   r*   r   o   r[   r   rD   
allow_headrD   r_   c                K   s   t tj| |f||d|S )Nr^   r!   r   METH_GET)r7   r8   rD   r_   r9   r(   r(   r*   r   s   s   r   c                 K   rW   r'   r!   r   	METH_POSTrZ   r(   r(   r*   r      r[   r   c                 K   rW   r'   r!   r   METH_PUTrZ   r(   r(   r*   r      r[   r   c                 K   rW   r'   r!   r   
METH_PATCHrZ   r(   r(   r*   r      r[   r   c                 K   rW   r'   r!   r   METH_DELETErZ   r(   r(   r*   r       r[   r    c                 K   rW   r'   r!   r   METH_ANYrZ   r(   r(   r*   r"      r[   r"   rP   c                 K   s   t | ||S r'   )r   )rP   r7   r9   r(   r(   r*   r#      s   r#   c                   @   sv  e Zd ZdZd,ddZdefddZedede	fd	d
Z
ededee	 fdd
Z
dd
 Z
dee	 fddZdefddZdedefddZdedededefddZdededefddZdededefddZdededefddZdededefdd Zdededefd!d"Zdededefd#d$Zdededefd%d&Zdededefd'd(Zd)edededdfd*d+ZdS )-r   zRoute definition tabler%   Nc                 C   s
   g | _ d S r'   _itemsr)   r(   r(   r*   __init__      
zRouteTableDef.__init__c                 C   s   dt | j dS )Nz<RouteTableDef count=>lenrm   rn   r(   r(   r*   rF      s   zRouteTableDef.__repr__indexc                 C   r&   r'   r(   r)   rt   r(   r(   r*   __getitem__   r,   zRouteTableDef.__getitem__c                 C   r&   r'   r(   ru   r(   r(   r*   rv      r,   c                 C   s
   | j | S r'   rl   ru   r(   r(   r*   rv      rp   c                 C   
   t | jS r'   )iterrm   rn   r(   r(   r*   __iter__   rp   zRouteTableDef.__iter__c                 C   rw   r'   rr   rn   r(   r(   r*   __len__   rp   zRouteTableDef.__len__itemc                 C   s
   || j v S r'   rl   )r)   r{   r(   r(   r*   __contains__   rp   zRouteTableDef.__contains__r6   r7   r9   c                    s    dt dt f fdd}|S )Nr8   r%   c                    s   j t|   | S r'   )rm   r@   r   )r8   r9   r6   r7   r)   r(   r*   inner   s   z"RouteTableDef.route.<locals>.inner)rO   )r)   r6   r7   r9   r~   r(   r}   r*   r!      s   zRouteTableDef.routec                 K      | j tj|fi |S r'   rX   r)   r7   r9   r(   r(   r*   r      r[   zRouteTableDef.headc                 K   r   r'   r`   r   r(   r(   r*   r      r[   zRouteTableDef.getc                 K   r   r'   rb   r   r(   r(   r*   r      r[   zRouteTableDef.postc                 K   r   r'   rd   r   r(   r(   r*   r      r[   zRouteTableDef.putc                 K   r   r'   rf   r   r(   r(   r*   r      r[   zRouteTableDef.patchc                 K   r   r'   rh   r   r(   r(   r*   r       r[   zRouteTableDef.deletec                 K   r   r'   r\   r   r(   r(   r*   r      r[   zRouteTableDef.optionsc                 K   r   r'   rj   r   r(   r(   r*   r"      r[   zRouteTableDef.viewrP   c                 K   s   | j t||| d S r'   )rm   r@   r   )r)   rP   r7   r9   r(   r(   r*   r#      s   zRouteTableDef.static)r%   N) r-   r.   r/   __doc__ro   rM   rF   r   intr   rv   slicer   r   ry   rz   objectboolr|   r   _Decor!   r   r   r   r   r   r    r   r"   r   r#   r(   r(   r(   r*   r      s,    
r   )1r0   ostypingr   r   r   r   r   r   r   r	   r
   r   r   attrr<   r   r   typedefsr   r   web_requestr   web_responser   web_urldispatcherr   r   __all__ABCr   rO   sr   r   rM   r!   r   r   r   r   r   r   r   r    r"   r#   r   r   r(   r(   r(   r*   <module>   sZ    4
