o
    ig                     @   s   d dl Z 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Z	ej
ddd  Zdkr:ed	d
 e	D neeadejv sHdejv rXd dlZejdrXede dddZdS )    N)ModuleWatchdogis_module_installed)asbool)gevent$DD_UNLOAD_MODULES_FROM_SITECUSTOMIZEauto)defaultc                 c   s    | ]}t |V  qd S Nr   ).0m r   M/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/bootstrap/cloning.py	<genexpr>   s    r   r   zgevent.monkey	threadingzLoading ddtrace after gevent.monkey.patch_all() is not supported and is likely to break the application. Use ddtrace-run to fix this, or import ddtrace.auto before calling gevent.monkey.patch_all().returnc                     s   t sd S dtdd fdd} dd l dd l tg d}t fddtjD D ]tfd	d|D r5q'|  q'tg d
}|D ]}ttjD ]|ksV	|d rZ|  qIqBt
ddd }da d S )Nmodule_namer   c                 S   sV   t j| }|d u rd S t|dsd S t|dd }|d ur%t|ddr%d S t j| = d S )N__spec___initializingF)sysmodulesgethasattrgetattr)r   modulespecr   r   r   drop'   s   
z$cleanup_loaded_modules.<locals>.dropr   )atexitcopyregddtrace
concurrentzimportlib._bootstraptyping	_operatorresre_constantsloggingattrgooglezgoogle.protobufwraptbytecodepathlibc                 3   s    | ]
}| j vr|V  qd S r
   )LOADED_MODULESr   _)r   r   r   r   V   s    z)cleanup_loaded_modules.<locals>.<genexpr>c                 3   s&    | ]} |kp  |d  V  qdS ).N)
startswithr,   )r   r   r   r   W   s   $ )timezconcurrent.futuresr   _threadr.   r   c                 S   s
   | t _d S r
   )r%   r   )r   r   r   r   r-   u   s   
z!cleanup_loaded_modules.<locals>._F)enabledstrddtrace.internal.httpddtrace.internal.uds	frozensetlistr   r   anyr/   r   after_module_imported)r   KEEP_MODULESUNLOAD_MODULESur-   r   )r   r   r   cleanup_loaded_modules!   s0   

r=   )r   N)r%   osr   warningsddtrace.internal.moduler   r   ddtrace.internal.utils.formatsr   MODULES_REQUIRING_CLEANUPgetenvlower_unload_modulesr8   r2   r   gevent.monkeyr   monkeyis_module_patchedwarnRuntimeWarningr=   r   r   r   r   <module>   s(    