o
    Á¿i¯	  ã                   @   sÌ   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
 d dlmZ eeƒZG dd	„ d	eeƒZG d
d„ deeƒZdd„ Zedefdd„ƒZedefdd„ƒZdefdd„Zdedefdd„ZdS )é    )ÚEnumN)ÚSUITE)ÚEVENT_TYPES)Ú
get_logger)Útelemetry_writer)ÚTELEMETRY_NAMESPACEc                   @   s   e Zd ZdZdZdZdS )ÚITR_TELEMETRYÚitr_skippedÚitr_unskippableÚitr_forced_runN)Ú__name__Ú
__module__Ú__qualname__ÚSKIPPEDÚUNSKIPPABLEÚ
FORCED_RUN© r   r   ú`/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/internal/ci_visibility/telemetry/itr.pyr      s    r   c                   @   s$   e Zd ZdZdZdZdZdZdZdS )ÚSKIPPABLE_TESTS_TELEMETRYzitr_skippable_tests.requestzitr_skippable_tests.request_msz"itr_skippable_tests.request_errorsz"itr_skippable_tests.response_bytesz"itr_skippable_tests.response_testsz#itr_skippable_tests.response_suitesN)	r   r   r   ÚREQUESTÚ
REQUEST_MSÚREQUEST_ERRORSÚRESPONSE_BYTESÚRESPONSE_TESTSÚRESPONSE_SUITESr   r   r   r   r      s    r   c                    s    t  ˆ ¡dtf‡ fdd„ƒ}|S )NÚ
event_typec                    s,   | t jt jfvrt dˆ j| ¡ d S ˆ | ƒS )Nz/%s can only be used for suites or tests, not %s)r   r   ÚTESTÚlogÚdebugr   ©r   ©Úfuncr   r   Úwrapper   s   z0_enforce_event_is_test_or_suite.<locals>.wrapper)Ú	functoolsÚwrapsÚstr)r!   r"   r   r    r   Ú_enforce_event_is_test_or_suite   s   r&   r   c                 C   ó,   t  d| ¡ t tjtjdd| jff¡ d S )Nz&Recording itr skipped telemetry for %sé   r   )	r   r   r   Úadd_count_metricr   ÚCIVISIBILITYr   r   Úvaluer   r   r   r   Úrecord_itr_skipped(   ó   ÿr,   c                 C   r'   )Nz*Recording itr unskippable telemetry for %sr(   r   )	r   r   r   r)   r   r*   r   r   r+   r   r   r   r   Úrecord_itr_unskippable0   r-   r.   c                 C   r'   )Nz)Recording itr forced run telemetry for %sr(   r   )	r   r   r   r)   r   r*   r   r   r+   r   r   r   r   Úrecord_itr_forced_run8   s   ÿr/   Úskippable_countÚskipping_levelc                 C   s(   |t krtjntj}t tj|| ¡ d S )N)r   r   r   r   r   r)   r   r*   )r0   r1   Úskippable_count_metricr   r   r   Úrecord_skippable_count?   s
   ÿýr3   )Úenumr   r#   Ú(ddtrace.internal.ci_visibility.constantsr   Ú2ddtrace.internal.ci_visibility.telemetry.constantsr   Úddtrace.internal.loggerr   Úddtrace.internal.telemetryr   Ú$ddtrace.internal.telemetry.constantsr   r   r   r%   r   r   r&   r,   r.   r/   Úintr3   r   r   r   r   Ú<module>   s"    	