o
    i                     @   s  U 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	Z	dgZ
ejZd(d
efddZd(d
efddZeeef Zded
efddZded
ee fddZeeee eee f ed f ZdZeed< ded
efddZded
efddZedkrd dlm Z  nd dlm Z  d)ddZ!e!e _"dd Z#d ed
efd!d"Z$e%e	d#re	j&Z'eed$< ne	j(Z'd%e)d
efd&d'Z*dS )*    N)TracebackType)Any)Optional)Text)Unionmaybe_stringifyutf-8ignorereturnc                 C   s2   t | tr| S t | tr| ||S td| j Nz%Expected str or bytes but received %r)
isinstancestrbytesdecode	TypeError	__class__sencodingerrors r   K/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/internal/compat.pyensure_text   s
   

r   c                 C   s2   t | tr| S t | tstd| j | ||S r   )r   r   r   r   r   encoder   r   r   r   ensure_binary   s
   

r   objc                 C   s   t | to
t | t S )zEHelper to determine if the provided ``obj`` is an integer type or not)r   intboolr   r   r   r   
is_integer&   s   r   c                 C   s   | d urt | S d S N)r   r   r   r   r   r   0   s   )NNNNO_EXCEPTIONipc                 C   s*   z
t t|  W dS  ty   Y dS w )NTF)	ipaddress
ip_addressr   	Exception)r"   r   r   r   is_valid_ip<   s   r&   c                 C   s   t t| }|jS )z\
    is_global is Python 3+ only. This could raise a ValueError if the IP is not valid.
    )r#   r$   r   	is_global)r"   	parsed_ipr   r   r   ip_is_globalE   s   r)   )   	      )singledispatchmethodc                 C   s*   t |drt|d|jj | jj||dS )N__func____annotations__)func)hasattrsetattrr.   r/   
dispatcherregister)selfclsmethodr   r   r   	_registerU   s   
r8   c                  C   s"   dd l } | tjdkrdS dS )Nr   win32forkspawn)multiprocessingget_contextsysplatform)r<   r   r   r   get_mp_context]   s   r@   namec              	   C   st   | dkrddl m} | t | < n| dkr!ddl m} | t | < zt |  W S  ty9   tdt d|  dw )	NPYTHON_VERSIONr   )python_versionPYTHON_INTERPRETER)python_implementationzmodule 'z' has no attribute '')r?   rC   globalsrE   KeyErrorAttributeError__name__)rA   rC   rE   r   r   r   __getattr__c   s   rK   BaseObjectProxywrapt_classoc                 C   s
   t | tS r    )r   rM   )rN   r   r   r   
is_wrapted|   s   
rO   )r   r	   r    )+r#   r>   typesr   typingr   r   r   r   wrapt__all__version_infoPYTHON_VERSION_INFOr   r   r   r   r   floatNumericTyper   r   r   tupletypeBaseExceptionExcInfoTyper!   r/   r&   r)   	functoolsr-   r8   r4   r@   rK   r1   rL   rM   ObjectProxyobjectrO   r   r   r   r   <module>   s>   
 
"	

