o
    i|                     @   sd   d dl Z d dlm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
 eG dd de	ZdS )	    N)	dataclass)FunctionLocationMixin)LineLocationMixin)Signal)SignalTrackc                   @   s   e Zd ZU dZdZejZej	e e
d< eejdeje fddZejdefddZedeeejf fd	d
Zdeeejf fddZedeeejf fddZdS )	LogSignalzA signal that also emits a log message.

    Some signals might require sending a log message along with the base signal
    data. For example, all the collected errors from expression evaluations
    (e.g. conditions) might need to be reported.
    snapshot	__track__returnc                 C      dS )zThe log message to emit.N selfr   r   Q/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/debugging/_signal/log.pymessage   s   zLogSignal.messagec                 C   r   )z-Whether the signal has a log message to emit.Nr   r   r   r   r   has_message      zLogSignal.has_messagec                 C   s   i S )zAExtra data to include in the snapshot portion of the log message.r   r   r   r   r   data"   r   zLogSignal.datac                 C   sX   | j }t|trt|jt|jgd}nt|tr"|j|jd}ni S |j	|j
|dS )N)filelines)typemethod)idversionlocation)probe
isinstancer   strresolved_source_fileliner   module
func_qnameprobe_idr   )r   r   r   r   r   r   _probe_details'   s   


zLogSignal._probe_detailsc                 C   s@   | j t| jd dd | jD |  d| jd}|| j |S )Ng     @@c                 S   s   g | ]	}|j |jd qS )exprr   r$   ).0er   r   r   
<listcomp>A   s    z&LogSignal.snapshot.<locals>.<listcomp>python)r   	timestampevaluationErrorsr   languager   )uuidintr*   errorsr#   __type__updater   )r   	full_datar   r   r   r   <   s   zLogSignal.snapshotN)__name__
__module____qualname____doc__r0   r   LOGSr	   tClassVar__annotations__propertyabcabstractmethodOptionalr   r   boolr   dictAnyr   r#   r   r   r   r   r   r      s   
 r   )r<   dataclassesr   typingr8   ddtrace.debugging._probe.modelr   r   ddtrace.debugging._signal.modelr   r   r   r   r   r   r   <module>   s    