o
    3IhY                  	   @   s  d dl mZ d dlmZmZ d dlmZmZmZ d dl	m
Z
 d dlmZ eeZdZdZdZd	Ze e e d
e e e ZeeZee e e d
e e e ZedZe de e e ZdZdZeddedeeef fddZddededeeef fddZdS )    )	getLogger)compilesplit)DictListMapping)unquote)
deprecatedz[ \t]*zC[\x21\x23-\x27\x2a\x2b\x2d\x2e\x30-\x39\x41-\x5a\x5e-\x7a\x7c\x7e]+z+[\x21\x23-\x2b\x2d-\x3a\x3c-\x5b\x5d-\x7e]*z/[\x20\x21\x23-\x2b\x2d-\x3a\x3c-\x5b\x5d-\x7e]*=z[ \t]*,[ \t]*|zHeader format invalid! Header values in environment variables must be URL encoded per the OpenTelemetry Protocol Exporter specification: %szHeader format invalid! Header values in environment variables must be URL encoded per the OpenTelemetry Protocol Exporter specification or a comma separated list of name=value occurrences: %szBYou should use parse_env_headers. Deprecated since version 1.15.0.sreturnc                 C   s   t | S )N)parse_env_headers)r    r   U/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/opentelemetry/util/re.pyparse_headers>   s   r   Fliberalc                 C   s   i }t t| }|D ]`}|sq	t| }|s |s tt| q	|r@|j}| dd\}}t	| 
 }t	| }|||< q	t| }	|	sPtt| q	|	j}
|
 dd\}}| 
 }| }|||< q	|S )a  
    Parse ``s``, which is a ``str`` instance containing HTTP headers encoded
    for use in ENV variables per the W3C Baggage HTTP header format at
    https://www.w3.org/TR/baggage/#baggage-http-header-format, except that
    additional semi-colon delimited metadata is not supported.
    If ``liberal`` is True we try to parse ``s`` anyway to be more compatible
    with other languages SDKs that accept non URL-encoded headers by default.
    r
      )r   _DELIMITER_PATTERN_HEADER_PATTERN	fullmatchstrip_loggerwarning-_INVALID_HEADER_ERROR_MESSAGE_STRICT_TEMPLATEstringr   lower_LIBERAL_HEADER_PATTERN._INVALID_HEADER_ERROR_MESSAGE_LIBERAL_TEMPLATE)r   r   headersheaders_listheaderheader_matchmatch_stringnamevalueliberal_header_matchliberal_match_stringr   r   r   r   E   s>   	


r   N)F)loggingr   rer   r   typingr   r   r   urllib.parser   typing_extensionsr	   __name__r   _OWS_KEY_FORMAT_VALUE_FORMAT_LIBERAL_VALUE_FORMAT_KEY_VALUE_FORMATr   r   r   _BAGGAGE_PROPERTY_FORMATr   r   strr   boolr   r   r   r   r   <module>   s6   	$