OwlCyberSecurity - MANAGER
Edit File: multipartparser.cpython-39.pyc
a kH�f�j � @ s0 d Z ddlZddlZddlZddlZddlmZ ddlmZm Z m Z mZ ddlm Z mZmZ ddlmZ ddlmZ ddlmZ dd lmZ d ZG dd� de�ZG d d� de�ZdZdZdZeeeg�Z G dd� d�Z!G dd� d�Z"G dd� d�Z#G dd� d�Z$G dd� d�Z%dd� Z&dd� Z'G d d!� d!�Z(dS )"z� Multi-part parsing for file uploads. Exposes one class, ``MultiPartParser``, which feeds chunks of uploaded data to file upload handlers for processing. � N)�settings)�RequestDataTooBig�SuspiciousMultipartForm�TooManyFieldsSent�TooManyFilesSent)�SkipFile�StopFutureHandlers� StopUpload)�MultiValueDict)� force_str)�parse_header_parameters)�_lazy_re_compile)�MultiPartParser�MultiPartParserError�InputStreamExhaustedc @ s e Zd ZdS )r N)�__name__� __module__�__qualname__� r r �]/home/gouroczh/virtualenv/test/3.9/lib/python3.9/site-packages/django/http/multipartparser.pyr s r c @ s e Zd ZdZdS )r z5 No more reads are allowed from this device. N)r r r �__doc__r r r r r s r �raw�file�fieldc @ sN e Zd ZdZed�Zddd�Zdd� Zdd � Zd d� Z dd � Z e Zdd� ZdS )r z� An RFC 7578 multipart/form-data parser. ``MultiValueDict.parse()`` reads the input stream in ``chunk_size`` chunks and returns a tuple of ``(MultiValueDict(POST), MultiValueDict(FILES))``. z[ -~]{0,200}[!-~]Nc C s" |� dd�}|�d�s"td| ��z|�d� W n" tyR tdt|� ��Y n0 t|�\}}|� d�}|rz| j�|�s�tdt|� ��zt |� d d ��} W n t tfy� d } Y n0 | d k r�td| ��|�d�| _|| _ dd � |D �} tdg| �| _|| _|�ptj| _| | _|| _dS )a� Initialize the MultiPartParser object. :META: The standard ``META`` dictionary in Django request objects. :input_data: The raw post data, as a file-like object. :upload_handlers: A list of UploadHandler instances that perform operations on the uploaded data. :encoding: The encoding with which to treat the incoming data. ZCONTENT_TYPE� z multipart/zInvalid Content-Type: %s�asciiz/Invalid non-ASCII Content-Type in multipart: %s�boundaryz!Invalid boundary in multipart: %sZCONTENT_LENGTHr zInvalid content length: %rc S s g | ]}|j r|j �qS r )� chunk_size)�.0�xr r r � <listcomp>k � z,MultiPartParser.__init__.<locals>.<listcomp>i���N)�get� startswithr �encode�UnicodeEncodeErrorr r �boundary_re� fullmatch�int� ValueError� TypeError� _boundary�_input_data�min�_chunk_size�_metar �DEFAULT_CHARSET� _encoding�_content_length�_upload_handlers)�selfZMETAZ input_dataZupload_handlers�encoding�content_type�_�optsr �content_lengthZpossible_sizesr r r �__init__8 s>