o
    -wi
                     @   s   U d dl Z d dlZd dlmZ d dlmZmZmZmZm	Z	m
Z
mZ d dlZd dlmZ d dlmZ er9ddlmZ dZeed	< G d
d dZ	dde	d de	e dee fddZe dZdee deeef fddZddede
e fddZg dZdS )    N)TracebackType)TYPE_CHECKINGContextManagerDictListOptionalSetType)Imports)TelemetryRecord   )	wandb_runz@wandbcode{_LABEL_TOKENc                   @   s~   e Zd ZU ed ed< eed< 		dded dee ddfdd	Zdefd
dZdeee	  dee	 dee
 ddfddZdS )_TelemetryObjectwandb_run.Run_run_objNrunobjreturnc                 C   s   |pt j| _|p
t | _d S N)wandbr   r   r   r   )selfr   r    r   T/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/wandb/sdk/lib/telemetry.py__init__   s   z_TelemetryObject.__init__c                 C   s   | j S r   )r   )r   r   r   r   	__enter__   s   z_TelemetryObject.__enter__exctypeexcinstexctbc                 C   s   | j sd S | j | j d S r   )r   _telemetry_callbackr   )r   r   r   r   r   r   r   __exit__"   s   z_TelemetryObject.__exit__NN)__name__
__module____qualname__r   __annotations__r   r   r   r	   BaseExceptionr   r!   r   r   r   r   r      s,   
 

r   r   r   r   r   c                 C   s   t | |dS )Nr   r   )r   r(   r   r   r   context-   s   r)   z((?P<code>[a-zA-Z0-9_-]+)[,}](?P<rest>.*)linesc           
      C   s   d}i }| D ]L}| t}|dk r|r |S qd}||tt d  }t|}|r:|ddd|d< |d}td|}|D ]\}}	|		d	dd||< qBq|S )
NFr   Tcode-_restz;([a-zA-Z0-9_]+)\s*=\s*("[a-zA-Z0-9_-]*"|[a-zA-Z0-9_-]*)[,}]")
findr   lenMATCH_REmatchgroupreplacerefindallstrip)
r*   seenretlineidx	label_strrtokenskvr   r   r   _parse_label_lines6   s,   


rB   Fonly_importedc                 C   s.   dd t jjD }| rttj}||S |S )Nc                 S   s   h | ]}|j |jkr|jqS r   )type	TYPE_BOOLname).0descr   r   r   	<setcomp>T   s
    z)list_telemetry_imports.<locals>.<setcomp>)TelemetryImports
DESCRIPTORfieldssetsysmodulesintersection)rC   import_telemetry_setimported_modules_setr   r   r   list_telemetry_importsS   s   

rS   )rJ   r   r)   rS   r"   )F)r6   rN   typesr   typingr   r   r   r   r   r   r	   r   wandb.proto.wandb_telemetry_pb2r
   rJ   r    r   r   strr&   r   r)   compiler2   rB   boolrS   __all__r   r   r   r   <module>   s.   
 $

