| Current Path : /snap/core20/current/lib/python3.8/wsgiref/__pycache__/ |
| Current File : //snap/core20/current/lib/python3.8/wsgiref/__pycache__/headers.cpython-38.pyc |
U
�ʦi� � @ sF d Z ddlZe�d�Ze�d�Ze�d�Zddd�ZG d d
� d
�ZdS )z�Manage HTTP Response Headers
Much of this module is red-handedly pilfered from email.message in the stdlib,
so portions are Copyright (C) 2001,2002 Python Software Foundation, and were
written by Barry Warsaw.
� Nz[ \(\)<>@,;:\\"/\[\]\?=]z[\x00-\x1F\x7F]z[\x00-\x08\x0A-\x1F\x7F]� c C sX |dk rPt |�dkrP|s"t�|�rB|�dd��dd�}d| |f S d| |f S n| S dS ) z~Convenience function to format and return a key=value pair.
This will quote the value if needed or if quote is true.
Nr �\z\\�"z\"z%s="%s"z%s=%s)�len� tspecials�search�replace)Zparam�valueZquote� r
�%/usr/lib/python3.8/wsgiref/headers.py�_formatparam s r c @ s� e Zd ZdZd%dd�Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zd&dd�Zdd� Z
dd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� ZdS )'�Headersz,Manage a collection of HTTP response headersNc C sX |d k r|ng }t |�tk r$td��|| _|D ]$\}}| j|dd� | j|dd� q.d S )Nz+Headers must be a list of name/value tuplesT��nameF)�type�list� TypeError�_headers�_convert_string_type)�selfZheaders�k�vr
r
r �__init__$ s zHeaders.__init__c C sD t |�tkr.|rtnt}|�|�r*td��|S td�t|����dS )zConvert/check value type.z)Control characters not allowed in headersz1Header names/values must be of type str (got {0})N) r �str�_name_disallowed_re�_value_disallowed_rer �
ValueError�AssertionError�format�repr)r r r Zregexr
r
r r . s
�zHeaders._convert_string_typec C s
t | j�S )z9Return the total number of headers, including duplicates.)r r �r r
r
r �__len__8 s zHeaders.__len__c C s. | |= | j �| j|dd�| j|dd�f� dS )zSet the value of a header.Tr FN)r �appendr )r r �valr
r
r �__setitem__<