File: //lib/python3.12/wsgiref/__pycache__/headers.cpython-312.pyc
�
�Цi� � � � d Z ddlZ ej d� Z ej d� Z ej d� Zd d�Z G d� d� Zy)
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 � � |�Vt |� dkD rH|st j |� r*|j dd� j dd� }| �d|�d�S | �d|��S | S )z~Convenience function to format and return a key=value pair.
This will quote the value if needed or if quote is true.
r �\z\\�"z\"z="�=)�len� tspecials�search�replace)�param�value�quotes �&/usr/lib/python3.12/wsgiref/headers.py�_formatparamr s\ � �
��S��Z�!�^��I�$�$�U�+��M�M�$��/�7�7��U�C�E� %�u�-�-�#�U�+�+��� c �z � e Zd ZdZdd�Zd� Zd� Zd� Zd� Zd� Z d � Z
d
� Zdd�Zd� Z
d
� Zd� Zd� Zd� Zd� Zd� Zd� Zy)�Headersz,Manage a collection of HTTP response headersNc � � |�|ng }t |� t urt d� �|| _ |D ]+ \ }}| j |d�� | j |d�� �- y )Nz+Headers must be a list of name/value tuplesT��nameF)�type�list� TypeError�_headers�_convert_string_type)�self�headers�k�vs r �__init__zHeaders.__init__$ si � �$�0�'�b����=��$��I�J�J���
���
9���1��)�)�!�$�)�7��)�)�!�%�)�8�
9r c �� � t |� t u r,|rt nt }|j |� rt d� �|S t
dj t |� � � �)zConvert/check value type.z)Control characters not allowed in headersz1Header names/values must be of type str (got {0})) r �str�_name_disallowed_re�_value_disallowed_rer �
ValueError�AssertionError�format�repr)r r r �regexs r r zHeaders._convert_string_type. sV � ���;�#��,0�(�6J�E��|�|�E�"� �!L�M�M��L�� %�%+�V�D��K�%8�:� :r c �, � t | j � S )z9Return the total number of headers, including duplicates.)r r �r s r �__len__zHeaders.__len__8 s � ��4�=�=�!�!r c � � | |= | j j | j |d�� | j |d�� f� y)zSet the value of a header.Tr FN)r �appendr )r r �vals r �__setitem__zHeaders.__setitem__<