o
    ni                     @   sn  d Z ddlZ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	 ddl
mZ ddlmZmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% d	d
l&m'Z' d	dl(m)Z)m*Z* ddl+m,Z,m-Z-m.Z. ddl/m0Z0 ddl1m2Z2 erddlm3Z3 ee4ef Z5e6e7Z8dZ9dee4ef dee4 deddfddZ:G dd dZ;dS )zHandle Manager.    N)defaultdict)Queue)Event)
TYPE_CHECKINGAnyCallableDictIterableListOptionalSequenceTuplecast)url_registry)HistoryRecordInternalMessagesMetricRecordRecordResult	RunRecordSampledHistoryItemSummaryItemSummaryRecordSummaryRecordRequestSystemMetricSampleSystemMetricsBuffer   )InterfaceQueue)handler_util
proto_util   )contextsample
tb_watcher)SettingsStatic)SystemMonitor)MetricSummaryFtargetkey_listvreturnc                 C   sR   |d d D ]}|  |i  | |}trttttf |}|} q|| |d < d S )N)
setdefaultgetr   r   r   strr   )r'   r(   r)   k
new_target r1   X/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/wandb/sdk/internal/handler.py_dict_nested_setC   s   
r3   c                   @   s  e Zd ZU eed< eeejf ed< eee	f ed< e
e ed< eed< ded< ded	< eed
< ded< eed< e
e ed< e
ej ed< eeef ed< eeef ed< eeedf ef ed< eeedf e	f ed< e
e ed< eed< e
e ed< ejed< dedddddedddedejdd fd!d"Zdefd#d$Zd%edd fd&d'Zd%edd fd(d)Zdd%ed+edd fd,d-Zd.edd fd/d0Z dd1d2Z!d%edd fd3d4Z"d%edd fd5d6Z#d%edd fd7d8Z$d%edd fd9d:Z%d%edd fd;d<Z&d%edd fd=d>Z'd%edd fd?d@Z(d%edd fdAdBZ)d%edd fdCdDZ*d%edd fdEdFZ+d%edd fdGdHZ,d%edd fdIdJZ-d%edd fdKdLZ.d%edd fdMdNZ/ddOedPedd fdQdRZ0dSe1dd fdTdUZ2dVdWdXe3e dYdZd[ed\e
e defd]d^Z4	 ddXe3e dYe	d_e
e defd`daZ5	 ddXe3e dYe	d_e
e defdbdcZ6dYeee	f deee	f fdddeZ7dfeee	f de3e fdgdhZ8dSe1dfeee	f dd fdidjZ9dkede
e fdldmZ:dXe3e dYe	dfeee	f dneee	f dd f
dodpZ;dXe3e dYe	dfeee	f dneee	f dd f
dqdrZ<dSe1dfeee	f dd fdsdtZ=d%edd fdudvZ>	 ddwe
e dd fdxdyZ?d%edd fdzd{Z@d%edd fd|d}ZAd%edd fd~dZBd%edd fddZCd%edd fddZDd%edd fddZEd%edd fddZFd%edd fddZGd%edd fddZHd%edd fddZId%edd fddZJd%edd fddZKd%edd fddZLd%edd fddZMd%edd fddZNd%edd fddZOd%edd fddZPd%edd fddZQd%edd fddZRd%edd fddZSd%edd fddZTd%edd fddZUd%edd fddZVd%edd fddZWd%edd fddZXd%edd fddZYd%edd fddZZd%edd fddZ[d%edd fddZ\d%edd fddZ]dddZ^defddZ_e_Z`dSe1dfeee	f dd fddZad S )HandleManager_consolidated_summary_sampled_history_partial_history
_run_proto	_settingszQueue[Record]	_record_qzQueue[Result]	_result_q_stopped	_writer_q
_interface_system_monitor_tb_watcher_metric_defines_metric_globs._metric_track_metric_copy_track_time_accumulate_time_run_start_time_context_keepersettingsrecord_qresult_qstoppedwriter_q	interfacecontext_keeperr*   Nc                 C   s   || _ || _|| _|| _|| _|| _|| _d | _d | _d| _	d | _
d| _d | _t | _ttj| _d | _t | _tt| _tt| _t | _t | _t | _d| _d S )Nr   F)r9   r:   r;   r<   r=   r>   rH   r@   r?   _steprE   rF   rG   dictr5   r   r"   UniformSampleAccumulatorr6   r8   r7   r   rA   rB   rC   rD   r   _internal_messages_dropped_history)selfrI   rJ   rK   rL   rM   rN   rO   r1   r1   r2   __init__f   s.   



