Ë
    `Qêjç  ã                   óp  — d dl mZmZmZ d dlmZ 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 d dlmZ d d	lmZ  ee«      Zd
ee   dedee   fd„Zd
ee   dedededee   f
d„Z G d„ dej:                  «      Zdeeef   dee   fd„Z deejB                     dz  dejB                  dz  fd„Z"y)é    )ÚIterableÚIteratorÚMapping)Ú	getLogger)Úsplit)Ú
quote_plusÚunquote_plus)Ú_is_valid_pairÚget_allÚset_baggage)Úget_current)ÚContext)Útextmap)Ú_DELIMITER_PATTERNÚentriesÚmax_pair_lengthÚreturnc              #   ó   K  — | D ]…  }|sŒ|j                  «       s*t        j                  d|j                  dd«      d   «       Œ@t	        |«      |kD  r4t        j                  d|j                  dd«      d   t	        |«      «       Œ‚|–— Œ‡ y ­w)Nz9Baggage entry with key `%s` contains non-ASCII charactersú=é   r   z_Baggage entry with key `%s` exceeded the maximum number of bytes per list-member with length %d)ÚisasciiÚ_loggerÚwarningr   Úlen)r   r   Úentrys      úo/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/opentelemetry/baggage/propagation/__init__.pyÚ_filter_valid_entriesr      sŒ   è ø€ ð ò ˆÙØØ�}‰}ŒÜ�O‰OØKØ—‘˜C Ó# AÑ&ôð Üˆu‹:˜Ò'Ü�O‰OØqØ—‘˜C Ó# AÑ&Ü�E“
ôð
 Ø‹ñ!ùs   ‚BBÚ	max_pairsÚmax_header_lengthc              #   óò   K  — d}t        t        | |«      «      D ]Y  \  }}||k\  rt        j                  d«        y||dkD  rdndt	        |«      z   z  }||kD  rt        j                  d«        y|–— Œ[ y­w)z²Apply W3C Baggage size limits to a sequence of baggage entries.

    Yields entries that fit within the W3C specification limits.
    Logs warnings when entries are dropped.
    r   z3Baggage exceeded the maximum number of list-membersNr   z?Baggage exceeded the maximum number of bytes per baggage-string)Ú	enumerater   r   r   r   )r   r   r   r   ÚlengthÚindexr   s          r   Ú_apply_baggage_limitsr$   )   s~   è ø€ ð €FÜ!Ô"7¸ÀÓ"QÓRò 	‰ˆˆuØ�IÒÜ�O‰OÐQÔRÙà˜ š	‘1 q¬C°«JÑ6Ñ6ˆØÐ%Ò%Ü�O‰OÐ]Ô^ÙØ‹ñ	ùs   ‚A5A7c            	       ó0  — e Zd ZdZdZdZdZdZdej                  fdej                  dedz  d	ej                  ej                     d
efd„Zdej                  fdej                  dedz  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Úgetterr   c                 óð  — |€
t        «       }t        |j                  || j                  «      «      }|s|S t	        |j                  «       «      | j                  kD  rt        j                  d|«       |S t        t        |«      }t        || j                  | j                  | j                  ¬«      D ]�  }	 |j                  dd«      \  }}|j                  d«      }|j                  d«      }t!        ||«      st        j                  d|«       Œ^t#        |«      j                  «       }t#        |«      j                  «       }t%        |||¬«      }ŒŸ |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-string©r   r   r   r   r   z1Baggage list-member `%s` doesn't match the formatz 	zInvalid baggage entry: `%s`©r*   )r   Ú_extract_first_elementÚgetÚ_BAGGAGE_HEADER_NAMEr   ÚencodeÚ_MAX_HEADER_LENGTHr   r   r   r   r$   Ú
_MAX_PAIRSÚ_MAX_PAIR_LENGTHÚ	ExceptionÚstripr
   r	   r   )	Úselfr)   r*   r+   ÚheaderÚbaggage_entriesr   ÚnameÚvalues	            r   ÚextractzW3CBaggagePropagator.extractI   sY  € ð ˆ?Ü!“mˆGä'¨¯
©
°7¸D×<UÑ<UÓ(VÓWˆáØˆNäˆv�}‰}‹Ó $×"9Ñ"9Ò9Ü�O‰OØ]Øôð ˆNäÔ 2°FÓ;ˆä*ØØ—o‘oØ ×1Ñ1Ø"×5Ñ5ô	
ò 	ˆEðØ#Ÿk™k¨#¨qÓ1‘��eð —:‘:˜eÓ$ˆDØ—K‘K Ó&ˆEä! $¨Ô.Ü—‘Ð =¸uÔEØä Ó%×+Ñ+Ó-ˆDÜ  Ó'×-Ñ-Ó/ˆEä!ØØØô‰Gð/	ð: ˆøô+ ò Ü—‘Ð SÐUZÔ[Ùðús   Â5EÅE5Å4E5Úsetterc                 óì   — t        |¬«      }|sydj                  t        t        |«      | j                  | j
                  | j                  ¬«      «      }|r|j                  || j                  |«       yy)z|Injects Baggage into the carrier.

        See
        `opentelemetry.propagators.textmap.TextMapPropagator.inject`
        r.   Nú,r-   )	r   Újoinr$   Ú_encode_baggage_pairsr4   r5   r3   Úsetr1   )r8   r)   r*   r>   r:   Úbaggage_strings         r   ÚinjectzW3CBaggagePropagator.inject…   sk   € ô "¨'Ô2ˆÙØàŸ™Ü!Ü% oÓ6ØŸ/™/Ø $× 5Ñ 5Ø"&×"9Ñ"9ô	ó
ˆñ Ø�J‰J�w × 9Ñ 9¸>ÕJð ó    c                 ó   — | j                   hS )z.Returns a set with the fields set in `inject`.)r1   )r8   s    r   ÚfieldszW3CBaggagePropagator.fields    s   € ð ×)Ñ)Ð*Ð*rF   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r3   r5   r4   r1   r   Údefault_getterÚCarrierTr   ÚGetterr=   Údefault_setterÚSetterrE   ÚpropertyrC   ÚstrrH   © rF   r   r&   r&   A   så   „ ÙKàÐØÐØ€JØ$Ðð
 #'Ø3:×3IÑ3Iñ	:à×!Ñ!ð:ð ˜4‘ð:ð —‘˜w×/Ñ/Ñ0ð	:ð
 
ó:ð~ #'Ø3:×3IÑ3Iñ	Kà×!Ñ!ðKð ˜4‘ðKð —‘˜w×/Ñ/Ñ0ð	Kð
 
óKð6 ð+˜˜C™ò +ó ñ+rF   r&   r:   c              #   ó˜   K  — | j                  «       D ]3  \  }}t        t        |«      «      dz   t        t        |«      «      z   –— Œ5 y­w)z9Yield URL-encoded 'key=value' pairs from baggage entries.r   N)Úitemsr   rS   )r:   Úkeyr<   s      r   rB   rB   ¦   sH   è ø€ ð &×+Ñ+Ó-ò B‰
ˆˆUÜœ˜S›Ó" SÑ(¬:´c¸%³jÓ+AÑAÓAñBùs   ‚AA
rV   Nc                 ó2   — | €y t        t        | «      d «      S )N)ÚnextÚiter)rV   s    r   r/   r/   ®   s   € ð €}ØÜ”�U“˜TÓ"Ð"rF   )#Úcollections.abcr   r   r   Úloggingr   Úrer   Úurllib.parser   r	   Úopentelemetry.baggager
   r   r   Úopentelemetry.contextr   Úopentelemetry.context.contextr   Úopentelemetry.propagatorsr   Úopentelemetry.util.rer   rI   r   rS   Úintr   r$   ÚTextMapPropagatorr&   ÚobjectrB   rN   r/   rT   rF   r   ú<module>rg      sþ   ð÷ 8Ñ 7Ý Ý ß 1ç FÑ FÝ -Ý 1Ý -Ý 4á
�HÓ
€ðØ�c‰]ðàðð ˆc�]óð.Ø�c‰]ðàðð ðð ð	ð
 ˆc�]óô0b+˜7×4Ñ4ô b+ðJBØ˜S &˜[Ñ)ðBàˆc�]óBð#Ø�G×$Ñ$Ñ%¨Ñ,ð#à×Ñ˜Ñô#rF   