o
    n~bz'                     @   s  d dl Z d dlmZmZmZmZmZmZ d dlm	Z	 ddl
mZmZ ddlmZ dZG dd	 d	e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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-eZ#G d.d/ d/eZ$G d0d1 d1eZ%G d2d3 d3e%Z&G d4d5 d5e%Z'G d6d7 d7e%Z(G d8d9 d9e%Z)G d:d; d;e%Z*G d<d= d=e%Z+G d>d? d?e%Z,G d@dA dAe%Z-G dBdC dCe%Z.G dDdE dEe%Z/G dFdG dGe%Z0G dHdI dIe%Z1G dJdK dKe%Z2G dLdM dMe%Z3G dNdO dOe%Z4G dPdQ dQe%Z5G dRdS dSe%Z6G dTdU dUe%Z7G dVdW dWe%Z8G dXdY dYe%Z9G dZd[ d[e%Z:G d\d] d]e%Z;G d^d_ d_e%Z<G d`da dae%Z=G dbdc dce%Z>G ddde dee%Z?G dfdg dgeZ@G dhdi die@ZAG djdk dke@ZBG dldm dme@ZCG dndo doe@ZDG dpdq dqe@ZEG drds dse@ZFG dtdu due@ZGG dvdw dwe@ZHG dxdy dye@ZIG dzd{ d{e@ZJdS )|    N)AnyDictIterableListOptionalSet)URL   )LooseHeadersStrOrURL)Response)9HTTPException	HTTPErrorHTTPRedirectionHTTPSuccessfulHTTPOkHTTPCreatedHTTPAcceptedHTTPNonAuthoritativeInformationHTTPNoContentHTTPResetContentHTTPPartialContentHTTPMultipleChoicesHTTPMovedPermanently	HTTPFoundHTTPSeeOtherHTTPNotModifiedHTTPUseProxyHTTPTemporaryRedirectHTTPPermanentRedirectHTTPClientErrorHTTPBadRequestHTTPUnauthorizedHTTPPaymentRequiredHTTPForbiddenHTTPNotFoundHTTPMethodNotAllowedHTTPNotAcceptableHTTPProxyAuthenticationRequiredHTTPRequestTimeoutHTTPConflictHTTPGoneHTTPLengthRequiredHTTPPreconditionFailedHTTPRequestEntityTooLargeHTTPRequestURITooLongHTTPUnsupportedMediaTypeHTTPRequestRangeNotSatisfiableHTTPExpectationFailedHTTPMisdirectedRequestHTTPUnprocessableEntityHTTPFailedDependencyHTTPUpgradeRequiredHTTPPreconditionRequiredHTTPTooManyRequestsHTTPRequestHeaderFieldsTooLargeHTTPUnavailableForLegalReasonsHTTPServerErrorHTTPInternalServerErrorHTTPNotImplementedHTTPBadGatewayHTTPServiceUnavailableHTTPGatewayTimeoutHTTPVersionNotSupportedHTTPVariantAlsoNegotiatesHTTPInsufficientStorageHTTPNotExtended!HTTPNetworkAuthenticationRequiredc                   @   sf   e Zd ZdZdZdZdddddddee dee de	d	ee d
ee ddfddZ
defddZdS )r   FTNheadersreasonbodytextcontent_typerH   rI   rJ   rK   rL   returnc             	   C   sl   |d ur
t dt tj| | j|||||d t| | j | jd u r2| j	s4| j
 d| j | _d S d S d S )Nz3body argument is deprecated for http web exceptions)statusrH   rI   rJ   rK   rL   z: )warningswarnDeprecationWarningr   __init__status_code	ExceptionrI   rJ   
empty_bodyrN   rK   )selfrH   rI   rJ   rK   rL    rW   A/usr/local/lib/python3.10/dist-packages/aiohttp/web_exceptions.pyrR   U   s$   		zHTTPException.__init__c                 C   s   dS )NTrW   )rV   rW   rW   rX   __bool__p   s   zHTTPException.__bool__)__name__
__module____qualname__rS   rU   Z__http_exception__r   r
   strr   rR   boolrY   rW   rW   rW   rX   r   K   s.    
