o
    i                     @   s   d dl Z d dlmZ d dlZd dlmZ d dlmZ e	de
  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d ZdS )    N)wrap_function_wrapper)config)unwraplogurureturnc                   C   s   t tddS )N__version__ )getattrr    r
   r
   Y/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/contrib/internal/loguru/patch.pyget_version   s   r   c                   C   s   ddiS )Nr   z>=0.4.0r
   r
   r
   r
   r   _supported_versions   s   r   c                 C   s"   t js| S tj }| | |S )N)r   _logs_injectionddtracetracerget_log_correlation_contextupdate)
event_dictevent_dd_attributesr
   r
   r   _tracer_injection   s
   

r   c                    sF   | dd   |_ s| |i |S  fdd}||d< | |i |S )Npatcherc                    s    |  |  t| d  d S Nextrar   r   recordoriginal_patcherr
   r   _wrapped_patcher'   s   z&_w_configure.<locals>._wrapped_patcher)get_dd_original_patcher)funcinstanceargskwargsr   r
   r   r   _w_configure    s   r%   c                   C   s:   t tddrdS dt_tjjdd d ttjdt dS )	z
    Patch ``loguru`` module for injection of tracer information
    by appending a patcher before the add function ``loguru.add``
    _datadog_patchFNTc                 S   s   |  t| d S r   r   r   r
   r
   r   <lambda>8   s    zpatch.<locals>.<lambda>r   	configure)r	   r   r&   loggerr)   _wr%   r
   r
   r
   r   patch/   s
   r,   c                   C   sH   t tddr dt_ttjd ttjdr"tjjtjjd d S d S d S )Nr&   Fr)   r    r(   )r	   r   r&   _ur*   hasattrr)   r    r
   r
   r
   r   unpatch=   s   r/   )r   wraptr   r+   r   r   $ddtrace.contrib.internal.trace_utilsr   r-   _adddictstrr   r   r   r%   r,   r/   r
   r
   r
   r   <module>   s    	