ó ¿öYc@@sdZddlmZddlZddlZddlmZmZmZm Z m Z m Z m Z ddl mZddlmZdZd „Zdefd „ƒYZd efd „ƒYZd efd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZe rŒdefd„ƒYZnejeƒejeƒejeƒejeƒejeƒejeƒejeƒejeƒejeƒe rejeƒndS( s³ raven.utils.serializer.base ~~~~~~~~~~~~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. i(tabsolute_importN(t text_typet binary_typet string_typest iteritemst class_typestPY2tPY3(t to_unicodei(tmanagert SerializercC@s0yt|jdƒƒSWntk r+tSXdS(Nt __sentry__(tcallablet__getattribute__t ExceptiontFalse(tvalue((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pythas_sentry_metadatas cB@s8eZdZd„Zd„Zd„Zddd„ZRS(cC@s ||_dS(N(R (tselfR ((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyt__init__ scC@st||jƒS(s| Given ``value``, return a boolean describing whether this serializer can operate on the given type (t isinstancettypes(RR((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pytcan#scK@s|S(s@ Given ``value``, coerce into a JSON-safe type. ((RRtkwargs((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyt serialize*siicK@s°|jddƒ}|d7}||kr‘ytt|ƒƒ| }Wq‘tk r}ddl}|jƒ|jjj |ƒtt |ƒƒSXn|jj |d|d||S(s| Given ``value``, recurse (using the parent serializer) to handle coercing of newly defined values. tstring_max_lengthiiNt max_deptht_depth( tgettNoneRtreprRt tracebackt print_excR tloggert exceptionttypet transform(RRRRRRteR((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pytrecurse0s    ((t__name__t __module__RRRRR&(((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyR s    tIterableSerializercB@s#eZeeeefZd„ZRS(c @sSˆjdƒptdƒ‰t‡‡fd†tj‡fd†t|ƒƒDƒƒS(Ntlist_max_lengthtinfc3@s'|]\}}ˆj|ˆVqdS(N(R&(t.0tnto(RR(sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pys Jsc@s|dˆkS(Ni((tx(R*(sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pytLt(Rtfloatttuplet itertoolst takewhilet enumerate(RRR((RR*RsL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyRGs (R'R(R3tlisttsett frozensetRR(((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyR)DstDictSerializercB@s#eZefZd„Zd„ZRS(cC@st|tƒst|ƒS|S(N(RRR(Rtkey((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pytmake_keyTs c @sYˆjdƒptdƒ‰t‡‡fd†tj‡fd†tt|ƒƒƒDƒƒS(NR*R+c3@sH|]>\}\}}ˆjˆj|ˆƒˆj|ˆfVqdS(N(R<R&(R,R-tktv(RR(sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pys \sc@s|dˆkS(Ni((R/(R*(sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyR0^R1(RR2tdictR4R5R6R(RRR((RR*RsL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyRYs (R'R(R?RR<R(((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyR:Qs  tUnicodeSerializercB@seZefZd„ZRS(cK@s-|jddƒ}ttdƒƒ|| fS(NRs%s(RRRR(RRRR((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyRfs(R'R(RRR(((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyR@cs tStringSerializercB@seZefZd„ZRS(cK@sn|jddƒ}tr&t|| ƒSy&d|jdƒ| jdƒdSWntk r_nXt|| ƒS(NRt'tutf8(RRRRtdecodetencodetUnicodeDecodeError(RRRR((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyRrs& (R'R(RRR(((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyRAos tTypeSerializercB@s eZeZd„Zd„ZRS(cC@s#tt|ƒj|ƒ o"t|ƒS(N(tsuperRGRR(RR((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyR…scK@s|j|jƒ|S(N(R&R (RRR((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyR‰s(R'R(RRRR(((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyRG‚s tBooleanSerializercB@seZefZd„ZRS(cK@s t|ƒS(N(tbool(RRR((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyRs(R'R(RJRR(((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyRIs tFloatSerializercB@seZefZd„ZRS(cK@s t|ƒS(N(R2(RRR((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyR—s(R'R(R2RR(((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyRK”s tIntegerSerializercB@seZefZd„ZRS(cK@s t|ƒS(N(tint(RRR((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyRžs(R'R(RMRR(((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyRL›s tFunctionSerializercB@seZejfZd„ZRS(cK@sd|j|jt|ƒfS(Ns(R'R(tid(RRR((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyR¥s(R'R(Rt FunctionTypeR(((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyRN¢s tLongSerializercB@seZefZd„ZRS(cK@s t|ƒS(N(tlong(RRR((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyR®s(R'R(RRRR(((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyRQ«s (R ( t__doc__t __future__RR4Rtraven.utils.compatRRRRRRRtraven.utils.encodingRR tserialization_managert__all__RtobjectR R)R:R@RARGRIRKRLRNRQtregister(((sL/opt/alt/python27/lib/python2.7/site-packages/raven/utils/serializer/base.pyts>  4 '