r   c                   @      e Zd ZdZdS )r   zABase class for exceptions with status codes in the 400s and 500s.NrZ   r[   r\   __doc__rW   rW   rW   rX   r   t       r   c                   @   r_   )r   z8Base class for exceptions with status codes in the 300s.Nr`   rW   rW   rW   rX   r   x   rb   r   c                   @   r_   )r   z8Base class for exceptions with status codes in the 200s.Nr`   rW   rW   rW   rX   r   |   rb   r   c                   @   r_   )r      NrZ   r[   r\   rS   rW   rW   rW   rX   r      rb   r   c                   @   r_   )r      Nrd   rW   rW   rW   rX   r      rb   r   c                   @   r_   )r      Nrd   rW   rW   rW   rX   r      rb   r   c                   @   r_   )r      Nrd   rW   rW   rW   rX   r      rb   r   c                   @      e Zd ZdZdZdS )r      TNrZ   r[   r\   rS   rU   rW   rW   rW   rX   r          r   c                   @   rh   )r      TNrj   rW   rW   rW   rX   r      rk   r   c                   @   r_   )r      Nrd   rW   rW   rW   rX   r      rb   r   c                       sX   e Zd Zdddddddedee dee dedee dee d	df fd
dZ  Z	S )	_HTTPMoveNrG   locationrH   rI   rJ   rK   rL   rM   c                   s>   |st dt j|||||d tt|| jd< || _d S )Nz.HTTP redirects need a location to redirect to.rG   ZLocation)
ValueErrorsuperrR   r]   r   rH   ro   )rV   ro   rH   rI   rJ   rK   rL   	__class__rW   rX   rR      s   

z_HTTPMove.__init__)
rZ   r[   r\   r   r   r
   r]   r   rR   __classcell__rW   rW   rr   rX   rn      s*    	rn   c                   @   r_   )r   i,  Nrd   rW   rW   rW   rX   r      rb   r   c                   @   r_   )r   i-  Nrd   rW   rW   rW   rX   r      rb   r   c                   @   r_   )r   i.  Nrd   rW   rW   rW   rX   r      rb   r   c                   @   r_   )r   i/  Nrd   rW   rW   rW   rX   r      rb   r   c                   @   rh   )r   i0  TNrj   rW   rW   rW   rX   r      s    r   c                   @   r_   )r   i1  Nrd   rW   rW   rW   rX   r      s    r   c                   @   r_   )r   i3  Nrd   rW   rW   rW   rX   r      rb   r   c                   @   r_   )r   i4  Nrd   rW   rW   rW   rX   r      rb   r   c                   @      e Zd ZdS )r    NrZ   r[   r\   rW   rW   rW   rX   r           r    c                   @   r_   )r!   i  Nrd   rW   rW   rW   rX   r!      rb   r!   c                   @   r_   )r"   i  Nrd   rW   rW   rW   rX   r"      rb   r"   c                   @   r_   )r#   i  Nrd   rW   rW   rW   rX   r#      rb   r#   c                   @   r_   )r$   i  Nrd   rW   rW   rW   rX   r$      rb   r$   c                   @   r_   )r%   i  Nrd   rW   rW   rW   rX   r%      rb   r%   c                       sd   e Zd ZdZdddddddedee dee dee ded	ee d
ee ddf fddZ	  Z
S )r&   i  NrG   methodallowed_methodsrH   rI   rJ   rK   rL   rM   c          	         sF   d t|}t j|||||d || jd< t|| _| | _d S )N,rG   ZAllow)	joinsortedrq   rR   rH   setry   upperrx   )	rV   rx   ry   rH   rI   rJ   rK   rL   Zallowrr   rW   rX   rR      s   

zHTTPMethodNotAllowed.__init__)rZ   r[   r\   rS   r]   r   r   r
   r   rR   rt   rW   rW   rr   rX   r&      s0    	
