bg,,dZddlmZddlZddlZddlZejddkZejddkZere fZ e fZ e fZe ZeZnefZ e efZ e ejfZeZe Z eZn#e$rdZYnwxYweZ eZn#e$rdZYnwxYwereZnGdd eZer d Zd Zd Zd Zn dZdZdZdZerdZ dZ!ddl"Z"e"j#Z#e"j$Z$ndZ dZ!ddl#Z#e#j#xZ#Z$ere%e&ddZ'd&dZ(nd'dZ'e'dejdddkr e'dn"ejdddkr e'dndZ)er%ddl*m+Z+dd l,m-Z.ddl/m0Z1dd!l2m3Z3dd"l4m5Z6dd#l7m8Z9nddl1m+Z+ddl.Z.ddl1Z1dd!l3m3Z3dd"l7m5Z6ddl9Z9d$Z:d%Z;dS)(z raven.utils.compat ~~~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2016 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. Utilities for writing code that runs on Python 2 and 3 )absolute_importNc*|SN)next)its I/opt/cloudlinux/venv/lib64/python3.11/site-packages/raven/utils/compat.pyadvance_iteratorr :swwyycXtdt|jDS)Nc3(K|] }d|jvVdS)__call__N)__dict__).0klasss r zcallable..Cs)OOE:/OOOOOOr )anytype__mro__)objs r callablerBs(OOT#YY=NOOOOOOr ceZdZdZdS)IteratorcFt||Sr)r__next__)selfs r rz Iterator.nextJs::&&t,, ,r N)__name__ __module__ __qualname__rr r rrHs# - - - - -r rc 6t|jdi|SNr!)iterkeysdkws r iterkeysr)OsFAFLLRLL!!!r c 6t|jdi|Sr#)r$valuesr&s r itervaluesr,RsHAHNNrNN###r c 6t|jdi|Sr#)r$itemsr&s r iteritemsr/UGAGMMbMM"""r c 6t|jdi|Sr#)r$listsr&s r iterlistsr3Xr0r c |jdi|Sr#)r)r&s r r)r)[sqzBr c |jdi|Sr#)r,r&s r r,r,^sq|!!b!!!r c |jdi|Sr#)r/r&s r r/r/aq{  R   r c |jdi|Sr#)r3r&s r r3r3dr7r c,|dS)Nzlatin-1)encodess r br=isxx """r c|Srr!r;s r ur?lr c|Srr!r;s r r=r=rr@r cJt|dddS)Nz\\z\\\\unicode_escape)unicodereplacer;s r r?r?vs!qyy002BCCCr builtinsexeccn | |}|j|ur|||#d}d}wxYwr) __traceback__with_traceback)tpvaluetbs r reraiserNsQ }"",,**2...KEBIIIIs,.4c||&tjd}|j}||j}~n||}t ddS)zExecute code in a namespace.Nzexec _code_ in _globs_, _locs_)sys _getframe f_globalsf_localsrG)_code__globs__locs_frames r exec_rYsM ?M!$$EoG~ ^F 122222r zedef reraise(tp, value, tb=None): try: raise tp, value, tb finally: tb = None )rrzdef raise_from(value, from_value): try: if from_value is None: raise value raise value from from_value finally: value = None zrdef raise_from(value, from_value): try: raise value from from_value finally: value = None c|rr!)rL from_values r raise_fromr\s r ) HTTPError)client)Queue)quote)parsec t|dt|dd}|$tdt|jz|S)N__code__ func_codezCould not get code from %r)getattr TypeErrorrr)funcrvs r get_coderisF z74d#C#C D DB z4tDzz7JJKKK Ir c ddlm}n#t$rYdSwxYwd|vrdSt|dddvr ddlm}|tddSdS) Nr)optthreadszenable-threads0)falseoffnorm)warnzWe detected the use of uwsgi with disabled threads. This will cause issues with the transport you are trying to use. Please enable threading for uwsgi. (Enable the "enable-threads" flag).) uwsgirk ImportErrorstrgetlowerwarningsrqWarning)rkrqs r check_threadsrys  C 377#S ) )**00226QQQ!!!!!! W;<< = = = = =RQs  r)NN)<__doc__ __future__roperatorrQtypes version_infoPY2PY3rt string_typesint integer_typesr class_types text_typebytes binary_type basestringlong ClassTyperDrr NameErrorrobjectrr)r,r/r3r=r?ioStringIOBytesIOre __import__rYrNr\ urllib.errorr]httpr^httpliburllib.requestrequesturllib2queuer_ urllib.parser` urllib_quoteurllibraurlparseriryr!r r rs^:'&&&&&  qQ qQ 4LDM%KIKK;L$KM)KIKPHHPPPPPPPPP-HH-----6--- !"""$$$#######   """!!!!!!+### III{HjGGDDDOOO!**Hw  GJJz**F 3 3E      3 3 3 3 E BQB6!! E  bqbF"" E  &&&&&&&&&&&&$$$$$$222222(((((((!!!!!!NNNNNN,,,,,,OOO=====s$AA*)A*0A33A>=A>