o
    iR                     @   s   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 de
ZG dd de
Zd	d
 Zdd Zdd Zdd Zdd Zdd ZdddZdddZdd Zdd ZdS )    N)configparserStringIOis_p3k__version__zdatadog.confc                   @      e Zd ZdS )CfgNotFoundN__name__
__module____qualname__ r   r   G/home/ubuntu/.local/lib/python3.10/site-packages/datadog/util/config.pyr          r   c                   @   r   )PathNotFoundNr	   r   r   r   r   r      r   r   c                   C   sd   t jdkrdS t jddkrdS t jddkrdS t jddkr%dS t jddkr/d	S t jS )
zHuman-friendly OS namedarwinmacfreebsdlinuxwin32windowssunossolaris)sysplatformfindr   r   r   r   get_os   s   
r   c                 C   s<   t  rtddd |  D S tdttj|  S )z+Works on a file, returns a file-like object
c                 s   s    | ]}| d V  qdS ) N)strip).0xr   r   r   	<genexpr>+   s    z#skip_leading_wsp.<locals>.<genexpr>)r   r   join	readlinesmapstringr    )fr   r   r   skip_leading_wsp(   s   r)   c                  C   s`   ddl } ddl m}m} d}|jj}|j| j|j|j|j	g|_
| |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#   )ctypesr*   r+   shell32SHGetFolderPathWHWNDc_intHANDLEDWORDLPCWSTRargtypescreate_unicode_bufferMAX_PATHvalue)r-   r*   r+   CSIDL_COMMON_APPDATA_SHGetFolderPathpath_bufr   r   r   _windows_commondata_path0   s   r<   c                  C   s.   t  } tj| dt}tj|r|S t|)NDatadog)r<   ospathr$   DATADOG_CONFexistsr   )common_datar?   r   r   r   _windows_config_pathB   s
   rC   c                  C   s&   t jdt} t j| r| S t| )Nz/etc/dd-agent)r>   r?   r$   r@   rA   r   r?   r   r   r   _unix_config_pathJ   s   rE   c                  C   s2   t jdt} t j| } t j| r| S t| )Nz~/.datadog-agent/agent)r>   r?   r$   r@   
expanduserrA   r   rD   r   r   r   _mac_config_pathQ   s
   rG   c                 C   sH   | d urt j| r| S |d u rt }|dkrt S |dkr!t S t S )Nr   r   )r>   r?   rA   r   rC   rG   rE   )cfg_pathos_namer   r   r   get_config_pathY   s   rJ   c                 C   s   i }zPt jt}t j|}t| t d}t }t	|}t
 r*|t| n|t| W d    n1 s;w   Y  |dD ]
}|d|||< qEW |S  ty[   tw )N)rI   Main)r>   r?   realpath__file__dirnamerJ   r   r   ConfigParseropenr   	read_filer)   readfpoptionsget	Exceptionr   )rH   rS   agentConfigr?   config_pathconfigconfig_fileoptionr   r   r   
get_configj   s&   
r[   c                   C      t S zh
    Resolve `datadog` package version.

    Deprecated: use `datadog.__version__` directly instead
    r   r   r   r   r   get_pkg_version      r^   c                   C   r\   r]   r   r   r   r   r   get_version   r_   r`   )NN)r>   r'   r   datadog.util.compatr   r   r   datadog.versionr   r@   rU   r   r   r   r)   r<   rC   rE   rG   rJ   r[   r^   r`   r   r   r   r   <module>   s$   

	