zHandleManager.__init__c                 C   s
   | j  S N)r:   qsizerU   r1   r1   r2   __len__   s   
zHandleManager.__len__recordc                 C   sP   | j | |d}|sJ d| }t| |d }|s"J d| || d S )Nrecord_typehandle_unknown handle: )rH   add_from_record
WhichOneofgetattr)rU   r[   r\   handler_strhandlerr1   r1   r2   handle   s   
zHandleManager.handlec                 C   s^   |j d}|s
J d| }t| |d }|dkr td|  |s)J d| || d S )Nrequest_typehandle_request_network_statuszhandle_request: r^   )requestr`   ra   loggerdebug)rU   r[   re   rb   rc   r1   r1   r2   handle_request   s   zHandleManager.handle_requestFalways_sendc                 C   s   |rd|j _| j| d S )NT)controlrl   r=   put)rU   r[   rl   r1   r1   r2   _dispatch_record   s   zHandleManager._dispatch_recordresultc                 C   s&   t |}| j| | j| d S rW   )r!   context_id_from_resultrH   releaser;   rn   )rU   rp   
context_idr1   r1   r2   _respond_result   s   
zHandleManager._respond_resultc                 C   s   d S rW   r1   rY   r1   r1   r2   debounce   s   zHandleManager.debouncec                 C      |  | d S rW   ro   rU   r[   r1   r1   r2   handle_request_cancel      z#HandleManager.handle_request_cancelc                 C   s   |j j}|j}td|  ||jkr| jd ur| j  n(||jkr0| j	r/| j	  d | _	n||j
kr:|   n||jkrG| j| jdd | j|dd d S )Nzhandle defer: T)flushrl   )rh   deferstateri   infoFLUSH_STATSr?   finishFLUSH_TBr@   FLUSH_PARTIAL_HISTORY_flush_partial_history	FLUSH_SUM_save_summaryr5   ro   )rU   r[   r}   r~   r1   r1   r2   handle_request_defer   s"   







z"HandleManager.handle_request_deferc                 C   rv   rW   rw   rx   r1   r1   r2   handle_request_login   rz   z"HandleManager.handle_request_loginc                 C   rv   rW   rw   rx   r1   r1   r2   handle_request_python_packages   rz   z,HandleManager.handle_request_python_packagesc                 C   sB   | j jr|j| _t|}|jj|j | | | 	| d S rW   )
r9   _offlinerunr8   r   _result_from_record
run_resultCopyFromrt   ro   rU   r[   rp   r1   r1   r2   
handle_run   s   

zHandleManager.handle_runc                 C   rv   rW   rw   rx   r1   r1   r2   handle_stats   rz   zHandleManager.handle_statsc                 C   rv   rW   rw   rx   r1   r1   r2   handle_config   rz   zHandleManager.handle_configc                 C   rv   rW   rw   rx   r1   r1   r2   handle_output   rz   zHandleManager.handle_outputc                 C   rv   rW   rw   rx   r1   r1   r2   handle_output_raw   rz   zHandleManager.handle_output_rawc                 C   rv   rW   rw   rx   r1   r1   r2   handle_files   rz   zHandleManager.handle_filesc                 C   rv   rW   rw   rx   r1   r1   r2   handle_request_link_artifact   rz   z*HandleManager.handle_request_link_artifactc                 C   rv   rW   rw   rx   r1   r1   r2   handle_use_artifact   rz   z!HandleManager.handle_use_artifactc                 C   rv   rW   rw   rx   r1   r1   r2   handle_artifact   rz   zHandleManager.handle_artifactc                 C   rv   rW   rw   rx   r1   r1   r2   handle_alert   rz   zHandleManager.handle_alertsummary_dictr{   c           
      C   s   t  }| D ]\}}|j }||_t||_q|r(t|d}| 	| d S | j
js?t|d}| jj|d}	| 	|	 d S d S )N)summary)summary_record)r   itemsupdateaddkeyjsondumps
value_jsonr   ro   r9   r   r   r>   _make_request)
rU   r   r{   r   r/   r)   r   r[   r   request_recordr1   r1   r2   r      s   


zHandleManager._save_summaryhistoryc                 C   s>   |j D ]}|j}t|j}t|tjr| j| 	| qd S rW   )
itemr   r   loadsr   
isinstancenumbersRealr6   r   )rU   r   r   r/   r)   r1   r1   r2   _save_history  s   
zHandleManager._save_historysr&   klr)   znumbers.Realfloat_vgoal_maxc                 C   s   d}d }|j r	dS |jrt|dkrt| j|| dS |jrAt|dg }| j|}	|	d u s3||	krA|| j|< t| j|| d}|j	rKt|dg }|j
sR|r|rt|dg }
| j|
}|d u sg||kr|| j|
< |j
rxt| j|
| d}|rt| j|| d}|js|r|st|dg }| j|}|d u s||k r|| j|< |jrt| j|| d}|rt| j|| d}|jrt|dg }t|d	g }t|d
g }| j|d}| j|d}||7 }|d7 }|| j|< || j|< t| j|||  d}|S )NFr    Tlastbestmaxmintotnummeang        r   )nonecopylenr3   r5   r   tuplerC   r-   r   r   r   r   )rU   r   r   r)   r   r   updatedbest_keylast_keyold_lastmax_keyold_maxmin_keyold_mintot_keynum_keyavg_keyr   r   r1   r1   r2   _update_summary_metrics  sh   




z%HandleManager._update_summary_metricsdc           	      C   s   |o| d}t|dkr5t|}| j|}|d u s||kr5|| j|< |r,|r5|jjr5|| j|d < dS |s9dS |s=dS t|t	j
sEdS t|rLdS t|}d }|jr[|j|jk}| j|j||||drhdS dS )Nr   r    r   TF)r   r)   r   r   )HasFieldr   r   rD   r-   r   r   r5   r   r   r   mathisnanfloatgoalGOAL_MAXIMIZEr   )	rU   r   r)   r   has_summarycopy_keyold_copyr   r   r1   r1   r2   _update_summary_leafO  s4   

z"HandleManager._update_summary_leafc                 C   s   d dd |D }| j||}t|tr9t|s9d}| D ]\}}| j|d d  |g ||dr6d}q!|S t	rSt|trSt|rSd|v rSd|v rS|d |d< | j
|||d}|S )	N.c                 S      g | ]}| d dqS r   z\.replace.0r/   r1   r1   r2   
<listcomp>w      z6HandleManager._update_summary_list.<locals>.<listcomp>F)r   r)   r   T_latest_artifact_pathartifact_path)joinrA   r-   r   rQ   r   metric_is_wandb_dictr   _update_summary_list$REPLACE_SUMMARY_ART_PATH_WITH_LATESTr   )rU   r   r)   r   
metric_keyr   nknvr1   r1   r2   r   q  s&   z"HandleManager._update_summary_listc                 C   sR   |  D ]"\}}tr&t|tr&t|r&d|v r&d|v r&|d |d< |||< q|S )Nr   r   )r   r   r   rQ   r   r   )rU   r)   r   r   r1   r1   r2   _update_summary_media_objects  s   z+HandleManager._update_summary_media_objectshistory_dictc                 C   s\   | j s| |}| j| t| S g }| D ]\}}| j|g|dr+|| q|S )N)r   r)   )	rA   r   r5   r   listkeysr   r   append)rU   r   updated_keysr/   r)   r1   r1   r2   _update_summary  s   

zHandleManager._update_summaryc                 C   sr   | d}|j }d|_|r$|jj}||d< t||_|d | _	d S | j	|d< t| j	|_|  j	d7  _	d S )NsteprP   r    )
r   r   r   r   r   r   r   r   r   rP   )rU   r   r   has_stepr   r   r1   r1   r2   _history_assign_step  s   


z"HandleManager._history_assign_stephkeyc                 C   sr   | drdS | j D ]*\}}|dr6| |dd r6t }|| |d d|j_||_	|  S qdS )zCCheck for hkey match in glob metrics and return the defined metric._N*r+   	glob_nameF)

startswithrB   r   endswithr   r   
ClearFieldoptionsdefinedname)rU   r   r/   mglobmr1   r1   r2   _history_define_metric  s   



z$HandleManager._history_define_metricupdate_historyc           
      C   s   d dd |D }| j|}|s-| |}|sd S t }|j| d|j_| 	| |j
jrP|jrR|j|vrTt|jg}| j|}	|	d urV|	||j< d S d S d S d S d S )Nr   c                 S   r   r   r   r   r1   r1   r2   r     r   z6HandleManager._history_update_leaf.<locals>.<listcomp>T)r   rA   r-   r   r   metricr   rm   local_handle_defined_metricr   	step_syncstep_metricr   rD   )
rU   r   r)   r   r   r   r   mrr   r   r1   r1   r2   _history_update_leaf  s&   


z"HandleManager._history_update_leafc                 C   sV   t |tr | D ]\}}| j|d d  |g |||d q	d S | j||||d d S )N)r   r)   r   r   )r   rQ   r   _history_update_listr  )rU   r   r)   r   r   r   r   r1   r1   r2   r    s   

z"HandleManager._history_update_listc           	      C   s   | dd u r| || i }| js| jr'| D ]\}}| |g||| q|rE|| | D ]\}}|j }||_	t
||_q2d S d S )NrP   )r-   r   rA   rB   r   r  r   r   r   r   r   r   r   )	rU   r   r   r   r   hvalr/   r)   r   r1   r1   r2   _history_update  s   

zHandleManager._history_updatec                    s   t |jj}|d urd|vr |j|  |j|  |  |j  |}|r? fdd|D } 	| d S d S )N_runtimec                    s   i | ]}| j | qS r1   )r5   r   rY   r1   r2   
<dictcomp>  r   z0HandleManager.handle_history.<locals>.<dictcomp>)
r   dict_from_proto_listr   r   _history_assign_runtimer  ro   r   r   r   )rU   r[   r   r   updated_itemsr1   rY   r2   handle_history  s   

zHandleManager.handle_historyr   c                 C   sj   | j sd S t }| j  D ]\}}|j }||_t||_q|d ur(||j	_
| t|d i | _ d S )N)r   )r7   r   r   r   r   r   r   r   r   r   r   r  r   )rU   r   r   r/   r)   r   r1   r1   r2   r     s   

z$HandleManager._flush_partial_historyc                 C      | j |dd d S NTr|   rw   rx   r1   r1   r2   !handle_request_sender_mark_report-     z/HandleManager.handle_request_sender_mark_reportc                 C   r  r  rw   rx   r1   r1   r2   handle_request_status_report0  r  z*HandleManager.handle_request_status_reportc                 C   s   |j j}d }|dr|jj}d }|dr|jj}t|j	}|d ura|| j
k rT| js>dtd }| jj| d| _d| d| j
 d| d	}| jj| d S || j
kr`|   || _
n|d u rgd}| j| |rw| | j
 d S d S )
