
    lh                         d dl Z d dlZd dlmZ d dlmZ d dlmZmZ erd dlm	Z	  e	de
ed      ZdZ G d	 d
      Zd Zy)    N)LRUCache)Lock)TYPE_CHECKINGAny)	TypedDictFlagDataflagresultd   c                   *    e Zd Zd Zd Zd Zd Zd Zy)
FlagBufferc                 P    || _         t               | _        t        |      | _        y N)capacityr   lockr   _FlagBuffer__buffer)selfr   s     j/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/sentry_sdk/feature_flags.py__init__zFlagBuffer.__init__   s      F	 !*    c                 8    t        | j                        | _        y r   )r   r   r   )r   s    r   clearzFlagBuffer.clear   s     /r   c                     | j                   5  t        | j                        }t        j                  | j
                  |      |_        |cd d d        S # 1 sw Y   y xY wr   )r   r   r   copydeepcopyr   )r   memobuffers      r   __deepcopy__zFlagBuffer.__deepcopy__    sE    YY 	.F"mmDMM4@FO	 	 	s   <AAc                     | j                   5  | j                  j                         D cg c]
  \  }}||d c}}cd d d        S c c}}w # 1 sw Y   y xY w)Nr	   )r   r   get_all)r   keyvalues      r   getzFlagBuffer.get'   sQ    YY 	AEAVAVAX3=3.	 		 	s   AAAAAc                     t        |t              rt        d      | j                  5  | j                  j                  ||       d d d        y # 1 sw Y   y xY w)Nz=FlagBuffer instances can not be inserted into the dictionary.)
isinstancer   
ValueErrorr   r   set)r   r
   r   s      r   r(   zFlagBuffer.set.   sP    fj)
 O  YY 	,MMdF+	, 	, 	,s   AAN)__name__
__module____qualname__r   r   r   r$   r(    r   r   r   r      s    +0,r   r   c                     t        j                         j                  }|j                  | |       t        j                         }|r|j                  d|  |       yy)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   r0   spans       r   add_feature_flagr4   =   sR     **,22E	IIdF&&(D(/8 r   )r   r.   sentry_sdk._lru_cacher   	threadingr   typingr   r   r   strboolr   DEFAULT_FLAG_CAPACITYr   r4   r,   r   r   <module>r;      sC      *  % cT%BCH  ), ),X9r   