o
    Rh                     @   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(   V/home/air/sanwanet/backup_V2/venv/lib/python3.10/site-packages/aiohttp/web_routedef.pyregister2   s   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}> )r5   r6   r7   info)	sortedr8   itemsappendformatr5   r6   r7   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_)	r5   r   METH_ALLgetattrlowerr6   r7   r8   	add_route)r)   r$   regr(   r(   r*   r+   I   s
   zRouteDef.registerN)r,   r-   r.   str__annotations___HandlerTyper   r   rE   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   prefixr6   r8   r%   c                 C   sL   g }t | j D ]\}}|d| d| q	dj| j| jd|dS )Nr9   r:   z$<StaticDef {prefix} -> {path}{info}>r;   )rO   r6   r<   )r=   r8   r>   r?   r@   rO   r6   rA   rB   r(   r(   r*   rE   Y   s   zStaticDef.__repr__r$   c                 C   s6   |j | j| jfi | j}| di }t| S )Nroutes)
add_staticrO   r6   r8   get_infor   listvalues)r)   r$   resourcerP   r(   r(   r*   r+   a   s   zStaticDef.registerN)r,   r-   r.   rL   rM   r   r   r   rE   r   r   r   r+   r(   r(   r(   r*   r   S   s   
 r   r5   r6   r7   r8   r%   c                 K   s   t | |||S r'   )r   )r5   r6   r7   r8   r(   r(   r*   r!   g   s   r!   c                 K      t tj| |fi |S r'   r!   r   	METH_HEADr6   r7   r8   r(   r(   r*   r   k      r   c                 K   rV   r'   r!   r   METH_OPTIONSrY   r(   r(   r*   r   o   rZ   r   rC   
allow_headrC   r^   c                K   s   t tj| |f||d|S )Nr]   r!   r   METH_GET)r6   r7   rC   r^   r8   r(   r(   r*   r   s   s   r   c                 K   rV   r'   r!   r   	METH_POSTrY   r(   r(   r*   r      rZ   r   c                 K   rV   r'   r!   r   METH_PUTrY   r(   r(   r*   r      rZ   r   c                 K   rV   r'   r!   r   
METH_PATCHrY   r(   r(   r*   r      rZ   r   c                 K   rV   r'   r!   r   METH_DELETErY   r(   r(   r*   r       rZ   r    c                 K   rV   r'   r!   r   METH_ANYrY   r(   r(   r*   r"      rZ   r"   rO   c                 K   s   t | ||S r'   )r   )rO   r6   r8   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=>lenrl   rm   r(   r(   r*   rE      s   zRouteTableDef.__repr__indexc                 C   r&   r'   r(   r)   rs   r(   r(   r*   __getitem__      zRouteTableDef.__getitem__c                 C   r&   r'   r(   rt   r(   r(   r*   ru      rv   c                 C   s
   | j | S r'   rk   rt   r(   r(   r*   ru      ro   c                 C   
   t | jS r'   )iterrl   rm   r(   r(   r*   __iter__   ro   zRouteTableDef.__iter__c                 C   rw   r'   rq   rm   r(   r(   r*   __len__   ro   zRouteTableDef.__len__itemc                 C   s
   || j v S r'   rk   )r)   r{   r(   r(   r*   __contains__   ro   zRouteTableDef.__contains__r5   r6   r8   c                    s    dt dt f fdd}|S )Nr7   r%   c                    s   j t|   | S r'   )rl   r?   r   )r7   r8   r5   r6   r)   r(   r*   inner   s   z"RouteTableDef.route.<locals>.inner)rN   )r)   r5   r6   r8   r~   r(   r}   r*   r!      s   zRouteTableDef.routec                 K      | j tj|fi |S r'   rW   r)   r6   r8   r(   r(   r*   r      rZ   zRouteTableDef.headc                 K   r   r'   r_   r   r(   r(   r*   r      rZ   zRouteTableDef.getc                 K   r   r'   ra   r   r(   r(   r*   r      rZ   zRouteTableDef.postc                 K   r   r'   rc   r   r(   r(   r*   r      rZ   zRouteTableDef.putc                 K   r   r'   re   r   r(   r(   r*   r      rZ   zRouteTableDef.patchc                 K   r   r'   rg   r   r(   r(   r*   r       rZ   zRouteTableDef.deletec                 K   r   r'   r[   r   r(   r(   r*   r      rZ   zRouteTableDef.optionsc                 K   r   r'   ri   r   r(   r(   r*   r"      rZ   zRouteTableDef.viewrO   c                 K   s   | j t||| d S r'   )rl   r?   r   )r)   rO   r6   r8   r(   r(   r*   r#      s   zRouteTableDef.static)r%   N) r,   r-   r.   __doc__rn   rL   rE   r   intr   ru   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   )1r/   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   rN   sr   r   rL   r!   r   r   r   r   r   r   r   r    r"   r#   r   r   r(   r(   r(   r*   <module>   sZ    4
