
    9YfR                         d dl Z d dlZd dlZd dlmZmZmZ d dlmZ dZ	 G d de
      Z G d de
      Zd	 Zd
 Zd Zd Zd Zd ZddZddZd Zd Zy)    N)configparserStringIOis_p3k__version__zdatadog.confc                       e Zd Zy)CfgNotFoundN__name__
__module____qualname__     S/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/datadog/util/config.pyr	   r	          r   r	   c                       e Zd Zy)PathNotFoundNr
   r   r   r   r   r      r   r   r   c                  b   t         j                  dk(  ryt         j                  j                  d      dk7  ryt         j                  j                  d      dk7  ryt         j                  j                  d      dk7  ryt         j                  j                  d      dk7  ry	t         j                  S )
zHuman-friendly OS namedarwinmacfreebsdlinuxwin32windowssunossolaris)sysplatformfindr   r   r   get_osr!      s    
||x			9	%	+			7	#r	)			7	#r	)			7	#r	)||r   c           	          t               r/t        dj                  d | j                         D                    S t        dj                  t	        t
        j                  | j                                           S )z+Works on a file, returns a file-like object
c              3   >   K   | ]  }|j                  d         yw) N)strip).0xs     r   	<genexpr>z#skip_leading_wsp.<locals>.<genexpr>+   s     !F1!''#,!Fs   )r   r   join	readlinesmapstringr&   )fs    r   skip_leading_wspr/   (   sL    x		!F!FFGG		#fllAKKM"BCDDr   c                  ,   ddl } ddl m}m} d}|j                  j                  }|j
                  | j                  |j                  |j                  |j                  g|_
        | j                  |j                        } |d|dd|       |j                  S )zReturn the common appdata path, using ctypes
    From http://stackoverflow.com/questions/626796/    how-do-i-find-the-windows-common-application-data-folder-using-python
    r   N)wintypeswindll#   )ctypesr1   r2   shell32SHGetFolderPathWHWNDc_intHANDLEDWORDLPCWSTRargtypescreate_unicode_bufferMAX_PATHvalue)r4   r1   r2   CSIDL_COMMON_APPDATA_SHGetFolderPathpath_bufs         r   _windows_commondata_pathrC   0   s|    
 '~~66!)hoox~~_g_o_o p++H,=,=>HQ,aH=>>r   c                      t               } t        j                  j                  | dt              }t        j                  j                  |      r|S t        |      )NDatadog)rC   ospathr*   DATADOG_CONFexistsr   )common_datarG   s     r   _windows_config_pathrK   B   s@    *,K77<<Y=D	ww~~d
t
r   c                      t         j                  j                  dt              } t         j                  j	                  |       r| S t        |       )Nz/etc/dd-agent)rF   rG   r*   rH   rI   r   rG   s    r   _unix_config_pathrN   J   s6    77<<6D	ww~~d
t
r   c                      t         j                  j                  dt              } t         j                  j	                  |       } t         j                  j                  |       r| S t        |       )Nz~/.datadog-agent/agent)rF   rG   r*   rH   
expanduserrI   r   rM   s    r   _mac_config_pathrQ   Q   sK    77<<0,?D77d#D	ww~~d
t
r   c                     | !t         j                  j                  |       r| S |
t               }|dk(  r
t	               S |dk(  r
t               S t               S )Nr   r   )rF   rG   rI   r!   rK   rQ   rN   )cfg_pathos_names     r   get_config_pathrU   Y   sU    x 8( )#%%	E	!! ""r   c                    i }	 t         j                  j                  t              }t         j                  j	                  |      }t        | t                     }t        j                         }t        |      5 }t               r|j                  t        |             n|j                  t        |             d d d        |j                  d      D ]  }|j                  d|      ||<    	 |S # 1 sw Y   7xY w# t         $ r t"        w xY w)N)rT   Main)rF   rG   realpath__file__dirnamerU   r!   r   ConfigParseropenr   	read_filer/   readfpoptionsget	Exceptionr	   )rS   r_   agentConfigrG   config_pathconfigconfig_fileoptions           r   
get_configrg   j   s    Kww)wwt$%hA**,+ 	=+x  !1+!>?.{;<		= nnV, 	=F"(**VV"<K	= 	= 	=  s%   A6C< :A C0:3C< 0C95C< <Dc                      t         S zh
    Resolve `datadog` package version.

    Deprecated: use `datadog.__version__` directly instead
    r   r   r   r   get_pkg_versionrj      
     r   c                      t         S ri   r   r   r   r   get_versionrm      rk   r   )NN)rF   r-   r   datadog.util.compatr   r   r   datadog.versionr   rH   ra   r	   r   r!   r/   rC   rK   rN   rQ   rU   rg   rj   rm   r   r   r   <module>rp      sm    
  
 ? > ' 	) 		9 	 E$#"6r   