
    \jF                         d dl Z d dlZd dlZd dlZd dlmZ d dlmZ  G d d      Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zy)    N)Config)VERSIONc                   $    e Zd Zd Zd Zd Zd Zy)_DiagnosticAccumulatorc                     || _         t        t        j                         dz        | _        t	        j
                         | _        d| _        g | _        y )N  r   )	diagnostic_idinttimedata_since_date	threadingLock_state_lock_events_in_last_batch_stream_inits)selfr	   s     J/root/env/lib/python3.12/site-packages/ldclient/impl/events/diagnostics.py__init__z_DiagnosticAccumulator.__init__
   sA    *"499;#56$>>+%&"    c                     | j                   5  | j                  j                  |||d       d d d        y # 1 sw Y   y xY w)N)	timestampdurationMillisfailed)r   r   append)r   r   durationr   s       r   record_stream_initz)_DiagnosticAccumulator.record_stream_init   sA     	:%%I9A17'9 :	: 	: 	:s    6?c                 T    | j                   5  || _        d d d        y # 1 sw Y   y xY w)N)r   r   )r   events_in_batchs     r   record_events_in_batchz-_DiagnosticAccumulator.record_events_in_batch   s(     	9)8D&	9 	9 	9s   'c                 R   | j                   5  | j                  }| j                  }d| _        g | _        d d d        t        t	        j                         dz        }t        d|| j                        }|j                  | j                  ||d       || _        |S # 1 sw Y   jxY w)Nr   r   
diagnostic)dataSinceDatedroppedEventsdeduplicatedUserseventsInLastBatchstreamInits)	r   r   r   r
   r   _diagnostic_base_fieldsr	   updater   )r   dropped_eventsdeduplicated_usersr   stream_initscurrent_timeperiodic_events          r   create_event_and_resetz-_DiagnosticAccumulator.create_event_and_reset   s     	$"88O--L)*D&!#D		$ 499;-.0|TM_M_`0D0D0>4F4C.:	< 	=
  ,	$ 	$s   'BB&N)__name__
__module____qualname__r   r   r   r.    r   r   r   r   	   s     :9r   r   c                 |    t        t        j                               | j                  sddS | j                  dd  dS )N i)diagnosticIdsdkKeySuffix)struuiduuid4sdk_keyconfigs    r   create_diagnostic_idr=   ,   s?    

-&,nnBO O:@..:MO Or   c                 ~    t        d| |      }|j                  t        |      t        |      t	               d       |S )Nzdiagnostic-init)configurationsdkplatform)r'   r(    _create_diagnostic_config_object_create_diagnostic_sdk_object"_create_diagnostic_platform_object)creation_dater	   r<   base_objects       r   create_diagnostic_initrG   0   sD    )*;]MZK)I&)Q<VD$F$HJ K r   c                     | ||dS )N)kindcreationDateidr2   )rI   rE   r	   s      r   r'   r'   7   s    )! !r   c                    t        d      }i d| j                  |j                  k7  d| j                  |j                  k7  d| j                  |j                  k7  d| j                  d| j
                  j                  dz  d| j
                  j                  dz  d	| j                  dz  d
| j
                  j                  d ud| j                   d| j                  d| j                  d| j                  dz  d| j                  d| j                  dz  d| j                   dz  dt#        | j$                  | d      S )NSDK_KEYcustomBaseURIcustomEventsURIcustomStreamURIeventsCapacityconnectTimeoutMillisr   socketTimeoutMilliseventsFlushIntervalMillis
usingProxystreamingDisabledusingRelayDaemonallAttributesPrivatepollingIntervalMillisuserKeysCapacityuserKeysFlushIntervalMillis!diagnosticRecordingIntervalMillisdataStoreTypememory)r   base_uri
events_uristream_base_urievents_max_pendinghttpconnect_timeoutread_timeoutflush_interval
http_proxystreamuse_lddall_attributes_privatepoll_intervalcontext_keys_capacitycontext_keys_flush_intervaldiagnostic_recording_interval_get_component_type_namefeature_store)r<   default_configs     r   rB   rB   <   s   I&N_OV__0G0GG _v00N4M4MM_v559W9WW_ f77_ #FKK$?$?$$F	_
 "6;;#;#;d#B_ ()>)>)E_ &++00<_  V]]!2_ _ #F$A$A_ $V%9%9D%@_  < <_ *6+M+MPT+T_ 01U1UX\1\_ 5f6J6JFT\]_ _r   c                 @    dt         | j                  | j                  dS )Nzpython-server-sdk)nameversionwrapperNamewrapperVersion)r   wrapper_namewrapper_versionr;   s    r   rC   rC   O   s$    '!..$446 6r   c                      dt        j                         t        t        j                               t        j                         t        j
                         t        j                         dS )Npython)rs   osArchosName	osVersionpythonVersionpythonImplementation)rA   machine_normalize_os_namesystemreleasepython_versionpython_implementationr2   r   r   rD   rD   U   sP    &&(():;!))+%446$,$B$B$DF Fr   c                 Z    | (t        t        | dd             r| j                  |      S y|S )Ndescribe_configurationcustom)callablegetattrr   )	componentr<   default_names      r   ro   ro   ]   s4    GI'?FG33F;;r   c                     | dk(  ry| S )NDarwinMacOSr2   )rs   s    r   r   r   d   s    xKr   )r   r   r8   rA   ldclient.configr   ldclient.versionr   r   r=   rG   r'   rB   rC   rD   ro   r   r2   r   r   <module>r      sM        " $! !FO!
_&6Fr   