ó ŸçƒQc@sžddlmZddlZddlZddlZddlZddlZddlZddlZd„Z d„Z d„Z e a d„Ze d„ZdS(iÿÿÿÿ(t_Nc CsT|jtdƒ||fƒtjƒ}|}tj|dƒs |jdƒ} | dkr~tjtdƒ||fƒ‚n|| } tj} tj ƒrát jj | ƒ\} } | rá| rátj| gt_| } qány$t j ƒt| ƒ}t jƒWnôtk rûtjtjtjf}ytd| ƒ}t jƒWqütk r÷t jƒtjtjtjf}|jrœ|jtdƒƒn|j|ƒ|jrÈ|jtdƒƒn|j|ƒtjtd ƒ|| fƒ‚qüXnX| t_y1x*|j dƒd D]}t||ƒ}qWWn0tk rhtjtd ƒ||fƒ‚nXtj|dƒs tjtd ƒ||fƒ‚q nzúy`tjtjtjf}|j|j|jt_t_t_|d |d|d||}Wn“tk r‚n€t k r˜}t!|tjƒra|jtdƒ||j"dfƒn|jtdƒ||fƒ|rŠ‚n|jƒt#SXWd|\t_t_t_tjƒ|}|}t!|t$j%ƒrô|j&d|j'}n|j(dd|||ƒX|rP|r6tjtdƒ|ƒ‚n|jtdƒ|ƒn|S(sŸcall python hook. hook is callable object, looked up as name in python module. if callable returns "true", hook fails, else passes. if hook raises exception, treated as hook failure. exception propagates if throw is "true". reason for "true" meaning "hook failed" is so that unmodified commands (e.g. mercurial.commands.update) can be run as hooks without wrappers to convert return values.scalling hook %s: %s t__call__t.iÿÿÿÿs)%s hook is invalid ("%s" not in a module)shgext_%ss,exception from first failed import attempt: s-exception from second failed import attempt: s*%s hook is invalid (import of "%s" failed)is(%s hook is invalid ("%s" is not defined)s)%s hook is invalid ("%s" is not callable)tuitrepothooktypeserror: %s hook failed: %s is'error: %s hook raised an exception: %s Nt pythonhooks,pythonhook-%s: %s finished in %0.2f seconds s%s hook failedswarning: %s hook failed ()tnoteRttimetutilt safehasattrtrfindtAborttsystpatht mainfrozentostsplitt demandimporttdisablet __import__tenablet ImportErrortexc_typet exc_valuet exc_tracebackt tracebackflagtwarnt tracebacktgetattrtAttributeErrortstdouttstderrtstdintfouttferrtfintKeyboardInterruptt Exceptiont isinstancetargstTruettypest FunctionTypet __module__t__name__tlog(RRtnamethnametfuncnameR(tthrowt starttimetobjtdtmodnametoldpathstmodpathtmodfilete1te2tptoldtrtexctdurationt readablefunc((s2/sys/lib/python2.7/site-packages/mercurial/hook.pyt _pythonhook s”                   &"    c CsÒ|jtdƒ||fƒtjƒ}i}x‹|jƒD]}\}} tj| dƒrf| ƒ} nt| tƒr¥ddjd„t | jƒƒDƒƒd} n| |d|j ƒyst}tHG_tHG_URLs remote:httptenvirontcwdtouttexthooks)exthook-%s: %s finished in %0.2f seconds s %s hook %sswarning: %s hook %s (RRRt iteritemsR R R'tdicttjointsortedtuppertrootRtgetcwdt startswithtsystemR"R.t explainexitR R(RRR/tcmdR(R2R3tenvtktvRJR>R@tdesc((s2/sys/lib/python2.7/site-packages/mercurial/hook.pyt_exthookms2  &   $$  " c Cs g}xh|jdƒD]W\}}|jdƒs|jdd|dƒ}|j| t|ƒ||fƒqqWgt|ƒD]\}}}}||f^q~S(Nthookstprioritys priority.%si(t configitemsRTt configinttappendtlenRP( RR]R/RWR^R<toRYRZ((s2/sys/lib/python2.7/site-packages/mercurial/hook.pyt _allhookss 'cCs |adS(N(t _redirect(tstate((s2/sys/lib/python2.7/site-packages/mercurial/hook.pytredirect™sc Ks|js tSt}d}z:x3t|ƒD]%\}}|jdƒd|ks)| r[q)n|dkrótróyitjjƒ} tjjƒ} | dkrÕ| dkrÕtjj ƒt j | ƒ}t j | | ƒnWqót tfk rïqóXntj|dƒr,t|||||||ƒp&|}q)|jdƒr-|jdƒdkrö|djdd ƒ\} }tj| ƒ} |rœt jj|j| ƒ} nytj| d |ƒ} Wn+tk rã|jtd ƒ|ƒ‚nXt| |ƒ} n|djƒ} t||||| ||ƒp'|}q)t ||||||ƒpK|}q)WWdtrˆ|dkrˆt j || ƒt j!|ƒnX|S( NiÿÿÿÿRiRspython:t:iiis hghook.%ssloading %s hook failed: ("t callhookstFalseRdRReR t __stdout__tfilenot __stderr__tflushRtduptdup2tOSErrorRR R RBRTtcounttrsplitt expandpathRRORRt extensionstloadpathR&twriteRRtstripR\tclose(RRR/R2R(R>t oldstdoutR0RWtstdoutnotstderrnoRtmodthookfn((s2/sys/lib/python2.7/site-packages/mercurial/hook.pythooksN   ' ')(ti18nRRR RR*RuR RRBR\RdRjReRgR(((s2/sys/lib/python2.7/site-packages/mercurial/hook.pyts0$ a #