
    uYf                         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 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ZdZdZdZdZeeeef   Z ed      Z ee      Zd Zd Zd Zd Zy)    N)TypeVar)Union)
get_logger)_config   )HTTPConnection)HTTPSConnection)UDSHTTPConnection)get_connection	localhosti  /var/run/datadog/apm.socket/var/run/datadog/dsd.socketi  Tc                     t        | t              sy	 t        j                  t        j                  |        y# t        j
                  $ r Y yw xY w)NFT)
isinstancestrsocket	inet_ptonAF_INET6error)hostnames    V/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/ddtrace/internal/agent.pyis_ipv6_hostnamer      sA    h$(3<< s   $8 AAc                     t         j                  du} t         j                  du}t         j                  }|s| s|rVt         j                  xs t        }t         j                  xs t
        }t        |      rdj                  |      }d|d|}|S t        j                  j                  d      rdt        z  }|S dj                  t        t
              }|S )zReturn the Agent URL computed from the environment.

    Raises a ``ValueError`` if the URL is not supported by the Agent.
    N[{}]zhttp://:r   	unix://%szhttp://{}:{})ddconfig_trace_agent_hostname_trace_agent_port_trace_agent_urlDEFAULT_HOSTNAMEDEFAULT_TRACE_PORTr   formatospathexistsDEFAULT_UNIX_TRACE_PATH)user_supplied_hostuser_supplied_porturlhostports        r   get_trace_urlr.   )   s     "77tC!334?

#
#C!311E5ED--C1CD%}}T*$($/C J WW^^9:!89C J !''(8:LMCJ    c                     t         j                  d u} t         j                  d u}t         j                  }|s| s|r`t         j                  xs t        }t         j                  xs t
        }t        |      rdj                  |      }dj                  ||      }|S t        j                  j                  d      rdt        z  }|S dj                  t
        t              }|S )Nr   zudp://{}:{}r   r   )r   _stats_agent_hostname_stats_agent_port_stats_agent_urlDEFAULT_STATS_PORTr"   r   r$   r%   r&   r'   DEFAULT_UNIX_DSD_PATH)r)   r*   r+   r-   r,   s        r   get_stats_urlr6   C   s    !77tC!334?

#
#C!3--C1CD11E5ED%}}T*&&tT2C
 J	 WW^^9:!67C J  &&'79KLCJr/   c                     t               } t        | t        j                        }	 |j	                  ddddi       |j                         }|j                         }|j                          |j                  dk(  ry |j                  dk  s|j                  d	k\  r,t        j                  d
|j                  |j                         y t        j                  |      S # |j                          w xY w)N)timeoutGETinfozcontent-typezapplication/json)headersi     i,  z1Unexpected error: HTTP error status %s, reason %s)r.   r   r   _agent_timeout_secondsrequestgetresponsereadclosestatuslogwarningreasonjsonloads)	agent_url_connrespdatas       r   r:   r:   X   s    I9h.M.MNEeVn>P-QR  "yy{{{c{{SDKK3.GVZVaVab::d 	s   6C C.)rF   r%   r   typingr   r   ddtrace.internal.loggerr   ddtrace.settingsr   r   httpr   r	   udsr
   
utils.httpr   r"   r#   r(   r5   r4   ConnectionTyper   __name__rC   r   r.   r6   r:    r/   r   <module>rU      s     	    . 0   ! " &   7 5  8IIJCL4*r/   