File: //usr/lib/python3/dist-packages/django/core/handlers/__pycache__/wsgi.cpython-310.pyc
o
3�a� � @ s� d dl mZ d dlmZ d dlmZ d dlmZ d dlm Z m
Z
mZ d dlm
Z
d dlmZ d dlmZ d d lmZ ed
�ZG dd� d�ZG d
d� de �ZG dd� dej�Zdd� Zdd� Zdd� Zdd� ZdS )� )�BytesIO)�settings)�signals)�base)�HttpRequest� QueryDict�parse_cookie)�set_script_prefix)�repercent_broken_unicode)�cached_property)�_lazy_re_compiles /+c @ s8 e Zd ZdZddd�Zd
dd�Zd
dd �Zd
d
d�ZdS )�
LimitedStreamzBWrap another stream to disallow reading it past a number of bytes.� c C s || _ || _d| _|| _d S �N� )�stream� remaining�buffer�buf_size)�selfr �limitr � r �;/usr/lib/python3/dist-packages/django/core/handlers/wsgi.py�__init__ s
zLimitedStream.__init__Nc C sF |d u s || j kr| j }|dkrdS | j�|�}| j t|�8 _ |S )Nr r )r r �read�len�r �size�resultr r r �
_read_limited s zLimitedStream._read_limitedc C st |d u r| j | �� }d| _ |S |t| j �k r(| j d |� }| j |d � | _ |S | j | �|t| j � � }d| _ |S r )r r r r r r r r s ��zLimitedStream.readc C s� d| j vr;|d u st| j �|k r;|r| �|t| j � �}n| �� }|s$n| j |7 _ d| j vr;|d u st| j �|k st| j �}|rH|�|�}n|�� }|�� | _ |S )N�
)r r r r �readliner )r r �chunk�sio�liner r r r! , s
�
zLimitedStream.readline)r �N)�__name__�
__module__�__qualname__�__doc__r r r r! r r r r r
s
r
c @ sZ e Zd Zdd� Zdd� Zedd� �Zdd� Zd d
� Zedd� �Z e
d
d� �Ze
ee�ZdS )�WSGIRequestc C s� t |�}t|�p d}|| _|| _d|�d�|�ddd�f | _|| _|| jd<