a
    ;g                     @   s   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	m
Z
 d dlmZmZmZ d dlmZ d dlmZmZmZ eeZG d	d
 d
Ze	dddZdd Zdd ZdS )    )cached_property)	getLogger)environ)get_dist_dependency_conflicts)
BaseDistroDefaultDistro)OTEL_PYTHON_CONFIGURATOR%OTEL_PYTHON_DISABLED_INSTRUMENTATIONSOTEL_PYTHON_DISTRO)__version__)
EntryPointdistributionsentry_pointsc                   @   s8   e Zd Zedd ZedddZeedddZdS )	_EntryPointDistFinderc                    s    fddt  D S )Nc                    s$   i | ]}|j D ]} ||qqS  )r   _key_for).0distepselfr   /var/www/html/micrositios/openai-assistant/venv/lib/python3.9/site-packages/opentelemetry/instrumentation/auto_instrumentation/_load.py
<dictcomp>)   s   
z2_EntryPointDistFinder._mapping.<locals>.<dictcomp>)r   r   r   r   r   _mapping'   s    
z_EntryPointDistFinder._mappingentry_pointc                 C   s&   t |dd }|r|S | j| |S )Nr   )getattrr   getr   )r   r   r   r   r   r   dist_for/   s    z_EntryPointDistFinder.dist_forc                 C   s   | j  d| j d| j S )N:)groupnamevaluer   r   r   r   r   6   s    z_EntryPointDistFinder._key_forN)	__name__
__module____qualname__r   r   r   r   staticmethodr   r   r   r   r   r   &   s
   
r   )returnc                  C   s   t td } tddD ]}zT| d u s.| |jkrl|  }t|tsTt	d|j W qt	d|j |W   S W q t
y } ztd|j |W Y d }~qd }~0 0 qt S )NZopentelemetry_distror    z+%s is not an OpenTelemetry Distro. Skippingz"Distribution %s will be configuredz$Distribution %s configuration failed)r   r   r
   r   r!   load
isinstancer   _loggerdebug	Exception	exceptionr   )Zdistro_namer   distroexcr   r   r   _load_distro;   s*    

r1   c                 C   s>  t tg }t }t|tr4|d}dd |D }tddD ]}|   q>tddD ]}|j	|v rvt
d|j	 qXzJ||}t|}|rt
d|j	| W qX| j|d	d
 t
d|j	 W qX ty   t
d|j	 Y qXY qX ty } zt
d|j	 |W Y d }~qXd }~0 0 qXtddD ]}|   q(d S )N,c                 S   s   g | ]}|  qS r   )strip)r   xr   r   r   
<listcomp>Z       z'_load_instrumentors.<locals>.<listcomp>Zopentelemetry_pre_instrumentr(   Zopentelemetry_instrumentorz&Instrumentation skipped for library %szSkipping instrumentation %s: %sT)Zskip_dep_checkzInstrumented %sz#Importing of %s failed, skipping itzInstrumenting of %s failedZopentelemetry_post_instrument)r   r   r	   r   r*   strsplitr   r)   r!   r+   r,   r   r   Zload_instrumentorImportErrorr.   r-   )r/   Zpackage_to_excludeZentry_point_finderr   Zentry_point_distconflictr0   r   r   r   _load_instrumentorsT   sF    



r;   c                  C   s   t td } d }tddD ]}|d ur8td|j| qzB| d u sL| |jkrf|  jt	d |j}ntd|j| t W q t
y } ztd|j |W Y d }~qd }~0 0 qd S )NZopentelemetry_configuratorr(   z1Configuration of %s not loaded, %s already loaded)Zauto_instrumentation_versionz6Configuration of %s not loaded because %s is set by %szConfiguration of %s failed)r   r   r   r   r+   warningr!   r)   	configurer   r-   r.   )Zconfigurator_nameZ
configuredr   r0   r   r   r   _load_configurators   s8    
r>   N)	functoolsr   loggingr   osr   Z*opentelemetry.instrumentation.dependenciesr   Z$opentelemetry.instrumentation.distror   r   Z3opentelemetry.instrumentation.environment_variablesr   r	   r
   Z%opentelemetry.instrumentation.versionr   Z&opentelemetry.util._importlib_metadatar   r   r   r#   r+   r   r1   r;   r>   r   r   r   r   <module>   s   3