bg ddlmZ ddlmZn#e$r ddlmZYnwxYwddlmZddlZddl m Z dZ d dZ Gdd e Zd Zd ZdS) )absolute_import)Mapping)update_wrapperN iteritemscNi}|D]}|st|D] \}}|||< |SNr)dictsoutdkvs H/opt/cloudlinux/venv/lib64/python3.11/site-packages/raven/utils/basic.py merge_dictsrsO C   aLL  DAqCFF  Jcnit|}|vr dSd|<t|ttfr t |sfd|D}nJ|}t|t r)t fdt|D}|=|S)zx Executes ``func(key_name, value)`` on all values recurisively discovering dict and list scoped values. Nz<...>c4g|]}t|Svarmap).0fcontextfuncnames r zvarmap..(s';;;!vdAw--;;;rc3FK|]\}}|t||fVdSr r)rr rrrs r zvarmap..,sN331a6$7A667333333r)id isinstancelisttuple is_namedtuplerdictr)rvarrrobjidrets` `` rrrs  sGGE tD'"""GEN#e}%%3mC.@.@3;;;;;;s;;;d4oo c7 # # 333333#,S>>33333C Jrc eZdZdZdZddZdS)memoizez Memoize the result of a property call. >>> class A(object): >>> @memoize >>> def func(self): >>> return 'foo' c\|j|_|j|_|j|_||_dSr )__name__ __module____doc__r)selfrs r__init__zmemoize.__init__<s(  /|  rNc~||St||j}}||vr||||<||Sr )varsr,r)r/objtyper ns r__get__zmemoize.__get__BsB ;KCyy$-1 A::99S>>AaDt rr )r,r- __qualname__r.r0r6rrrr*r*2sA rr*cntjfdtd_S)z Runs a thing once and once only.cjrdS5jr ddddS|i|}d_|cdddS#1swxYwYdS)NT)called)argskwargsrvrlocknew_funcs rr?zonce..new_funcOs ?  F            t&v&&B"HO                   s AAAAF) threadingLockrr:)rr>r?s`@@roncerBKsR >  Dh--HHO Orct|tsdStt|dd}t|tsdSt d|DS)NF_fieldsc3FK|]}t|tkVdSr )r4str)rr5s rrz is_namedtuple..fs,))!tAww#~))))))r)r!r#getattrr4all)valuers rr$r$^sf eU # #uU Y--A a  u ))q))) ) ))r)NN) __future__rcollections.abcr ImportError collections functoolsrr@raven.utils.compatrrrobjectr*rBr$rrrrQs &&&&&&$'''''''$$$########$%$$$$$((((((0f2&*****s