
    gh                         S SK r S SKrS SKJr  S SKJr  S SKJrJr  \(       a  S SKJ	r	  \	" S\
\S.5      rSr " S	 S
5      rS rg)    N)LRUCache)Lock)TYPE_CHECKINGAny)	TypedDictFlagDataflagresultd   c                   2    \ rS rSrS rS rS rS rS rSr	g)	
FlagBuffer   c                 N    Xl         [        5       U l        [        U5      U l        g N)capacityr   lockr   _FlagBuffer__buffer)selfr   s     [/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/sentry_sdk/feature_flags.py__init__FlagBuffer.__init__   s     F	 !*    c                 8    [        U R                  5      U l        g r   )r   r   r   )r   s    r   clearFlagBuffer.clear   s     /r   c                     U R                      [        U R                  5      n[        R                  " U R
                  U5      Ul        UsS S S 5        $ ! , (       d  f       g = fr   )r   r   r   copydeepcopyr   )r   memobuffers      r   __deepcopy__FlagBuffer.__deepcopy__    s:    YY.F"mmDMM4@FO YYs   =A
A"c                     U R                      U R                  R                  5        VVs/ s H	  u  pXS.PM     snnsS S S 5        $ s  snnf ! , (       d  f       g = f)Nr	   )r   r   get_all)r   keyvalues      r   getFlagBuffer.get'   sG    YYAEAVAVAXAX:3.AX Y Ys   AAAA
Ac                     [        U[        5      (       a  [        S5      eU R                     U R                  R                  X5        S S S 5        g ! , (       d  f       g = f)Nz=FlagBuffer instances can not be inserted into the dictionary.)
isinstancer   
ValueErrorr   r   set)r   r
   r   s      r   r-   FlagBuffer.set.   sF    fj))
 O  YYMMd+ YYs   A
A )__bufferr   r   N)
__name__
__module____qualname____firstlineno__r   r   r"   r(   r-   __static_attributes__ r   r   r   r      s    +0,r   r   c                     [         R                  " 5       R                  nUR                  X5        [         R                  " 5       nU(       a  UR                  SU  3U5        gg)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_isolation_scopeflagsr-   get_current_spanset_flag)r
   r   r9   spans       r   add_feature_flagr=   =   sP     **,22E	IId&&(D(/8 r   )r   r7   sentry_sdk._lru_cacher   	threadingr   typingr   r   r   strboolr   DEFAULT_FLAG_CAPACITYr   r=   r5   r   r   <module>rD      sC      *  % cT%BCH  ), ),X9r   