
    7 fD                     z    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
 	 d dlZ G d de
      Zy# e$ r dZY w xY w)	    )perf_counter)render_to_string)static)gettext_lazy)PanelNc                   z     e Zd ZdZd ZeduZ ed      ZdZ	e
d        Ze
 fd       Z fdZd	 Zd
 Zd Z xZS )
TimerPanelzG
    Panel that displays the time a response took in milliseconds.
    c                 N   | j                         }t        | d      rt| j                  j                  | j                  j                  z
  }| j                  j
                  | j                  j
                  z
  }t        d      ||z   dz  |d   dz  S d|v rt        d      |d   z  S y)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stimes       P/var/www/equiseq/venv/lib/python3.11/site-packages/debug_toolbar/panels/timer.pynav_subtitlezTimerPanel.nav_subtitle   s     4)$$--0B0B0K0KKE$$--0B0B0K0KKE9:/|,>   U"%&|)<<<    NTimezdebug_toolbar/panels/timer.htmlc                 F   | j                         }t        d      t        d      |z  ft        d      t        d      |z  ft        d      t        d      |z  ft        d      t        d      |z  ft        d	      t        d
      |z  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#   s      r   contentzTimerPanel.content(   s     #6!7%!?@ !1%8#9E#AB !$7"85"@A~": ;e CD$%=>F	
  ~>>r   c                 P    t         |   }|j                  t        d             |S )Nzdebug_toolbar/js/timer.js)superscriptsappendr   )r   r(   	__class__s     r   r(   zTimerPanel.scripts7   s#    '/v9:;r   c                     t               | _        | j                  r(t        j                  t        j
                        | _        t        | !  |      S N)	r   _start_timehas_contentresource	getrusageRUSAGE_SELFr   r'   process_request)r   requestr*   s     r   r2   zTimerPanel.process_request=   s?    '>!)!3!3H4H4H!IDw&w//r   c                    i }t        | d      rt               | j                  z
  dz  |d<   t        | d      rt        j                  t        j
                        | _        d| j                  d      z  |d<   d| j                  d      z  |d<   |d   |d   z   |d	<   | j                  d
      |d<   | j                  d      |d<   | j                  d      |d<   | j                  d      |d<   | j                  |       y )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/   r0   r1   r   _elapsed_rurecord_statsr   r3   responser   s       r   generate_statszTimerPanel.generate_statsC   s    4'#/>D4D4D#D"LE,4)'11(2F2FGD!D$4$4Z$@@E'N!D$4$4Z$@@E'N"7^eGn<E'N ,,Z8E&M!--k:E'N"..{;E(O"..{;E(O 	% r   c                 <   | j                         }| j                  dd|j                  dd             | j                  dd|j                  dd             | j                  dd|j                  dd             | j                  dd	|j                  dd             y )
Nr   r   r   r   r    r   r!   r   r"   )r   record_server_timinggetr?   s       r   generate_server_timingz!TimerPanel.generate_server_timing_   s     !!'?EIIgq<QR!!'+<eiiQR>ST!!'+;UYYwPQ=RS!!.%))L!*D	
r   c                 \    t        | j                  |      t        | j                  |      z
  S r,   )getattrr   r   )r   names     r   r=   zTimerPanel._elapsed_rui   s'    t''.9K9KT1RRRr   )__name__
__module____qualname____doc__r   r/   r.   r   titler$   propertyr%   r(   r2   rA   rE   r=   __classcell__)r*   s   @r   r	   r	      sb     $&KfIE0H? ?  
0!8
Sr   r	   )timer   django.template.loaderr   django.templatetags.staticr   django.utils.translationr   r   debug_toolbar.panelsr   r/   ImportErrorr	    r   r   <module>rW      sB     3 - 6 &
[S [S	  Hs   0 ::