File: //usr/lib/python3/dist-packages/mercurial/hgweb/__pycache__/wsgiheaders.cpython-310.pyc
o
�]Lb� � @ sD d Z ddlmZmZ ddlZe�d�Zd
dd�ZG dd � d e�Z dS )a0 This was forked from cpython's wsgiref.headers module to work on bytes.
Header from old file showing copyright is below.
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.
� )�absolute_import�print_functionNs [ ()<>@,;:\\"/\[\]?=]� c C sR |dur't |�dkr'|st�|�r!|�dd��dd�}d| |f S d| |f 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.
Nr � \s \\� "z\"s %s="%s"s %s=%s)�len� tspecials�search�replace)�param�value�quote� r �=/usr/lib/python3/dist-packages/mercurial/hgweb/wsgiheaders.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 sR |d ur|ng }t |�turtd��|| _ |D ]\}}| �|� | �|� qd S )Ns+ Headers must be a list of name/value tuples)�type�list� TypeError�_headers�_convert_string_type)�self�headers�k�vr r r �__init__$ s
�zHeaders.__init__c C s t |�tu r|S tdt|� ��)zConvert/check value type.z2Header names/values must be of type bytes (got %s))r �bytes�AssertionError�repr)r r r 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__7 s
zHeaders.__len__c C s&