d2G d Z ddlZ ej d Z ej d Z ej d Zd dZ G d d ZdS )zManage 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 |ht | dk rU|st | r2| dd dd }| d|dS | 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. Nr \z\\"z\"z="=)len tspecialssearchreplace)paramvaluequotes 6/opt/alt/python311/lib64/python3.11/wsgiref/headers.py_formatparamr s SZZ!^^ ,I$$U++ ,MM$//77UCCE %uuu--#eeUU++ c | e Zd ZdZddZd Zd Zd Zd Zd Z d Z d ZddZd Z d Zd Zd Zd Zd Zd Zd ZdS )Headersz,Manage a collection of HTTP response headersNc ||ng }t | t urt d || _ |D ]3\ }}| |d | |d 4d S )Nz+Headers must be a list of name/value tuplesTnameF)typelist TypeError_headers_convert_string_type)selfheaderskvs r __init__zHeaders.__init__$ s $0''b==$$IJJJ 9 9 91))!$)777))!%)8888 9 9r c t | t u r6|rt nt }| | rt d |S t d 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 ValueErrorAssertionErrorformatrepr)r r r regexs r r zHeaders._convert_string_type. sw ;;#,0J((6JE||E"" N !LMMML %%+VDKK%8%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 | |d | |d f dS )zSet the value of a header.Tr FN)r appendr )r r vals r __setitem__zHeaders.__setitem__<