a
    ތxd,                     @   sp   d dl Z d dlmZ d dlmZ d dlmZ d dlm	Z	 zd dl
Z
W n eyZ   dZ
Y n0 G dd de	ZdS )    N)render_to_string)static)gettext_lazy)Panelc                       sp   e Zd ZdZdd ZeduZedZdZ	e
dd Ze
 fd	d
Z fddZdd Zdd Zdd Z  ZS )
TimerPanelzG
    Panel that displays the time a response took in milliseconds.
    c                 C   sp   |   }t| drP| jj| jj }| jj| jj }td|| d |d d S d|v rhtd|d  S dS d S )N_start_rusagez"CPU: %(cum)0.2fms (%(total)0.2fms)g     @@
total_time)ZcumtotalzTotal: %0.2fms )	get_statshasattr_end_rusageru_utimer   ru_stime_)selfstatsutimestime r   R/var/www/html/Ranjet/env/lib/python3.9/site-packages/debug_toolbar/panels/timer.pynav_subtitle   s    

zTimerPanel.nav_subtitleNZTimezdebug_toolbar/panels/timer.htmlc                 C   sv   |   }tdtd| ftdtd| ftdtd| ftdtd| ftd	td
| ff}t| jd|iS )NUser CPU timez%(utime)0.3f msecSystem CPU timez%(stime)0.3f msecTotal CPU timez%(total)0.3f msecElapsed timez%(total_time)0.3f mseczContext switchesz)%(vcsw)d voluntary, %(ivcsw)d involuntaryrows)r   r   r   template)r   r   r   r   r   r   content(   s    

zTimerPanel.contentc                    s   t  j}|td |S )Nzdebug_toolbar/js/timer.js)superscriptsappendr   )r   r    	__class__r   r   r    7   s    zTimerPanel.scriptsc                    s*   t   | _| jrttj| _t |S N)	time_start_timehas_contentresource	getrusageRUSAGE_SELFr   r   process_request)r   requestr"   r   r   r+   =   s    
zTimerPanel.process_requestc                 C   s   i }t | dr$t | j d |d< t | drttj| _d| d |d< d| d |d< |d |d  |d	< | d
|d< | d|d< | d|d< | d|d< | | d S )Nr&   i  r   r   r   r   r   r   r	   Zru_nvcswZvcswZ	ru_nivcswZivcswZ	ru_minfltZminfltZ	ru_majfltZmajflt)	r   r%   r&   r(   r)   r*   r   _elapsed_ruZrecord_statsr   r,   responser   r   r   r   generate_statsC   s    

zTimerPanel.generate_statsc                 C   sd   |   }| dd|dd | dd|dd | dd|dd | dd	|dd d S )
Nr   r   r   r   r   r	   r   r   r   )r   Zrecord_server_timinggetr.   r   r   r   generate_server_timing_   s    z!TimerPanel.generate_server_timingc                 C   s   t | j|t | j| S r$   )getattrr   r   )r   namer   r   r   r-   i   s    zTimerPanel._elapsed_ru)__name__
__module____qualname____doc__r   r(   r'   r   titler   propertyr   r    r+   r0   r2   r-   __classcell__r   r   r"   r   r      s   

r   )r%   Zdjango.template.loaderr   Zdjango.templatetags.staticr   Zdjango.utils.translationr   r   Zdebug_toolbar.panelsr   r(   ImportErrorr   r   r   r   r   <module>   s   
