o
    ir
                     @   s   d 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
 ddlmZ ddlmZ dd	lmZ eeZG d
d de
jZdS )z4Simple wrapper around stack native extension module.    N)core)stack)config)	collector)_task)	threading)Tracerc                       sh   e Zd ZdZdZddeje deje f fddZ	de
fd	d
ZdddZdddZdddZ  ZS )StackCollectorzExecution stacks collector.)nframestracerNr
   r   c                    s(   t    |d ur|ntj| _|| _d S )N)super__init__r   
max_framesr
   r   )selfr
   r   	__class__ U/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/profiling/collector/stack.pyr      s   

zStackCollector.__init__returnc                    sv    j j}dd  j D }ddd | D } fdd jD }ddd | D }| d| d| d	S )
Nc                 S   s    i | ]\}}| d s||qS _)
startswith.0kvr   r   r   
<dictcomp>"   s     z+StackCollector.__repr__.<locals>.<dictcomp>z, c                 s   "    | ]\}}| d |V  qdS =Nr   r   r   r   r   	<genexpr>#        z*StackCollector.__repr__.<locals>.<genexpr>c                    s"   i | ]}| d s|t |qS r   )r   getattr)r   slotr   r   r   r   %   s   " c                 s   r   r   r   r   r   r   r   r    &   r!   ())r   __name____dict__itemsjoin	__slots__)r   
class_nameattrs	attrs_str
slot_attrsslot_attrs_strr   r$   r   __repr__    s   zStackCollector.__repr__c                 C   sB   t   | jd urtdtj ttjj	 t
  t  d S )N!ddtrace.context_provider.activate)r   initialize_gevent_supportr   r   onr   	link_spanset_adaptive_samplingr   adaptive_samplingstartr   
init_stackr$   r   r   r   _init*   s   
zStackCollector._initc                 C   s    t d |   t d d S )Nz!Profiling StackCollector startingz Profiling StackCollector started)LOGdebugr:   r$   r   r   r   _start_service;   s   
zStackCollector._start_servicec                 C   s8   t d | jd urtdtj t d t  d S )Nz!Profiling StackCollector stoppingr2   z Profiling StackCollector stopped)r;   r<   r   r   reset_listenersr   r5   stopr$   r   r   r   _stop_serviceA   s
   


zStackCollector._stop_service)NN)r   N)r'   
__module____qualname____doc__r+   typingOptionalintr   r   strr1   r:   r=   r@   __classcell__r   r   r   r   r	      s    $


r	   )rC   loggingrD   ddtrace.internalr   "ddtrace.internal.datadog.profilingr   #ddtrace.internal.settings.profilingr   ddtrace.profilingr   ddtrace.profiling.collectorr   r   ddtrace.tracer   	getLoggerr'   r;   	Collectorr	   r   r   r   r   <module>   s    
