
    \j8                         d Z ddlmZ ddlmZmZmZmZmZm	Z	 ddl
mZ  G d d      Z G d d      Z G d	 d
      Z G d d      Zy)zC
Implementation details of the analytics event delivery component.
    )
namedtuple)AnyDictListOptionalSetTuple)EventInputEvaluationc                   @    e Zd ZddgZdedefdZdedefdZde	fdZ
y)	EventSummaryCountercountvaluec                      || _         || _        y Nr   r   )selfr   r   s      O/root/env/lib/python3.12/site-packages/ldclient/impl/events/event_summarizer.py__init__zEventSummaryCounter.__init__   s    

    otherreturnc                     t        |t              xr4 |j                  | j                  k(  xr |j                  | j                  k(  S r   )
isinstancer   r   r   r   r   s     r   __eq__zEventSummaryCounter.__eq__   s?    %!45 DKK4::%D*/++*C	Dr   c                 8    d| j                   | j                  fz  S )NzEventSummaryCounter(%d, %s)r   r   s    r   __repr__zEventSummaryCounter.__repr__   s    ,

DJJ/GGGr   N)__name__
__module____qualname__	__slots__intr   r   boolr   strr    r   r   r   r      sC    '"Ic # DC DD DH# Hr   r   c            
       j    e Zd Zg dZdee   dedeee	e
   e	e
   f   ef   fdZdedefdZdefd	Zy
)EventSummaryFlag)context_kindsdefaultcountersr)   r*   r+   c                 .    || _         || _        || _        y r   r)   r+   r*   )r   r)   r*   r+   s       r   r   zEventSummaryFlag.__init__   s    * r   r   r   c                     t        |t              xrO |j                  | j                  k(  xr4 |j                  | j                  k(  xr |j                  | j                  k(  S r   )r   r(   r)   r+   r*   r   s     r   r   zEventSummaryFlag.__eq__"   s^    %!12 |4#5#55|:?..DMM:Y|^c^k^koso{o{^{	|r   c                 V    d| j                   d| j                  d| j                  dS )NzEventSummaryFlag(z, )r-   r   s    r   r   zEventSummaryFlag.__repr__&   s     151C1CT]]TXT`T`aar   N)r   r    r!   r"   r   r%   r   r   r	   r   r#   r   r   r$   r   r   r&   r   r   r(   r(      sx    8Ic#h  US[\_S`bjknboSoMp  sF  NF  IG 
|C |D |b# br   r(   c                   >    e Zd Zg dZdededeeef   fdZde	fdZ
y)	EventSummary
start_dateend_dateflagsr4   r5   r6   c                 .    || _         || _        || _        y r   r3   )r   r4   r5   r6   s       r   r   zEventSummary.__init__-   s    $ 
r   r   c                 2    t        | j                        dk(  S Nr   )lenr6   r   s    r   is_emptyzEventSummary.is_empty2   s    4::!##r   N)r   r    r!   r"   r#   r   r%   r(   r   r$   r;   r&   r   r   r2   r2   *   s8    3I3 # d3HXCX>Y 
$$ $r   r2   c                   .    e Zd Zd Z	 defdZ	 d Zd Zy)EventSummarizerc                 >    d| _         d| _        t               | _        y r9   r4   r5   dictr6   r   s    r   r   zEventSummarizer.__init__7       V
r   eventc                 0   | j                   j                  |j                        }|@t        t	               |j
                  t                     }|| j                   |j                  <   |j                  }t        |j                        D ];  }|j                  |      }||j                  j                  |j                         = |j                  |j                  d n|j                  j                   f}|j"                  j                  |      }|&t%        d|j&                        }||j"                  |<   n|xj(                  dz  c_        |j*                  }| j,                  dk(  s|| j,                  k  r|| _        || j.                  kD  r|| _        y y )N   r   )r6   getkeyr(   setdefault_valuer@   contextrangeindividual_context_countget_individual_contextr)   addkind	variationflagversionr+   r   r   r   	timestampr4   r5   )	r   rB   	flag_datarI   iccounter_keycounterdates	            r   summarize_eventzEventSummarizer.summarize_event?   sE   JJNN599-	(0C0CTVLI$-DJJuyy!--w778 	4A..q1A}''++AFF3	4
 

0B

HZHZ[$$((5?)!U[[9G.5I{+MMQM??a4$//#9"DO$-- DM  r   c                 Z    t        | j                  | j                  | j                        S )Nr3   )r2   r4   r5   r6   r   s    r   snapshotzEventSummarizer.snapshot\   s     T]]\`\f\fggr   c                 >    d| _         d| _        t               | _        y r9   r?   r   s    r   clearzEventSummarizer.clear_   rA   r   N)r   r    r!   r   r
   rY   r[   r]   r&   r   r   r=   r=   6   s)    
!%9 !4hr   r=   N)__doc__collectionsr   typingr   r   r   r   r   r	   ldclient.impl.events.typesr
   r   r(   r2   r=   r&   r   r   <module>rb      sD    # 8 8 ;H Hb b 	$ 	$, ,r   