§ <ˆjøãó<—dZddlmZddlZddlZddlZddlmZmZm Z m Z m Z m Z m Z ddlmZddlmZddlmZd Zd „ZGd „d e¦«ZGd „de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«Z Gd„d e¦«Z!e rGd!„d"e¦«Z"ej#e¦«ej#e¦«ej#e¦«ej#e¦«ej#e¦«ej#e¦«ej#e¦«ej#e¦«ej#e ¦«ej#e!¦«e rej#e"¦«dSdS)#z³ raven.utils.serializer.base ~~~~~~~~~~~~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. é)Úabsolute_importN)Ú text_typeÚ binary_typeÚ string_typesÚ iteritemsÚ class_typesÚPY2ÚPY3)Ú to_unicodeé©Úmanager©Ú is_namedtuple)Ú Serializercój— t| d¦«¦«S#t$rYdSwxYw)NÚ __sentry__F)ÚcallableÚ__getattribute__Ú Exception)Úvalues úR/opt/cloudlinux/venv/lib64/python3.11/site-packages/raven/utils/serializer/base.pyÚhas_sentry_metadatarsE€ðݘ×.Ò.¨|Ñ<Ô<Ñ=Ô=Ð=øÝ ððð؈uˆuðøøøs ‚!$¤ 2±2có,—eZdZdZd„Zd„Zd„Zd d„ZdS) r©có—||_dS©Nr )Úselfrs rÚ__init__zSerializer.__init__#s €ØˆŒ ˆ ˆ ócó,—t||j¦«S©z| Given ``value``, return a boolean describing whether this serializer can operate on the given type )Ú isinstanceÚtypes©rrs rÚcanzSerializer.can&s€õ ˜% ¤Ñ,Ô,Ð,r c ó—|S)z@ Given ``value``, coerce into a JSON-safe type. r©rrÚkwargss rÚ serializezSerializer.serialize-s €ðˆ r érc ó�—| dd¦«}|dz }||kr� tt|¦«¦«d|…}nj#t$r]}ddl}| ¦«|jj |¦«tt|¦«¦«cYd}~Sd}~wwxYw|jj |f||dœ|¤ŽS)z| Given ``value``, recurse (using the parent serializer) to handle coercing of newly defined values. Ústring_max_lengthNr r)Ú max_depthÚ_depth) ÚgetrÚreprrÚ tracebackÚ print_excrÚloggerÚ exceptionÚtypeÚ transform)rrr.r/r)r-Úer2s rÚrecursezSerializer.recurse3s€ð #ŸJšJÐ':¸DÑAÔAÐà�!‰ ˆØ �YÒ Ð ð .Ý!¥$ u¡+¤+Ñ.Ô.Ð/AÐ0AÐ/AÔB��øÝð .ð .ð .Ø Ð Ð Ð Ø×#Ò#Ñ%Ô%Ð%Ø” Ô#×-Ò-¨aÑ0Ô0Ð0Ý ¥ e¡¤Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-øøøøð  .øøøð &ˆtŒ|Ô% eð?°yØ-3ð?ð?Ø7=ð?ð?ð ?s£$AÁ B/ÁAB*Â$B/Â*B/N)r+r)Ú__name__Ú __module__Ú __qualname__r$rr&r*r9rr rrr sZ€€€€€Ø €Eðððð-ð-ð-ðððð ?ð?ð?ð?ð?ð?r rcó*—eZdZejfZd„Zd„ZdS)ÚNamedtupleSerializercó —t|¦«Sr"rr%s rr&zNamedtupleSerializer.canJs€õ ˜UÑ#Ô#Ð#r c ó(‡‡‡—‰ d¦«ptd¦«Šˆfd„}| ¦« ¦«}tj}t ˆˆfd„||t|¦«¦«D¦«¦«}|S)NÚlist_max_lengthÚinfcó•—|d‰kS©Nrr©ÚxrAs €rúz0NamedtupleSerializer.serialize..Ssø€˜a œd _Ò4€r có<•—g|]\}\}}|‰j|fi‰¤Žf‘ŒSr©r9©Ú.0ÚnÚkÚvr)rs €€rú z2NamedtupleSerializer.serialize..VsJø€ð ð ð á�‘6�A�qð� �” ˜QÐ)Ð) &Ð)Ð)Ð *ð ð ð r )r0ÚfloatÚ_asdictÚitemsÚ itertoolsÚ takewhileÚdictÚ enumerate)rrr)Ú less_thanrRrTrFrAs` ` @rr*zNamedtupleSerializer.serializeQs¦øøø€Ø Ÿ*š*Ð%6Ñ7Ô7ÐG½5À¹<¼<ˆØ4Ð4Ð4Ð4ˆ Ø— ’ ‘”×%Ò%Ñ'Ô'ˆÝÔ'ˆ Ý ð ð ð ð ð à&˜Y yµ)¸EÑ2BÔ2BÑCÔCð ñ ô ñ ô ˆðˆr N)r:r;r<Ú collectionsÚ namedtupler$r&r*rr rr>r>Gs=€€€€€Ø Ô #Ð %€Eð$ð$ð$ð ð ð ð ð r r>có —eZdZeeeefZd„ZdS)ÚIterableSerializerc 󷇇—‰ d¦«ptd¦«Štˆˆfd„tjˆfd„t |¦«¦«D¦«¦«S)NrArBc3ó:•K—|]\}}‰j|fi‰¤ŽV—ŒdSrrI)rKrLÚor)rs €€rú z/IterableSerializer.serialize..bsOøèè€ð ð á��1ð ˆDŒL˜Ð %Ð %˜fÐ %Ð %ð ð ð ð ð ð r có•—|d‰kSrDrrEs €rrGz.IterableSerializer.serialize..e󸀍Q¨q¬T°OÒ-C€r )r0rPÚtuplerSrTrV©rrr)rAs` `@rr*zIterableSerializer.serialize`s…øøø€Ø Ÿ*š*Ð%6Ñ7Ô7ÐG½5À¹<¼<ˆÝð ð ð ð ð õÔ"Ð#CÐ#CÐ#CÐ#CÝ#,¨UÑ#3Ô#3ñ5ô5ð ñ ô ñ ô ð r N) r:r;r<rbÚlistÚsetÚ frozensetr$r*rr rr[r[]s1€€€€€Ø �D˜#˜yÐ )€Eð ð ð ð ð r r[có —eZdZefZd„Zd„ZdS)ÚDictSerializercóN—t|t¦«st|¦«S|Sr)r#rr )rÚkeys rÚmake_keyzDictSerializer.make_keyms%€Ý˜#�|Ñ,Ô,ð #ݘc‘?”?Ð "؈ r c ó臇‡—‰ d¦«ptd¦«Štˆˆfd„tjˆfd„t t |¦«¦«¦«D¦«¦«S)NrArBc3ó‚•K—|]9\}\}}‰ ‰j|fi‰¤Ž¦«‰j|fi‰¤ŽfV—Œ:dSr)rkr9rJs €€rr_z+DictSerializer.serialize..tsxøèè€ð ð á�‘6�A�qð�]Š]˜<˜4œ<¨Ð4Ð4¨VÐ4Ð4Ñ 5Ô 5°|°t´|ÀAÐ7PÐ7PÈÐ7PÐ7PÐ Qð ð ð ð ð ð r có•—|d‰kSrDrrEs €rrGz*DictSerializer.serialize..wrar )r0rPrUrSrTrVrrcs` `@rr*zDictSerializer.serializers“øøø€Ø Ÿ*š*Ð%6Ñ7Ô7ÐG½5À¹<¼<ˆÝð ð ð ð ð õÔ"Ð#CÐ#CÐ#CÐ#CÅYݘ%Ñ Ô ñF"ôF"ñ#ô#ð ñ ô ñ ô ð r N)r:r;r<rUr$rkr*rr rrhrhjs9€€€€€Ø ˆG€Eðððð  ð ð ð ð r rhcó—eZdZefZd„ZdS)ÚUnicodeSerializerc ó~—| dd¦«}ttd¦«¦«|d|…fzS)Nr-z%s)r0r1r©rrr)r-s rr*zUnicodeSerializer.serializesA€ð #ŸJšJÐ':¸DÑAÔAÐÝ•I˜d‘O”OÑ$Ô$¨Ð.@Ð/@Ð.@Ô(AÐ'CÑCÐCr N)r:r;r<rr$r*rr rrprp|s/€€€€€Ø ˆL€EðDðDðDðDðDr rpcó—eZdZefZd„ZdS)ÚStringSerializerc ó&—| dd¦«}trt|d|…¦«S d| d¦«d|… d¦«zdzS#t $rYnwxYwt|d|…¦«S)Nr-ú'Úutf8)r0r r1ÚdecodeÚencodeÚUnicodeDecodeErrorrrs rr*zStringSerializer.serialize‹s¶€Ø"ŸJšJÐ':¸DÑAÔAÐÝ ð 3ݘÐ0Ð0Ð0Ô1Ñ2Ô2Ð 2ð 𘟚 fÑ-Ô-Ð.@Ð/@Ð.@ÔAß’˜‘”ñ Ø"%ñ&ð &øå!ð ð ð Ø ˆDð øøøõ�EÐ,Ð,Ð,Ô-Ñ.Ô.Ð.s¶5A,Á, A9Á8A9N)r:r;r<rr$r*rr rrtrtˆs*€€€€€Ø ˆN€Eð /ð /ð /ð /ð /r rtcó(‡—eZdZeZˆfd„Zd„ZˆxZS)ÚTypeSerializercót•—tt|¦« |¦« ot|¦«Sr)Úsuperr|r&r)rrÚ __class__s €rr&zTypeSerializer.canžs6ø€Ý�¨Ñ.Ô.×2Ò2°5Ñ9Ô9Ð9ð+Ý# EÑ*Ô*ð +r c óB—|j| ¦«fi|¤ŽSr)r9rr(s rr*zTypeSerializer.serialize¢s(€ØˆtŒ|˜E×,Ò,Ñ.Ô.Ð9Ð9°&Ð9Ð9Ð9r )r:r;r<rr$r&r*Ú __classcell__)rs@rr|r|›sLø€€€€€Ø €Eð+ð+ð+ð+ð+ð:ð:ð:ð:ð:ð:ð:r r|có—eZdZefZd„ZdS)ÚBooleanSerializerc ó:—tt|¦«¦«Sr)r1Úboolr(s rr*zBooleanSerializer.serialize©s€Ý•D˜‘K”KÑ Ô Ð r N)r:r;r<r…r$r*rr rrƒrƒ¦s*€€€€€Ø ˆG€Eð!ð!ð!ð!ð!r rƒcó—eZdZefZd„ZdS)ÚFloatSerializerc ó:—tt|¦«¦«Sr)r1rPr(s rr*zFloatSerializer.serialize°s€å•E˜%‘L”LÑ!Ô!Ð!r N)r:r;r<rPr$r*rr rr‡r‡­s*€€€€€Ø ˆH€Eð"ð"ð"ð"ð"r r‡có—eZdZefZd„ZdS)ÚIntegerSerializerc ó:—tt|¦«¦«Sr)r1Úintr(s rr*zIntegerSerializer.serialize¸s€Ý•C˜‘J”JÑÔÐr N)r:r;r<rŒr$r*rr rrŠrеs*€€€€€Ø ˆF€Eð ð ð ð ð r rŠcó$—eZdZejfZd„ZdS)ÚFunctionSerializerc ó@—d|j|jt|¦«fzS)Nz)r:r;Úidr(s rr*zFunctionSerializer.serialize¿s&€Ø.Ø ŒN˜EÔ,­b°©i¬ið29ñ9ð 9r N)r:r;r<r$Ú FunctionTyper*rr rrŽr޼s.€€€€€Ø Ô Ð !€Eð9ð9ð9ð9ð9r rŽcó—eZdZefZd„ZdS)ÚLongSerializerc ó:—tt|¦«¦«Sr)r1Úlongr(s rr*zLongSerializer.serializeÈs€Ý�˜U™ œ Ñ$Ô$Ð $r N)r:r;r<r•r$r*rr rr“r“Ås*€€€€€Ø�ˆð %ð %ð %ð %ð %r r“)$Ú__doc__Ú __future__rrXrSr$Úraven.utils.compatrrrrrr r Úraven.utils.encodingr rÚserialization_managerÚ raven.utilsrÚ__all__rÚobjectrr>r[rhrprtr|rƒr‡rŠrŽr“Úregisterrr rúrŸsòðððð'Ð&Ð&Ð&Ð&Ð&àÐÐÐØÐÐÐØ € € € ððððððððððððððððððà+Ð+Ð+Ð+Ð+Ð+Ø5Ð5Ð5Ð5Ð5Ð5Ø%Ð%Ð%Ð%Ð%Ð%ð €ðððð$?ð$?ð$?ð$?ð$?�ñ$?ô$?ð$?ðNðððð˜:ñôðð,  ð  ð  ð  ð  ˜ñ  ô  ð  ð ð ð ð ð �Zñ ô ð ð$ Dð Dð Dð Dð D˜ ñ Dô Dð Dð/ð/ð/ð/ð/�zñ/ô/ð/ð&:ð:ð:ð:ð:�Zñ:ô:ð:ð!ð!ð!ð!ð!˜ ñ!ô!ð!ð"ð"ð"ð"ð"�jñ"ô"ð"ð ð ð ð ð ˜ ñ ô ð ð9ð9ð9ð9ð9˜ñ9ô9ð9ðð%ð%ð%ð%ð%ð%˜ñ%ô%ð%ðÐÔÐ3Ñ4Ô4Ð4ØÐÔÐ1Ñ2Ô2Ð2ØÐÔ˜~Ñ.Ô.Ð.ØÐÔÐ0Ñ1Ô1Ð1ØÐÔÐ/Ñ0Ô0Ð0ØÐÔ˜~Ñ.Ô.Ð.ØÐÔÐ0Ñ1Ô1Ð1ØÐÔ˜Ñ/Ô/Ð/ØÐÔÐ0Ñ1Ô1Ð1ØÐÔÐ1Ñ2Ô2Ð2Øð3Ø"ÐÔ" >Ñ2Ô2Ð2Ð2Ð2ð3ð3r