Nactionr   zoStep only supports monotonically increasing values, use define_metric to set a custom x axis. For details see: zdefine-metricTz(User provided step: z is less than current step: z. Dropping entry: z).)rh   partial_historyr   r  r{   r   r   r   r	  r   rP   rT   r   urlrS   warningr   r   r7   r   )rU   r[   r  r{   r   r   messager1   r1   r2   handle_request_partial_history3  sB   



z,HandleManager.handle_request_partial_historyc                 C   s   |j }|jD ]4}t|jdkr|jdksJ t|j}n|jf}| j}|d d D ]}|| }q)t|j	||d < q|j
D ]/}t|jdkrT|jdksNJ t|j}n|jf}| j}|d d D ]}|| }qa||d = q>| | j d S )Nr    r+   )r   r   r   
nested_keyr   r   r5   r   r   r   remover   )rU   r[   r   r   r   r'   propr1   r1   r2   handle_summaryY  s(   



zHandleManager.handle_summaryc                 C   sB   | j d ur|  jt | j  7  _t| j|j_| j|dd d S r  )rE   rF   timeintexitruntimero   rx   r1   r1   r2   handle_exit  s   
zHandleManager.handle_exitc                 C   r  r  rw   rx   r1   r1   r2   handle_final  r  zHandleManager.handle_finalc                 C   rv   rW   rw   rx   r1   r1   r2   handle_preempting  rz   zHandleManager.handle_preemptingc                 C   rv   rW   rw   rx   r1   r1   r2   handle_header  rz   zHandleManager.handle_headerc                 C   rv   rW   rw   rx   r1   r1   r2   handle_footer  rz   zHandleManager.handle_footerc                 C   sF   t |}|jjj}|sJ | jsJ |jjj	| j | 
| d S rW   )r   r   rh   attach	attach_idr8   responseattach_responser   r   rt   )rU   r[   rp   r'  r1   r1   r2   handle_request_attach  s   


z#HandleManager.handle_request_attachc                 C   rv   rW   rw   rx   r1   r1   r2   handle_request_log_artifact  rz   z)HandleManager.handle_request_log_artifactc                 C   rv   rW   rw   rx   r1   r1   r2   handle_telemetry  rz   zHandleManager.handle_telemetryc                 C   s   |j j}|sJ |jsJ |j| _|jj d | _t | _|jj	r-|jj
r-|jj
| _nd| _t| j| j| _| jjsE| jjsE| j  | jjsX| jjsX|jj	sX| jjdd tj| j| j|jd| _|jj	sl|jjrq|jj| _t|}| | d S )N    .Ar   T)publish)rN   	run_proto)rh   	run_startr   r8   
start_timeToMicrosecondsrG   r  rE   resumedr   rF   r%   r9   r>   r?   x_disable_statsx_disable_machine_infostartx_disable_metaprober#   	TBWatcherr@   forkedstarting_steprP   r   r   rt   )rU   r[   r0  rp   r1   r1   r2   handle_request_run_start  s@   




