HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib/python3.10/site-packages/starlette/__pycache__/requests.cpython-310.pyc
o

�h�-�@svddlmZddlZddlZddlmZddlZddlm	Z	m
Z
ddlmZm
Z
mZmZmZmZddlmZddlmZmZmZddlmZmZmZmZejrbdd	lmZdd
l m!Z!ddl"m#Z#n&zzdd	lmZWne$yzdd	l%mZYnwWne$y�dZYnwhd�Z&d dd�Z'Gdd�de(�Z)Gdd�dej*e+ej,f�Z-d!dd�Z.d"dd�Z/Gdd�de-�Z0dS)#�)�annotationsN)�cookies)�AwaitableOrContextManager� AwaitableOrContextManagerWrapper)�URL�Address�FormData�Headers�QueryParams�State)�
HTTPException)�
FormParser�MultiPartException�MultiPartParser)�Message�Receive�Scope�Send)�parse_options_header)�	Starlette)�Router>�
user-agent�
cache-control�accept-encoding�accept-language�accept�
cookie_string�str�return�dict[str, str]cCsdi}|�d�D](}d|vr|�dd�\}}nd|}}|��|��}}|s(|r/t�|�||<q|S)a
    This function parses a ``Cookie`` HTTP header into a dict of key/value pairs.

    It attempts to mimic browser cookie parsing behavior: browsers and web servers
    frequently disregard the spec (RFC 6265) when setting and reading cookies,
    so we attempt to suit the common scenarios here.

    This function has been adapted from Django 3.1.0.
    Note: we are explicitly _NOT_ using `SimpleCookie.load` because it is based
    on an outdated spec and will fail on lots of input we want to support
    �;�=��)�split�strip�http_cookies�_unquote)r�cookie_dict�chunk�key�val�r,�E/usr/local/CyberCP/lib/python3.10/site-packages/starlette/requests.py�
cookie_parser's
�r.c@seZdZdS)�ClientDisconnectN)�__name__�
__module__�__qualname__r,r,r,r-r/Bsr/c@s�eZdZdZd9d:d	d
�Zd;dd�Zd<dd�Zd=dd�Zej	Z	ej
Z
ed>dd��Zed?dd��Z
ed?dd��Zed@dd��ZedAd!d"��ZedBd$d%��ZedCd'd(��ZedDd*d+��ZedBd,d-��Zed>d.d/��Zed>d0d1��ZedEd3d4��ZdFd7d8�ZdS)G�HTTPConnectionz�
    A base class for incoming HTTP connections, that is used to provide
    any functionality that is common to both `Request` and `WebSocket`.
    N�scoper�receive�Receive | Noner�NonecCs|ddvsJ�||_dS)N�type)�http�	websocket�r4)�selfr4r5r,r,r-�__init__Ls
zHTTPConnection.__init__r*r�
typing.AnycCs
|j|S�Nr;)r<r*r,r,r-�__getitem__P�
zHTTPConnection.__getitem__�typing.Iterator[str]cC�
t|j�Sr?)�iterr4�r<r,r,r-�__iter__SrAzHTTPConnection.__iter__�intcCrCr?)�lenr4rEr,r,r-�__len__VrAzHTTPConnection.__len__cCs
|jdS)N�appr;rEr,r,r-rJ_s
zHTTPConnection.apprcC�t|d�st|jd�|_|jS)N�_urlr;)�hasattrrr4rLrEr,r,r-�urlc�
zHTTPConnection.urlcCsht|d�s1t|j�}|�d|�dd��}|}|�d�s|d7}||d<d|d<||d<t|d	�|_|jS)
N�	_base_url�
app_root_path�	root_pathr#�/�path��query_stringr;)rM�dictr4�get�endswithrrP)r<�base_url_scoperQrTr,r,r-�base_urlis


