o
    »­§i;  ã                   @   s  d dl Z 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	 e 
e¡ZG dd„ deƒZddddddd	d
d	dddd	d	d	dddejfdd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Ze	dd„ ƒZdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ ZdS )*é    N)ÚEnum)Úlib)Úcontextmanagerc                   @   s   e Zd ZdZdZdZdS )ÚLineNor   é   é   N)Ú__name__Ú
__module__Ú__qualname__ÚLastInstructionZFirstZNoLine© r   r   úI/home/app/Keep/.python/lib/python3.10/site-packages/pyroscope/__init__.pyr      s    r   zhttp://localhost:4040Ú Féd   Tc                 C   s´   | d urt  dt¡ | }|
d urt  dt¡ | t_|r%t ¡ }t |¡ t | 	d¡| 	d¡| 	d¡| 	d¡| 	d¡|||	||||t
|ƒ 	d¡|pKd 	d¡t|ƒ 	d¡|j¡ d S )Nz,app_name is deprecated, use application_namez&native is deprecated and not supportedúUTF-8r   )ÚwarningsÚwarnÚDeprecationWarningÚLOGGERÚdisabledÚgetEffectiveLevelr   Zinitialize_loggingZinitialize_agentÚencodeÚtags_to_stringÚhttp_headers_to_jsonÚvalue)Zapp_nameZapplication_nameÚserver_addressZ
auth_tokenZbasic_auth_usernameZbasic_auth_passwordZenable_loggingZsample_rateZdetect_subprocessesZoncpuÚnativeZgil_onlyZ
report_pidZreport_thread_idZreport_thread_nameÚtagsZ	tenant_idZhttp_headersÚline_noÚ	log_levelr   r   r   Ú	configure   s6   
ðr    c                  C   s(   t  ¡ } | rt d¡ d S t d¡ d S )Nz%Pyroscope Agent successfully shutdownzPyroscope Agent shutdown failed)r   Z
drop_agentr   ÚinfoÚwarning)Zdropr   r   r   ÚshutdownF   s   r#   c                 C   ó   t  | | d¡| d¡¡ d S ©Nr   )r   Úadd_thread_tagr   ©Ú	thread_idÚkeyr   r   r   r   r&   N   ó   r&   c                 C   r$   r%   )r   Úremove_thread_tagr   r'   r   r   r   r+   Q   r*   r+   c                 C   s   t  | d¡| d¡¡ d S r%   )r   Úadd_global_tagr   r'   r   r   r   r,   T   ó   r,   c                 C   s   t  |  d¡| d¡¡ d S r%   )r   Úremove_global_tagr   )r)   r   r   r   r   r.   W   r-   r.   c                 C   s$   | d u rdS d  dd„ |  ¡ D ƒ¡S )Nr   ú,c                 S   s   g | ]
\}}d   ||¡‘qS )z{}={})Úformat)Ú.0r)   r   r   r   r   Ú
<listcomp>]   s    z"tags_to_string.<locals>.<listcomp>)ÚjoinÚitems©r   r   r   r   r   Z   s   r   c                 C   s   | d u rdS t  | ¡S )Nz{})ÚjsonÚdumps)Úheadersr   r   r   r   _   s   
r   c                 c   s¢    |   ¡ D ]\}}t t ¡ | d¡| d¡¡ qzd V  W |   ¡ D ]\}}t t ¡ | d¡| d¡¡ q"d S |   ¡ D ]\}}t t ¡ | d¡| d¡¡ q<w r%   )r4   r   r&   Ú	threadingÚ	get_identr   r+   )r   r)   r   r   r   r   Útag_wrapperd   s   €  ÿ ÿr;   c                   C   ó   t  dt¡ d S ©Nz deprecated, no longer applicable©r   r   r   r   r   r   r   Ústopn   ó   r?   c                 C   r<   r=   r>   )Únamer   r   r   Úchange_namep   r@   rB   c                 C   r<   )Nz$deprecated, use tag_wrapper functionr>   r5   r   r   r   Útagr   r@   rC   c                  G   r<   r=   r>   )Úkeysr   r   r   Úremove_tagst   r@   rE   c                   C   r<   r=   r>   r   r   r   r   Úbuild_summaryv   r@   rF   c                   C   r<   r=   r>   r   r   r   r   Útest_loggerx   r@   rG   )r9   r   Úloggingr6   Úenumr   Zpyroscope._nativer   Ú
contextlibr   Ú	getLoggerr   r   r   r   r    r#   r&   r+   r,   r.   r   r   r;   r?   rB   rC   rE   rF   rG   r   r   r   r   Ú<module>   sX    

í5
	