z&HandleManager.handle_request_run_startc                 C   sN   | j d urtd | j   | jd ur |  jt | j 7  _t | _d S )Nzstarting system metrics thread)r?   ri   r   r6  rE   rF   r  rx   r1   r1   r2   handle_request_resume  s   



z#HandleManager.handle_request_resumec                 C   sN   | j d urtd | j   | jd ur%|  jt | j 7  _d | _d S d S )Nzstopping system metrics thread)r?   ri   r   r   rE   rF   r  rx   r1   r1   r2   handle_request_pause  s   




z"HandleManager.handle_request_pausec                 C   r  r  rw   rx   r1   r1   r2   handle_request_poll_exit  r  z&HandleManager.handle_request_poll_exitc                 C   rv   rW   rw   rx   r1   r1   r2   handle_request_stop_status  rz   z(HandleManager.handle_request_stop_statusc                 C   rv   rW   rw   rx   r1   r1   r2   handle_request_network_status  rz   z+HandleManager.handle_request_network_statusc                 C   s4   t |}|jjj| j | j  | | d S rW   )	r   r   r(  internal_messages_responsemessagesr   rS   Clearrt   r   r1   r1   r2    handle_request_internal_messages  s   


z.HandleManager.handle_request_internal_messagesc                 C   s   t |}| | d S rW   )r   r   rt   r   r1   r1   r2   handle_request_status  s   
z#HandleManager.handle_request_statusc                 C   sT   t |}| j D ]\}}t }||_t||_|j	j
j| q
| | d S rW   )r   r   r5   r   r   r   r   r   r   r(  get_summary_responser   r   rt   )rU   r[   rp   r   valuer   r1   r1   r2   handle_request_get_summary  s   
z(HandleManager.handle_request_get_summaryc           	      C   s   t |}| jd u rd S | jj}| D ]1\}}g }|D ]}t }|jt|d d  |d |_	|
| q|jjj| t|d q| | d S )Nr   r-  r    )r[   )r   r   r?   bufferr   r   	timestampFromMicrosecondsr  rH  r   r(  get_system_metrics_responsesystem_metricsr   r   rt   )	rU   r[   rp   rJ  r   samplesbuffr   smsr1   r1   r2   !handle_request_get_system_metrics  s   


z/HandleManager.handle_request_get_system_metricsc                 C   s<   t d| | jr|j}| j|j|j|j | | d S )Nzhandling tbrecord: %s)	ri   r   r@   tbrecordr   log_dirsaveroot_dirro   )rU   r[   rS  r1   r1   r2   handle_tbrecord  s
   zHandleManager.handle_tbrecordc                 C   s   |j }|jjr| j|j | n	| j|j | | j|j }|jrG|j| jvrGt|jd}|| j|j< t	 }|j | d|j
