o
    ƒ±h×  ã                   @   sZ   d Z ddlZddlZddlZddlZddgZe d¡ZG dd„ dƒZdd	d„Z	d
d„ Z
dS )zPThe debug module contains utilities and functions for better
debugging Gunicorn.é    NÚspewÚunspewz\W+c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚSpewNTc                 C   s   || _ || _d S )N©Útrace_namesÚshow_values)Úselfr   r   © r	   úF/var/www/vip_panel/venv/lib/python3.10/site-packages/gunicorn/debug.pyÚ__init__   s   
zSpew.__init__c                 C   sD  |dkr |j }d|jv r-|jd }| d¡s| d¡r!|d d… }|jd }t ||¡}n d}zt |¡}|| }W n tyL   d|jj	|j
f }Y nw | jd u sW|| jv r td	||| ¡ f ƒ | jsg| S g }	t |¡}
|
D ]$}||jv rƒ|	 d
||j| f ¡ ||jv r”|	 d
||j| f ¡ qp|	r tdd |	¡ ƒ | S )NÚlineÚ__file__z.pycz.pyoéÿÿÿÿÚ__name__z	[unknown]z,Unknown code named [%s].  VM instruction #%dz	%s:%s: %sz%s=%rz	%sú )Úf_linenoÚ	f_globalsÚendswithÚ	linecacheÚgetlineÚinspectÚgetsourcelinesÚOSErrorÚf_codeÚco_nameÚf_lastir   ÚprintÚrstripr   Ú_token_spliterÚsplitÚappendÚf_localsÚjoin)r   ÚframeÚeventÚargÚlinenoÚfilenameÚnamer   ÚsrcÚdetailsÚtokensÚtokr	   r	   r
   Ú__call__   sD   


ÿ



ÿÿ


€zSpew.__call__)NT)r   Ú
__module__Ú__qualname__r   r-   r	   r	   r	   r
   r      s    
r   Fc                 C   s   t  t| |ƒ¡ dS )zpInstall a trace hook which writes incredibly detailed logs
    about what code is being executed to stdout.
    N)ÚsysÚsettracer   r   r	   r	   r
   r   :   s   c                   C   s   t  d¡ dS )z-Remove the trace hook installed by spew.
    N)r0   r1   r	   r	   r	   r
   r   A   s   )NF)Ú__doc__r0   r   Úrer   Ú__all__Úcompiler   r   r   r   r	   r	   r	   r
   Ú<module>   s   

(