o
    g}                     @   s  U d dl mZmZ d dlmZ d dlmZ d dlmZm	Z	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 eeZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZ G dd deZ!e Z"da#e	e e$d< e! Z%defddZ&ded e'ddfd!d"Z(deddfd#d$Z)				d+d%e*d&e	e* d'e	e* d(e	e de	e ddfd)d*Z+dS ),    )ABCabstractmethod)	getLogger)environ)AnyOptionalcast)	LogRecord)SeverityNumber)"_OTEL_PYTHON_EVENT_LOGGER_PROVIDER)
TraceFlags)Once)_load_provider)
Attributesc                       sj   e Zd Z							ddedee dee dee ded dee d	ee d
ee f fddZ	  Z
S )EventNname	timestamptrace_idspan_idtrace_flagsr   bodyseverity_number
attributesc	           
   	      s<   |pi }i |d|i}	t  j|||||||	d || _d S )Nz
event.name)r   r   r   r   r   r   r   )super__init__r   )
selfr   r   r   r   r   r   r   r   event_attributes	__class__ U/var/www/visachat/venv/lib/python3.10/site-packages/opentelemetry/_events/__init__.pyr   "   s   
	zEvent.__init__)NNNNNNN)__name__
__module____qualname__strr   intr   r
   r   r   __classcell__r   r   r   r    r   !   s2    	r   c                
   @   sH   e Zd Z			ddedee dee dee fddZedddZdS )EventLoggerNr   version
schema_urlr   c                 C   s   || _ || _|| _|| _d S N)_name_version_schema_url_attributesr   r   r(   r)   r   r   r   r    r   <   s   
zEventLogger.__init__eventr   returnc                 C      dS )z-Emits a :class:`Event` representing an event.Nr   r   r0   r   r   r    emitH       zEventLogger.emitNNN)r0   r   r1   N)	r!   r"   r#   r$   r   r   r   r   r4   r   r   r   r    r'   ;   s    
r'   c                   @   s   e Zd ZdeddfddZdS )NoOpEventLoggerr0   r1   Nc                 C   s   d S r*   r   r3   r   r   r    r4   N   s   zNoOpEventLogger.emit)r!   r"   r#   r   r4   r   r   r   r    r7   M   s    r7   c                
       sf   e Zd Z			ddedee dee dee f fddZedefd	d
Z	de
ddfddZ  ZS )ProxyEventLoggerNr   r(   r)   r   c                    s(   t  j||||d d | _t|| _d S )N)r   r(   r)   r   )r   r   _real_event_loggerr7   _noop_event_loggerr/   r   r   r    r   S   s   zProxyEventLogger.__init__r1   c                 C   s6   | j r| j S trt| j| j| j| j| _ | j S | jS r*   )r9   _EVENT_LOGGER_PROVIDERget_event_loggerr+   r,   r-   r.   r:   )r   r   r   r    _event_loggerc   s   zProxyEventLogger._event_loggerr0   c                 C   s   | j | d S r*   )r=   r4   r3   r   r   r    r4   r   s   zProxyEventLogger.emitr6   )r!   r"   r#   r$   r   r   r   propertyr'   r=   r   r4   r&   r   r   r   r    r8   R   s     r8   c                   @   sB   e Zd Ze			d	dedee dee dee def
ddZdS )
EventLoggerProviderNr   r(   r)   r   r1   c                 C   r2   )z'Returns an EventLoggerProvider for use.Nr   r/   r   r   r    r<   w   r5   z$EventLoggerProvider.get_event_loggerr6   )	r!   r"   r#   r   r$   r   r   r'   r<   r   r   r   r    r?   v   s     r?   c                   @   >   e Zd Z			d	dedee dee dee def
ddZdS )
NoOpEventLoggerProviderNr   r(   r)   r   r1   c                 C   s   t ||||dS N)r(   r)   r   )r7   r/   r   r   r    r<      s   z(NoOpEventLoggerProvider.get_event_loggerr6   r!   r"   r#   r$   r   r   r'   r<   r   r   r   r    rA          rA   c                   @   r@   )
ProxyEventLoggerProviderNr   r(   r)   r   r1   c                 C   s&   t rt j||||dS t||||dS rB   )r;   r<   r8   r/   r   r   r    r<      s   z)ProxyEventLoggerProvider.get_event_loggerr6   rC   r   r   r   r    rE      rD   rE   Nr;   r1   c                  C   s4   t d u rttvr
tS ttd} t| dd tdt S )Nevent_logger_providerFlogr?   )r;   r   r   _PROXY_EVENT_LOGGER_PROVIDERr   _set_event_logger_providerr   rF   r   r   r    get_event_logger_provider   s   
rL   rF   rH   c                    s6   d fdd}t |}|r|std d S d S d S )Nr1   c                      s    a d S r*   )r;   r   rK   r   r    set_elp   s   z+_set_event_logger_provider.<locals>.set_elpz8Overriding of current EventLoggerProvider is not allowed)r1   N)_EVENT_LOGGER_PROVIDER_SET_ONCEdo_once_loggerwarning)rF   rH   rM   did_setr   rK   r    rJ      s   
rJ   c                 C   s   t | dd d S )NTrG   )rJ   rK   r   r   r    set_event_logger_provider   s   rS   r   r(   r)   r   c                 C   s   |d u rt  }|| |||S r*   )rL   r<   )r   r(   r)   r   rF   r   r   r    r<      s   r<   )NNNN),abcr   r   loggingr   osr   typingr   r   r   opentelemetry._logsr	   opentelemetry._logs.severityr
   #opentelemetry.environment_variablesr   opentelemetry.trace.spanr   opentelemetry.util._oncer   opentelemetry.util._providersr   opentelemetry.util.typesr   r!   rP   r   r'   r7   r8   r?   rA   rE   rN   r;   __annotations__rI   rL   boolrJ   rS   r$   r<   r   r   r   r    <module>   sh   $

