ó
è¾bc           @   sÕ   d  Z  y d d l Z d d l Z Wn& e k
 rJ Z e e e ƒ d ‚ n Xd d l Z d d l m Z m	 Z	 d „  Z
 d d d „  ƒ  YZ d e j f d	 „  ƒ  YZ d
 d d „  ƒ  YZ d d d „  ƒ  YZ d „  Z d S(   s    Statistics analyzer for HotShot.iÿÿÿÿNs,   ; please install the python-profiler package(   t   ENTERt   EXITc         C   s   t  |  ƒ j ƒ  S(   N(   t   StatsLoadert   load(   t   filename(    (    s#   /usr/lib/python2.7/hotshot/stats.pyR      s    R   c           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s.   | |  _  i  |  _ g  |  _ |  j j |  _ d  S(   N(   t   _logfnt   _codet   _stackt   popt	   pop_frame(   t   selft   logfn(    (    s#   /usr/lib/python2.7/hotshot/stats.pyt   __init__   s    			c         C   sÿ   t  ƒ  } t | _ t j j |  j ƒ } d } x² | D]ª } | \ } \ } } } }	 |	 d k rk | |	 7} n  | t k r© |  j | | | ƒ }
 | j	 |
 | d ƒ d } q4 | t
 k r4 |  j ƒ  }
 | j |
 | d ƒ d } q4 q4 W|  j sò t ‚ t j | ƒ S(   Ni    gíµ ÷Æ°>(   t   Profilet   _brokentimert   get_timet   hotshott   logt	   LogReaderR   R    t	   new_framet   trace_dispatch_callR   R	   t   trace_dispatch_returnR   t   AssertionErrort   pstatst   Stats(   R
   t   pR   t   taccumt   eventt   whatR   t   linenot   funcnamet   tdeltat   frame(    (    s#   /usr/lib/python2.7/hotshot/stats.pyR      s$    			c         G   s€   y |  j  | } Wn* t k
 r= t | Œ  } | |  j  | <n X|  j rW |  j d } n d  } t | | ƒ } |  j j | ƒ | S(   Niÿÿÿÿ(   R   t   KeyErrort   FakeCodeR   t   Nonet	   FakeFramet   append(   R
   t   argst   codet   backR    (    (    s#   /usr/lib/python2.7/hotshot/stats.pyR   9   s    	(   t   __name__t
   __module__R   R   R   (    (    (    s#   /usr/lib/python2.7/hotshot/stats.pyR      s   		 R   c           B   s   e  Z d  „  Z RS(   c         C   s   d  S(   N(    (   R
   (    (    s#   /usr/lib/python2.7/hotshot/stats.pyt   simulate_cmd_completeN   s    (   R)   R*   R+   (    (    (    s#   /usr/lib/python2.7/hotshot/stats.pyR   M   s   R"   c           B   s   e  Z d  „  Z RS(   c         C   s&   | |  _  | |  _ | |  _ |  _ d  S(   N(   t   co_filenamet   co_firstlinenot   co_nameR)   (   R
   R   t   firstlinenoR   (    (    s#   /usr/lib/python2.7/hotshot/stats.pyR   S   s    		(   R)   R*   R   (    (    (    s#   /usr/lib/python2.7/hotshot/stats.pyR"   R   s   R$   c           B   s   e  Z d  „  Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   f_backt   f_code(   R
   R'   R(   (    (    s#   /usr/lib/python2.7/hotshot/stats.pyR   Z   s    	(   R)   R*   R   (    (    (    s#   /usr/lib/python2.7/hotshot/stats.pyR$   Y   s   c           C   s   t  d ‚ d  S(   Ns   this timer should not be called(   t   RuntimeError(    (    (    s#   /usr/lib/python2.7/hotshot/stats.pyR   _   s    (    (    (    (   t   __doc__t   profileR   t   ImportErrort   et   strt   hotshot.logR   R    R   R   R   R   R"   R$   R   (    (    (    s#   /usr/lib/python2.7/hotshot/stats.pyt   <module>   s   	;