
    gO                     *   d dl mZ d dlmZ d dlmZmZmZmZ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 d dlmZ d d	lmZ  ee      Z G d
 dej6                        Zdeeef   defdZdeeej@                        deej@                     fdZ!y)    )	getLogger)split)IterableListMappingOptionalSet)
quote_plusunquote_plus)_is_valid_pairget_allset_baggage)get_current)Context)textmap)_DELIMITER_PATTERNc            	       0   e Zd ZdZdZdZdZdZdej                  fdej                  dee   d	ej                  ej                     d
efdZdej                  fdej                  dee   dej                   ej                     d
dfdZed
ee   fd       Zy)W3CBaggagePropagatorzAExtracts and injects Baggage which is used to annotate telemetry.i    i      baggageNcarriercontextgetterreturnc                 ,   |
t               }t        |j                  || j                              }|s|S t	        |      | j
                  kD  rt        j                  d|       |S t        t        |      }| j                  }t	        |      | j                  kD  rt        j                  d|       |D ]  }t	        |      | j                  kD  rt        j                  d|       2|s5	 |j                  dd      \  }}	t        ||	      st        j                  d|       nt        |      j                         }t        |	      j                         }	t!        ||	|      }|dz  }|d	k(  s |S  |S # t        $ r t        j                  d|       Y w xY w)
z}Extract Baggage from the carrier.

        See
        `opentelemetry.propagators.textmap.TextMapPropagator.extract`
        zKBaggage header `%s` exceeded the maximum number of bytes per baggage-stringz?Baggage header `%s` exceeded the maximum number of list-memberszGBaggage entry `%s` exceeded the maximum number of bytes per list-member=   z1Baggage list-member `%s` doesn't match the formatzInvalid baggage entry: `%s`r   r   )r   _extract_first_elementget_BAGGAGE_HEADER_NAMElen_MAX_HEADER_LENGTH_loggerwarningr   r   
_MAX_PAIRS_MAX_PAIR_LENGTH	Exceptionr   r   stripr   )
selfr   r   r   headerbaggage_entriestotal_baggage_entriesentrynamevalues
             _/var/www/openai/venv/lib/python3.12/site-packages/opentelemetry/baggage/propagation/__init__.pyextractzW3CBaggagePropagator.extract%   s    ?!mG'JJw 9 9:
 Nv;000OO] N%*+=v%F $$//1OOQ
 %E5zD111] #kk#q1e "$. =uE%++-D '--/E!G
 "Q&!$)C %B -  G 	s   (E11FFsetterc                 r    t        |      }|syt        |      }|j                  || j                  |       y)z|Injects Baggage into the carrier.

        See
        `opentelemetry.propagators.textmap.TextMapPropagator.inject`
        r   N)r   _format_baggagesetr!   )r*   r   r   r3   r,   baggage_strings         r1   injectzW3CBaggagePropagator.injectn   s4     "'2(9

7D55~F    c                     | j                   hS )z.Returns a set with the fields set in `inject`.)r!   )r*   s    r1   fieldszW3CBaggagePropagator.fields   s     ))**r9   )__name__
__module____qualname____doc__r#   r'   r&   r!   r   default_getterCarrierTr   r   Getterr2   default_setterSetterr8   propertyr	   strr;    r9   r1   r   r      s    KJ$
 &*3:3I3I	G!!G '"G w//0	G
 
GX &*3:3I3I	G!!G '"G w//0	G
 
G$ +C + +r9   r   r,   r   c                 N    dj                  d | j                         D              S )N,c              3   z   K   | ]3  \  }}t        t        |            d z   t        t        |            z    5 yw)r   N)r
   rF   ).0keyr0   s      r1   	<genexpr>z"_format_baggage.<locals>.<genexpr>   s8      1JC 	3s8s"ZE
%;;1s   9;)joinitems)r,   s    r1   r5   r5      s)    88 )//1  r9   rO   c                 2    | y t        t        |       d       S )N)nextiter)rO   s    r1   r   r      s     }UT""r9   N)"loggingr   rer   typingr   r   r   r   r	   urllib.parser
   r   opentelemetry.baggager   r   r   opentelemetry.contextr   opentelemetry.context.contextr   opentelemetry.propagatorsr   opentelemetry.util.rer   r<   r$   TextMapPropagatorr   rF   objectr5   rA   r   rG   r9   r1   <module>r^      s      9 9 1 F F - 1 - 4
H
f+744 f+RWS&[%9 c #HW--./#g#r9   