o
    i	                     @   sb  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 d d	lmZ d d
lmZ d dlmZ d dlmZ 	ddededee dee dejf
ddZ		ddedef deegejf deeejegeeeedf f f  deeejegeeeedf f f  deedef edeeeef f f f
ddZdS )    N)Any)Callable)	Coroutine)Optional)Union)config)Pin)int_service)	SpanTypes)core)schematize_cloud_faas_operationcontext_namepinresourceheadersreturnc                 C   s6   t dddd}tj| |||t|tjtj|tjdd	S )Nzazure.functions.invokeazure	functions)cloud_providercloud_serviceT)	span_namer   r   service	span_typedistributed_headersintegration_configactivate_distributed_headers)r   r   context_with_datar	   r   azure_functionsr
   
SERVERLESS)r   r   r   r   operation_name r    b/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/contrib/internal/azure_functions/utils.pycreate_context   s   
r"   func.context_factorypre_dispatchpost_dispatchc                    sf   t rtdtdtdtf fdd}|S tdtdtdtf fdd}|S )Nargskwargsr   c                     s    |8}rt j||  d }z| i |I d H }|W r)t j||  W  d    S r<t j||  w w 1 s@w   Y  d S Nr   dispatchr'   r(   ctxresr$   r#   r&   r%   r    r!   async_wrapper,   s   
	z1wrap_function_with_tracing.<locals>.async_wrapperc                     s    |5}rt j||  d }z| i |}|W r%t j||  W  d    S r8t j||  w w 1 s<w   Y  d S r)   r*   r,   r/   r    r!   wrapper<   s   
	z+wrap_function_with_tracing.<locals>.wrapper)inspectiscoroutinefunction	functoolswrapsr   )r#   r$   r%   r&   r0   r1   r    r/   r!   wrap_function_with_tracing$   s   
""r6   )NN)r4   r2   typingr   r   r   r   r   ddtracer   ddtrace._trace.pinr   $ddtrace.contrib.internal.trace_utilsr	   ddtrace.extr
   ddtrace.internalr   ddtrace.internal.schemar   strdictExecutionContextr"   tupler6   r    r    r    r!   <module>   sL    

$$$