
    gS              	       F   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      dedeeef   fd       Zddededeeef   fdZy)    )	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: %sz1.15.0z You should use parse_env_headers)versionreasonsreturnc                     t        |       S )N)parse_env_headers)r   s    J/var/www/openai/venv/lib/python3.12/site-packages/opentelemetry/util/re.pyparse_headersr   >   s    Q    liberalc                    i }t        t        |       }|D ]E  }|st        j                  |j	                               }|s|st
        j                  t        |       I|rg|j                  }|j                  dd      \  }}t        |      j	                         j                         }t        |      j	                         }|||<   t        j                  |j	                               }	|	st
        j                  t        |       |	j                  }
|
j                  dd      \  }}|j	                         j                         }|j	                         }|||<   H |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_strings              r   r   r   C   s;    !G#$6:L&00@GOO=v  , 3 3L&,,S!4KD%4=&&(..0DEN((*E!GDM $;#D#D$  (BF (<(C(C .44S!<KD%::<%%'DKKME!GDME H Nr   N)F)loggingr   rer   r   typingr   r   r   urllib.parser	   r
   __name__r   _OWS_KEY_FORMAT_VALUE_FORMAT_LIBERAL_VALUE_FORMAT_KEY_VALUE_FORMATr   r"   r   _BAGGAGE_PROPERTY_FORMATr   r#   strr   boolr    r   r   <module>r;      s-     & &   !
H

  K 
 ?J vk]4&$tfM +,!vk]4&$(='>tfE  -. 014&dVL L .; / H%GH S  WS#X.   I / /t /S8I /r   