o
    i                     @   s  d 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 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Zejjded ededef dZdedeegef fddZedeZedeZedeZedeZdS )zPublic API for User events    )wraps)Any)Callable)TypeVar)cast)_metrics)block_request)block_request_if_user_blocked)should_block_user)track_custom_event)track_user_login_failure_event)track_user_login_success_event)track_user_signup_eventNset_user_for_asm
block_userF.)bound
event_namereturnc                    s   dt dt f fdd}|S )z
    Factory function to create a telemetry report decorator.
    This decorator will report the event name when the decorated function is called.
    funcr   c                    s.   t  dtdtdtf fdd}tt|S )Nargskwargsr   c                     s   t  d | i |S )NF)r   _report_ato_sdk_usage)r   r   )r   r    W/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/appsec/trace_utils/__init__.pywrapper    s   z=_telemetry_report_factory.<locals>.decorator.<locals>.wrapper)r   r   r   r   )r   r   r   )r   r   	decorator   s   
z,_telemetry_report_factory.<locals>.decorator)r   )r   r   r   r   r   _telemetry_report_factory   s   r   customlogin_successlogin_failuresignup)__doc__	functoolsr   typingr   r   r   r   ddtrace.appsecr   ddtrace.appsec._trace_utilsr   r	   r
   r   r   r   r   ddtrace.internal.coreddtraceinternalcoreonr   strr   r   r   r   r   <module>   s,    