§
    xÅj
  ã                   ó¶   — d dl Z d dlmZ d dlmZmZ d dlZd dlmZ d dl	m
Z
 d dlmZ erd dlmZ  edeed	œ¦  «        Zd
Z G d„ d¦  «        Zdededdfd„ZdS )é    N)ÚLock)ÚTYPE_CHECKINGÚAny)ÚLRUCache)ÚSpan)Úhas_span_streaming_enabled)Ú	TypedDictÚFlagData©ÚflagÚresultéd   c                   óJ   — e Zd Zdeddfd„Zdd„Zdd„Zdd
„Zdede	ddfd„Z
dS )Ú
FlagBufferÚcapacityÚreturnNc                 ób   — || _         t          ¦   «         | _        t          |¦  «        | _        d S ©N)r   r   Úlockr   Ú_FlagBuffer__buffer)Úselfr   s     úIC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/feature_flags.pyÚ__init__zFlagBuffer.__init__   s)   € Ø ˆŒÝ‘F”FˆŒ	õ ! Ñ*Ô*ˆŒˆˆó    c                 ó8   — t          | j        ¦  «        | _        d S r   )r   r   r   ©r   s    r   ÚclearzFlagBuffer.clear   s   € Ý  ¤Ñ/Ô/ˆŒˆˆr   Úmemoúdict[int, Any]c                 ó®   — | j         5  t          | j        ¦  «        }t          j        | j        |¦  «        |_        |cd d d ¦  «         S # 1 swxY w Y   d S r   )r   r   r   ÚcopyÚdeepcopyr   )r   r   Úbuffers      r   Ú__deepcopy__zFlagBuffer.__deepcopy__   s•   € ØŒYð 	ð 	Ý ¤Ñ.Ô.ˆFÝ"œm¨D¬M¸4Ñ@Ô@ˆFŒOØð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ˆ5A
Á
AÁAúlist[FlagData]c                 óŠ   — | j         5  d„ | j                             ¦   «         D ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S )Nc                 ó   — g | ]
\  }}||d œ‘ŒS )r   © )Ú.0ÚkeyÚvalues      r   ú
<listcomp>z"FlagBuffer.get.<locals>.<listcomp>'   s1   € ð ð ð Ù3=°3¸˜¨Ð.Ð.ðð ð r   )r   r   Úget_allr   s    r   ÚgetzFlagBuffer.get%   s˜   € ØŒYð 	ð 	ðð ØAEÄ×AVÒAVÑAXÔAXðñ ô ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ˆ#8¸<¿<r   r   c                 óÄ   — t          |t          ¦  «        rt          d¦  «        ‚| j        5  | j                             ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz=FlagBuffer instances can not be inserted into the dictionary.)Ú
isinstancer   Ú
ValueErrorr   r   Úset)r   r   r   s      r   r2   zFlagBuffer.set+   s±   € Ý�f�jÑ)Ô)ð 	õ
 ØOñô ð ð ŒYð 	,ð 	,ØŒM×Ò˜d FÑ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   ¬AÁAÁA)r   N)r   r   r   r   )r   r%   )Ú__name__Ú
__module__Ú__qualname__Úintr   r   r$   r.   ÚstrÚboolr2   r(   r   r   r   r      s›   € € € € € ð+ ð +¨ð +ð +ð +ð +ð0ð 0ð 0ð 0ðð ð ð ðð ð ð ð,˜ð , Tð ,¨dð ,ð ,ð ,ð ,ð ,ð ,r   r   r   r   r   c                 óú  — t          j        ¦   «         }t          j        ¦   «         j        }|                     | |¦  «         t          |j        ¦  «        r^t           j                             ¦   «         }|r:t          |t           j        j
        ¦  «        r|                     d| › �|¦  «         dS dS dS t          j        ¦   «         }|r0t          |t          ¦  «        r|                     d| › �|¦  «         dS dS dS )z¤
    Records a flag and its value to be sent on subsequent error events.
    We recommend you do this on flag evaluations. Flags are buffered per Sentry scope.
    zflag.evaluation.N)Ú
sentry_sdkÚ
get_clientÚget_isolation_scopeÚflagsr2   r   ÚoptionsÚtracesÚget_current_spanr0   ÚStreamedSpanÚset_attributer   Úset_flag)r   r   Úclientr=   Úspans        r   Úadd_feature_flagrF   9   s  € õ
 Ô"Ñ$Ô$€FåÔ*Ñ,Ô,Ô2€EØ	‡I‚Iˆd�FÑÔÐå! &¤.Ñ1Ô1ð =ÝÔ ×1Ò1Ñ3Ô3ˆØð 	B•J˜t¥ZÔ%6Ô%CÑDÔDð 	BØ×ÒÐ8°$Ð8Ð8¸&ÑAÔAÐAÐAÐAð	Bð 	Bð 	Bð 	Bõ Ô*Ñ,Ô,ˆØð 	=•J˜t¥TÑ*Ô*ð 	=Ø�MŠMÐ3¨TÐ3Ð3°VÑ<Ô<Ð<Ð<Ð<ð	=ð 	=ð 	=ð 	=r   )r!   Ú	threadingr   Útypingr   r   r:   Úsentry_sdk._lru_cacher   Úsentry_sdk.tracingr   Úsentry_sdk.tracing_utilsr   r	   r7   r8   r
   ÚDEFAULT_FLAG_CAPACITYr   rF   r(   r   r   ú<module>rM      s  ðØ €€€Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø #Ð #Ð #Ð #Ð #Ð #Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?àð DØ Ð Ð Ð Ð Ð àˆy˜¨c¸TÐ%BÐ%BÑCÔC€Hð Ð ð#,ð #,ð #,ð #,ð #,ñ #,ô #,ð #,ðL=˜3ð =¨ð =°ð =ð =ð =ð =ð =ð =r   