
^Q\i                 @   s   d  d l  m Z m Z d  d l Z d  d l m Z d  d l m Z d  d l	 m
 Z
 y d  d l Z Wn e k
 r| d Z Yn XGd d   d e
  Z d S)    )absolute_importunicode_literalsN)render_to_string)ugettext_lazy)Panelc               @   sv   e  Z d  Z d Z d d   Z e d k	 Z e d  Z d Z	 e
 d d    Z d	 d
   Z d d   Z d d   Z d S)
TimerPanelzG
    Panel that displays the time a response took in milliseconds.
    c             C   s   |  j    } t |  d  ro |  j j |  j j } |  j j |  j j } t d  i | | d d 6| d d 6Sd | k r t d  | d Sd Sd  S)	N_start_rusagez"CPU: %(cum)0.2fms (%(total)0.2fms)g     @@Zcum
total_timetotalzTotal: %0.2fms )	get_statshasattr_end_rusageru_utimer   ru_stime_)selfstatsutimestime r   N/var/www/dbchiro/venv/build/django-debug-toolbar/debug_toolbar/panels/timer.pynav_subtitle   s    zTimerPanel.nav_subtitleNZTimezdebug_toolbar/panels/timer.htmlc             C   s   |  j    } 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 i | d 6 S)NzUser CPU timez%(utime)0.3f mseczSystem CPU timez%(stime)0.3f mseczTotal CPU timez%(total)0.3f msecz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             C   s4   t  j    |  _ |  j r0 t j t j  |  _ n  d  S)N)time_start_timehas_contentresource	getrusageRUSAGE_SELFr   )r   requestr   r   r   process_request5   s    	zTimerPanel.process_requestc             C   s   i  } t  |  d  r3 t j   |  j d | d <n  t  |  d  r t j t j  |  _ d |  j d  | d <d |  j d  | d <| d | d | d	 <|  j d
  | d <|  j d  | d <|  j d  | d <|  j d  | d <n  |  j |  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_stats:   s    zTimerPanel.generate_statsc             C   s    t  |  j |  t  |  j |  S)N)getattrr   r   )r   namer   r   r   r$   U   s    zTimerPanel._elapsed_ru)__name__
__module____qualname____doc__r   r   r   r   titler   propertyr   r#   r&   r$   r   r   r   r   r      s   r   )
__future__r   r   r   Zdjango.template.loaderr   Zdjango.utils.translationr   r   Zdebug_toolbar.panelsr   r   ImportErrorr   r   r   r   r   <module>   s   