o
    >hD                     @   st   d dl m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y/   dZY nw G dd de
ZdS )	    )perf_counter)render_to_string)static)gettext_lazy)PanelNc                       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   sl   |   }t| dr(| jj| jj }| jj| jj }td|| d |d d S d|v r4td|d  S dS )N_start_rusagez"CPU: %(cum)0.2fms (%(total)0.2fms)g     @@
total_time)cumtotalzTotal: %0.2fms )	get_statshasattr_end_rusageru_utimer   ru_stime_)selfstatsutimestime r   z/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/site-packages/debug_toolbar/panels/timer.pynav_subtitle   s   

zTimerPanel.nav_subtitleN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)	r   _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rUt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   ru_nvcswvcsw	ru_nivcswivcsw	ru_minfltminflt	ru_majfltmajflt)	r   r   r(   r*   r+   r,   r   _elapsed_ru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   record_server_timinggetr9   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   r7   i   s   zTimerPanel._elapsed_ru)__name__
__module____qualname____doc__r   r*   r)   r   titler    propertyr!   r#   r-   r;   r>   r7   __classcell__r   r   r%   r   r      s    

r   )timer   django.template.loaderr   django.templatetags.staticr   django.utils.translationr   r   debug_toolbar.panelsr   r*   ImportErrorr   r   r   r   r   <module>   s    