ó s®¸Qc@s™ddlZddlZddlZddlZddlmZmZmZmZm Z m Z ddddgZ eZ eZ eZddd„ƒYZdS( iÿÿÿÿN(t WHAT_ENTERt WHAT_EXITt WHAT_LINENOtWHAT_DEFINE_FILEtWHAT_DEFINE_FUNCt WHAT_ADD_INFOt LogReadertENTERtEXITtLINEcBsweZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z dd „Z d „Z d „Z d „Z RS( cCs˜i|_i|_tj|ƒ|_|jj|_|jj|_d|jkrd|jd|_ n d|_ g|_ |j j |_ |j j|_dS(Nscurrent-directory(t_filemapt_funcmapt_hotshott logreadert_readertnextt _nextitemtinfot_infotcwdtNonet_stacktappendt_appendtpopt_pop(tselftlogfn((s!/sys/lib/python2.7/hotshot/log.pyt__init__s    cCs|jjƒdS(N(Rtclose(R((s!/sys/lib/python2.7/hotshot/log.pyR/scCs |jjƒS(s8Return the file descriptor of the log reader's log file.(Rtfileno(R((s!/sys/lib/python2.7/hotshot/log.pyR2scCsdS(sòThis method is called for each additional ADD_INFO record. This can be overridden by applications that want to receive these events. The default implementation does not need to be called by alternate implementations. The initial set of ADD_INFO records do not pass through this mechanism; this is only needed to receive notification when new values are added. Subclasses can inspect self._info after calling LogReader.__init__(). N((Rtkeytvalue((s!/sys/lib/python2.7/hotshot/log.pytaddinfo6s cCs0y|j|SWntk r+td‚nXdS(Nsunknown fileno(R tKeyErrort ValueError(RR((s!/sys/lib/python2.7/hotshot/log.pyt get_filenameDs cCs |jjƒS(N(R tvalues(R((s!/sys/lib/python2.7/hotshot/log.pyt get_filenamesJscCs[tjjtjj|ƒƒ}x-|jjƒD]\}}||kr.|Sq.Wtd‚dS(Nsunknown filename(tostpathtnormcasetnormpathR titemsR#(RtfilenameRtname((s!/sys/lib/python2.7/hotshot/log.pyt get_filenoMs  cCs6y|j||fSWntk r1td‚nXdS(Nsunknown function location(R R"R#(RRtlineno((s!/sys/lib/python2.7/hotshot/log.pyt get_funcnameTs ic Cs–x|jƒ\}}}}|tkrh|j||ƒ\}}|||f}|j|ƒ|||fS|tkr¨y||jƒ|fSWq¨tk r¤t‚q¨Xn|tkrà|j d\}} }||||f|fS|t krt j j t j j|ƒƒ}||j|(R R"RR'R(R)tjoinRtopentIOErrortparsertsuitetreadRtsymboltfuncdeftlambdefttotupleRR2t TypeErrorR textendtlist( RRR,tabsnametfptstRDREtstackttreetsym((s!/sys/lib/python2.7/hotshot/log.pyR; s8   $       , $(t__name__t __module__RRRR!R$R&R.R0RR:R1R;(((s!/sys/lib/python2.7/hotshot/log.pyRs        '  ((R tos.pathR'R@RCRRRRRRt__all__RRR R(((s!/sys/lib/python2.7/hotshot/log.pyts    .