ó ¿öYc@@sÒdZddlmZddlmZmZddlmZddlm Zddl m Z yddl m ZWn!ek r“ddlm ZnXeƒZd„Zd eeefd „ƒYZdd lZd S( s— raven.context ~~~~~~~~~~~~~ :copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. i(tabsolute_import(tMappingtIterable(tlocal(tref(t iteritems(t get_identcC@s*yttjƒSWntk r%gSXdS(s7Returns all the active contexts for the current thread.N(tlistt_active_contextstcontextstAttributeError(((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pytget_active_contextss tContextcB@s¹eZdZdd„Zed„ƒZd„Zd„Zd„Z d„Z d„Z d„Z d „Z d „Zd „Zed „Zd „Zed„Zd„Zd„Zdd„ZRS(s' Stores context until cleared. >>> def view_handler(view_func, *args, **kwargs): >>> context = Context() >>> context.merge(tags={'key': 'value'}) >>> try: >>> return view_func(*args, **kwargs) >>> finally: >>> context.clear() cC@sqtjj|dkp|jƒ}|dk r<t|ƒ}n||_|jƒi|_t ƒ|_ ||_dS(N( travent breadcrumbst make_buffertNonetenable_breadcrumbstweakreft_clienttactivatetdatatsettexceptions_to_skip(tselftclientR((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyt__init__.s      cC@s|jdkrdS|jƒS(N(RR(R((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyR=scC@s t|ƒS(N(tid(R((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyt__hash__CscC@s ||kS(N((Rtother((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyt__eq__FscC@s|j|ƒ S(N(R(RR((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyt__ne__IscC@s |j|S(N(R(Rtkey((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyt __getitem__LscC@s t|jƒS(N(titerR(R((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyt__iter__OscC@s t|jƒS(N(tlenR(R((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyt__len__RscC@sdt|ƒj|jfS(Ns<%s: %s>(ttypet__name__R(R((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyt__repr__UscC@s|jƒ|S(N(R(R((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyt __enter__Xs cC@s|jƒdS(N(t deactivate(Rtexc_typet exc_valuettb((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyt__exit__\scC@s8|rtƒ|_ntjjdtƒƒj|ƒdS(NR (tget_thread_identt_sticky_threadRt__dict__t setdefaultRtadd(Rtsticky((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyR_scC@s,ytjj|ƒWntk r'nXdS(N(RR tdiscardR (R((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyR*ds cC@s‘|r|jƒn|j}xnt|ƒD]`\}}|dkr|j|iƒx5t|ƒD]\}}||||/opt/alt/python27/lib/python2.7/site-packages/raven/context.pytmergejs   cC@s ||_dS(N(R(RR((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyRvscC@s|jS(N(R(R((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pytgetyscC@ssi|_|jjƒ|jjƒ|dkr\|j}|dk r\tƒ|jk}q\n|ro|jƒndS(N( RRtclearRRRR/tmain_thread_idR*(RR*R((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyR>|s      N(R't __module__t__doc__RRtpropertyRRRRR!R#R%R(R)R.tFalseRR*tTrueR<RR=R>(((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyR !s$               N(RAt __future__Rt collectionsRRt threadingRRRtraven.utils.compatRtthreadRR/t ImportErrort_threadRR R traven.breadcrumbsR (((s>/opt/alt/python27/lib/python2.7/site-packages/raven/context.pyts   l