r&   c                   @   r_   )r'   i  Nrd   rW   rW   rW   rX   r'     rb   r'   c                   @   r_   )r(   i  Nrd   rW   rW   rW   rX   r(     rb   r(   c                   @   r_   )r)   i  Nrd   rW   rW   rW   rX   r)      rb   r)   c                   @   r_   )r*   i  Nrd   rW   rW   rW   rX   r*   $  rb   r*   c                   @   r_   )r+   i  Nrd   rW   rW   rW   rX   r+   (  rb   r+   c                   @   r_   )r,   i  Nrd   rW   rW   rW   rX   r,   ,  rb   r,   c                   @   r_   )r-   i  Nrd   rW   rW   rW   rX   r-   0  rb   r-   c                       s2   e Zd ZdZdedededdf fddZ  ZS )	r.   i  max_sizeactual_sizekwargsrM   Nc                    s*   | dd|| t jdi | d S )NrK   z:Maximum request body size {} exceeded, actual body size {}rW   )
setdefaultformatrq   rR   )rV   r   r   r   rr   rW   rX   rR   7  s   z"HTTPRequestEntityTooLarge.__init__)rZ   r[   r\   rS   floatr   rR   rt   rW   rW   rr   rX   r.   4  s    &r.   c                   @   r_   )r/   i  Nrd   rW   rW   rW   rX   r/   @  rb   r/   c                   @   r_   )r0   i  Nrd   rW   rW   rW   rX   r0   D  rb   r0   c                   @   r_   )r1   i  Nrd   rW   rW   rW   rX   r1   H  rb   r1   c                   @   r_   )r2   i  Nrd   rW   rW   rW   rX   r2   L  rb   r2   c                   @   r_   )r3   i  Nrd   rW   rW   rW   rX   r3   P  rb   r3   c                   @   r_   )r4   i  Nrd   rW   rW   rW   rX   r4   T  rb   r4   c                   @   r_   )r5   i  Nrd   rW   rW   rW   rX   r5   X  rb   r5   c                   @   r_   )r6   i  Nrd   rW   rW   rW   rX   r6   \  rb   r6   c                   @   r_   )r7   i  Nrd   rW   rW   rW   rX   r7   `  rb   r7   c                   @   r_   )r8   i  Nrd   rW   rW   rW   rX   r8   d  rb   r8   c                   @   r_   )r9   i  Nrd   rW   rW   rW   rX   r9   h  rb   r9   c                       s\   e Zd ZdZdddddddedee dee dedee d	ee d
df fddZ  Z	S )r:   i  NrG   linkrH   rI   rJ   rK   rL   rM   c                   s.   t  j|||||d d| | jd< || _d S )NrG   z<%s>; rel="blocked-by"Link)rq   rR   rH   r   )rV   r   rH   rI   rJ   rK   rL   rr   rW   rX   rR   o  s   

z'HTTPUnavailableForLegalReasons.__init__)
rZ   r[   r\   rS   r]   r   r
   r   rR   rt   rW   rW   rr   rX   r:   l  s,    	r:   c                   @   ru   )r;   Nrv   rW   rW   rW   rX   r;     rw   r;   c                   @   r_   )r<   i  Nrd   rW   rW   rW   rX   r<     rb   r<   c                   @   r_   )r=   i  Nrd   rW   rW   rW   rX   r=     rb   r=   c                   @   r_   )r>   i  Nrd   rW   rW   rW   rX   r>     rb   r>   c                   @   r_   )r?   i  Nrd   rW   rW   rW   rX   r?     rb   r?   c                   @   r_   )r@   i  Nrd   rW   rW   rW   rX   r@     rb   r@   c                   @   r_   )rA   i  Nrd   rW   rW   rW   rX   rA     rb   rA   c                   @   r_   )rB   i  Nrd   rW   rW   rW   rX   rB     rb   rB   c                   @   r_   )rC   i  Nrd   rW   rW   rW   rX   rC     rb   rC   c                   @   r_   )rD   i  Nrd   rW   rW   rW   rX   rD     rb   rD   c                   @   r_   )rE   i  Nrd   rW   rW   rW   rX   rE     rb   rE   )KrO   typingr   r   r   r   r   r   Zyarlr   Ztypedefsr
   r   Zweb_responser   __all__rT   r   r   r   r   r   r   r   r   r   r   r   rn   r   r   r   r   r   r   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   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rW   rW   rW   rX   <module>   s     B)		$