zHTTPConnection.base_urlr	cCrK)N�_headersr;)rMr	r4r\rEr,r,r-�headerszrOzHTTPConnection.headersr
cCs t|d�s
t|jd�|_|jS)N�
_query_paramsrV)rMr
r4r^rEr,r,r-�query_params�s
zHTTPConnection.query_params�dict[str, typing.Any]cCs|j�di�S)N�path_params)r4rXrEr,r,r-ra�szHTTPConnection.path_paramsrcCs2t|d�si}|j�d�}|rt|�}||_|jS)N�_cookies�cookie)rMr]rXr.rb)r<r�
cookie_headerr,r,r-r�s
zHTTPConnection.cookies�Address | NonecCs |j�d�}|durt|�SdS)N�client)r4rXr)r<�	host_portr,r,r-rf�szHTTPConnection.clientcC�d|jvs	Jd��|jdS)N�sessionz=SessionMiddleware must be installed to access request.sessionr;rEr,r,r-ri��
zHTTPConnection.sessioncCrh)N�authzAAuthenticationMiddleware must be installed to access request.authr;rEr,r,r-rk�rjzHTTPConnection.authcCrh)N�userzAAuthenticationMiddleware must be installed to access request.userr;rEr,r,r-rl�rjzHTTPConnection.userrcCs.t|d�s|j�di�t|jd�|_|jS)N�_state�state)rMr4�
setdefaultrrmrEr,r,r-rn�s
zHTTPConnection.state�nameracKsH|j�d�p|j�d�}|durtd��|j|fi|��}|j|jd�S)N�routerrJzVThe `url_for` method can only be used inside a Starlette application or with a router.)r[)r4rX�RuntimeError�url_path_for�make_absolute_urlr[)r<rpra�url_path_provider�url_pathr,r,r-�url_for�s
zHTTPConnection.url_forr?)r4rr5r6rr7)r*rrr>)rrB)rrG�rr>)rr)rr	)rr
)rr`)rr)rre)rr)rprrar>rr)r0r1r2�__doc__r=r@rFrI�object�__eq__�__hash__�propertyrJrNr[r]r_rarrfrirkrlrnrwr,r,r,r-r3FsB



	r3�typing.NoReturnc��
�td��)Nz+Receive channel has not been made available�rrr,r,r,r-�
empty_receive���r��messagerc�r)Nz(Send channel has not been made availabler�)r�r,r,r-�
empty_send�r�r�cs�eZdZUded<eefd1�fd	d
�
Zed2d
d��Zed3dd��Z	d4dd�Z
d5dd�Zd6dd�Zdddd�d7d#d$�Z
dddd�d8d&d'�Zd9d)d*�Zd:d,d-�Zd;d/d0�Z�ZS)<�RequestzFormData | None�_formr4rr5r�sendrcs>t��|�|ddksJ�||_||_d|_d|_d|_dS)Nr8r9F)�superr=�_receive�_send�_stream_consumed�_is_disconnectedr�)r<r4r5r���	__class__r,r-r=�s
zRequest.__init__rrcCst�t|jd�S)N�method)�typing�castrr4rEr,r,r-r��szRequest.methodcCs|jSr?)r�rEr,r,r-r5�szRequest.receive�"typing.AsyncGenerator[bytes, None]cCs��t|d�r|jVdVdS|jrtd��|jsJ|��IdH}|ddkr;|�dd�}|�dd�s5d	|_|r:|Vn|dd
krGd	|_t��|jrdVdS)N�_bodyrUzStream consumedr8zhttp.request�body�	more_bodyFT�http.disconnect)rMr�r�rrr�rXr�r/)r<r�r�r,r,r-�stream�s*�
��
zRequest.stream�bytesc�sD�t|d�sg}|��2z3dHW}|�|�q6d�|�|_|jS)Nr�rU)rMr��append�joinr�)r<�chunksr)r,r,r-r��s�
�zRequest.bodyr>c�s,�t|d�s|��IdH}t�|�|_|jS)N�_json)rMr��json�loadsr�)r<r�r,r,r-r��s
�
zRequest.jsoni�i��	max_files�
max_fields�
max_part_sizer��int | floatr�r�rGrc

�s��|jdurltdusJd��|j�d�}t|�\}}|dkrQzt|j|��|||d�}|��IdH|_W|jStyP}zd|jvrJt	d|j
d��|�d}~ww|dkrht|j|���}	|	��IdH|_|jSt�|_|jS)	NzEThe `python-multipart` library must be installed to use form parsing.zContent-Typesmultipart/form-datar�rJi�)�status_code�details!application/x-www-form-urlencoded)
r�rr]rXrr��parserr4rr�r
r)
r<r�r�r��content_type_header�content_type�_�multipart_parser�exc�form_parserr,r,r-�	_get_form�s<�

��
�
���zRequest._get_form�#AwaitableOrContextManager[FormData]cCst|j|||d��S)Nr�)rr�)r<r�r�r�r,r,r-�forms�zRequest.formr7c�s$�|jdur|j��IdHdSdSr?)r��closerEr,r,r-r�*s�
�z
Request.close�boolc�sd�|js/i}t���}|��|��IdH}Wd�n1s wY|�d�dkr/d|_|jS)Nr8r�T)r��anyio�CancelScope�cancelr�rX)r<r��csr,r,r-�is_disconnected.s�
�zRequest.is_disconnectedrTc�sn�d|j�di�vr5g}tD]}|j�|�D]}|�|�d�|�d�f�qq|�d||d��IdHdSdS)Nzhttp.response.push�
extensionszlatin-1)r8rTr])r4rX�SERVER_PUSH_HEADERS_TO_COPYr]�getlistr��encoder�)r<rT�raw_headersrp�valuer,r,r-�send_push_promise<s���zRequest.send_push_promise)r4rr5rr�r)rr)rr)rr�)rr�rx)r�r�r�r�r�rGrr)r�r�r�r�r�rGrr�)rr7)rr�)rTrrr7)r0r1r2�__annotations__r�r�r=r}r�r5r�r�r�r�r�r�r�r��
__classcell__r,r,r�r-r��s*
	


	�&�

r�)rrrr)rr~)r�rrr~)1�
__future__rr�r�r9rr&r��starlette._utilsrr�starlette.datastructuresrrrr	r
r�starlette.exceptionsr�starlette.formparsersr
rr�starlette.typesrrrr�
TYPE_CHECKING�python_multipart.multipartr�starlette.applicationsr�starlette.routingr�ModuleNotFoundError�multipart.multipartr�r.�	Exceptionr/�Mappingr�Anyr3r�r�r�r,r,r,r-�<module>s> ���
	
x