_| | | | d S )N)r   T)r   _control	overwriterA   r   r   	MergeFromr  r   r   rm   r   ro   )rU   r[   r   r   r  r1   r1   r2   r     s   
z$HandleManager._handle_defined_metricc                 C   sB   |j }|jjr| j|j | n	| j|j | | | d S rW   )r   rX  rY  rB   r   r   rZ  ro   )rU   r[   r   r1   r1   r2   _handle_glob_metric(  s
   z!HandleManager._handle_glob_metricc                 C   s0   |j jr| | dS |j jr| | dS dS )a  Handle MetricRecord.

        Walkthrough of the life of a MetricRecord:

        Metric defined:
        - run.define_metric() parses arguments create wandb_metric.Metric
        - build MetricRecord publish to interface
        - handler (this function) keeps list of metrics published:
          - self._metric_defines: Fully defined metrics
          - self._metric_globs: metrics that have a wildcard
        - dispatch writer and sender thread
          - writer: records are saved to persistent store
          - sender: fully defined metrics get mapped into metadata for UI

        History logged:
        - handle_history
        - check if metric matches _metric_defines
        - if not, check if metric matches _metric_globs
        - if _metric globs match, generate defined metric and call _handle_metric

        Args:
            record (Record): Metric record to process
        N)r   r   r   r   r[  rx   r1   r1   r2   handle_metric0  s
   zHandleManager.handle_metricc              	   C   s   t |}| j D ]@\}}t }||_| }tdd |D r3z|j	| W n t
