o
    i[                  	   @   s   d dl 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d
eeedddd dZdefddZdeeef fddZdd Zdd Zdd ZdS )    N)config)_get_config)asbool   )SETTINGS_DISTRIBUTED_TRACING)SETTINGS_SERVICE)DD_TWEEN_NAME)trace_pyramidpyramidDD_PYRAMID_DISTRIBUTED_TRACINGTdefault)distributed_tracing_datadog_patchreturnc                  C   s   dd l m}  t| tjS )Nr   )importlib.metadatametadatastrversionr
   __package__)importlib_metadata r   Z/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/contrib/internal/pyramid/patch.pyget_version   s   r   c                   C   s   ddiS )Nr
   z>=1.10r   r   r   r   r   _supported_versions   s   r   c                  C   s2   t ttdrdS tttd tj} | ddt dS )z+
    Patch pyramid.config.Configurator
    FNTzpyramid.configzConfigurator.__init__)getattrr
   DD_PATCHsetattrwraptwrap_function_wrappertraced_init)_wr   r   r   patch#   s
   r"   c                 C   s   | di }tjdd}t|ttjji}|| t| |	dd s0ddl
m} |dd|d< ||d< | |i | t| d S )	Nsettingsr
   r   packager   )caller_package   )level)popr   _get_servicer   r   r
   r   updateinsert_tween_if_neededgetpyramid.pathr%   r	   )wrappedinstanceargskwargsr#   servicetrace_settingsr%   r   r   r   r    .   s   
r    c                 C   st   |  d}|r| rt|v rd S |tjj}|dkr&|d t | d< d S |d | t d ||d   | d< d S )Nzpyramid.tweens
)r,   stripr   findr
   tweensEXCVIEW)r#   r8   idxr   r   r   r+   K   s   
(r+   )r
   pyramid.configr   ddtracer   !ddtrace.internal.settings._configr   ddtrace.internal.utils.formatsr   	constantsr   r   tracer   r	   _adddictr   r   r   r   r"   r    r+   r   r   r   r   <module>   s,    