
    $gD                         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n# e$ r dZY nw xY w G d de
          ZdS )	    )perf_counter)render_to_string)static)gettext_lazy)PanelNc                        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                 ,   |                                  }t          | d          rS| 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 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stimes       Z/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/debug_toolbar/panels/timer.pynav_subtitlezTimerPanel.nav_subtitle   s      4)) 
	$-0B0KKE$-0B0KKE9::/|,> >   U""%&&|)<<<2    NTimezdebug_toolbar/panels/timer.htmlc                    |                                  }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!7%!?@ !!1%8#9#9E#AB  !$7"8"85"@A~": ; ;e CD$%%=>>F	
  ~>>>r   c                 r    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=   sI    '>> 	J!)!3H4H!I!IDww&&w///r   c                 F   i }t          | d          rt                      | j        z
  dz  |d<   t          | d          rt          j        t          j                  | _        d|                     d          z  |d<   d|                     d          z  |d<   |d         |d         z   |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/   r0   r1   r   _elapsed_rurecord_statsr   r3   responser   s       r   generate_statszTimerPanel.generate_statsC   s#   4'' 	M#/>>D4D#D"LE,4)) 	<'1(2FGGD!D$4$4Z$@$@@E'N!D$4$4Z$@$@@E'N"7^eGn<E'N ,,Z88E&M!--k::E'N"..{;;E(O"..{;;E(O 	%     r   c                    |                                  }|                     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getr?   s       r   generate_server_timingz!TimerPanel.generate_server_timing_   s      !!'?EIIgq<Q<QRRR!!'+<eiiQR>S>STTT!!'+;UYYwPQ=R=RSSS!!.%))L!*D*D	
 	
 	
 	
 	
r   c                 X    t          | j        |          t          | j        |          z
  S r,   )getattrr   r   )r   names     r   r=   zTimerPanel._elapsed_rui   s'    t'..9KT1R1RRRr   )__name__
__module____qualname____doc__r   r/   r.   r   titler$   propertyr%   r(   r2   rA   rE   r=   __classcell__)r*   s   @r   r	   r	      s            $&KAfIIE0H? ? X?     X
0 0 0 0 0! ! !8
 
 
S S S S S S Sr   r	   )timer   django.template.loaderr   django.templatetags.staticr   django.utils.translationr   r   debug_toolbar.panelsr   r/   ImportErrorr	    r   r   <module>rW      s          3 3 3 3 3 3 - - - - - - 6 6 6 6 6 6 & & & & & &OOOO   HHH[S [S [S [S [S [S [S [S [S [Ss   % //