y2   Y nw tdd |D rB|j	| |jjj| q
| | d S )Nc                 s       | ]	}t |tjV  qd S rW   )r   r   Integralr   ir1   r1   r2   	<genexpr>S      z?HandleManager.handle_request_sampled_history.<locals>.<genexpr>c                 s   r]  rW   )r   r   r   r_  r1   r1   r2   ra  Y  rb  )r   r   r6   r   r   r   r-   all
values_intextend
ValueErrorvalues_floatr(  sampled_history_responser   r   rt   )rU   r[   rp   r   sampledr   valuesr1   r1   r2   handle_request_sampled_historyM  s   
z,HandleManager.handle_request_sampled_historyc                 C   s   dS )zmHandle a keepalive request.

        Keepalive is a noop, we just want to verify transport is alive.
        Nr1   rx   r1   r1   r2   handle_request_keepalive^  s    z&HandleManager.handle_request_keepalivec                 C   r  r  rw   rx   r1   r1   r2   handle_request_run_statusd  r  z'HandleManager.handle_request_run_statusc                 C   s"   t |}| | | j  d S rW   )r   r   rt   r<   setr   r1   r1   r2   handle_request_shutdowng  s   

z%HandleManager.handle_request_shutdownc                 C   s6   t d | jd ur| j  | jr| j  d S d S )Nzshutting down handler)ri   r   r?   r   r@   rY   r1   r1   r2   r   m  s   


zHandleManager.finishc                 C   s   | j jddS )NT)block)r:   r-   rY   r1   r1   r2   __next__u  rz   zHandleManager.__next__c                 C   sX   d|vrd S | j d u r|d | _ |d | j  |d< |j }d|_t||j |_d S )N
_timestampr  )rG   r   r   r   r   r   r   )rU   r   r   r   r1   r1   r2   r
  z  s   


z%HandleManager._history_assign_runtime)F)r*   NrW   )b__name__
__module____qualname__SummaryDict__annotations__r   r.   r"   rR   r   r   r   r$   r   r   r%   r#   r9  r   r   r   r!   ContextKeeperrV   r  rZ   r   rd   rk   boolro   r   rt   ru   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
   r   r   r   r   r   r   r   r  r  r  r  r   r  r  r  r  r!  r"  r#  r$  r%  r*  r+  r,  r<  r=  r>  r?  r@  rA  rE  rF  rI  rR  rW  r   r[  r\  rk  rl  rm  ro  r   rq  nextr
  r1   r1   r1   r2   r4   P   sn  
 
	
'	



C
&
"










&*'		

r4   )<__doc__r   loggingr   r   r  collectionsr   queuer   	threadingr   typingr   r   r   r   r	   r
   r   r   r   r   wandb.errors.linksr   wandb.proto.wandb_internal_pb2r   r   r   r   r   r   r   r   r   r   r   r   interface.interface_queuer   libr   r   r  r!   r"   r#   settings_staticr$   system.system_monitorr%   r&   r.   rv  	getLoggerrs  ri   r   r3   r4   r1   r1   r1   r2   <module>   s0    08
&