bgdZddlZddlZddlZddlZ ddlZdZn #e$rdZYnwxYweeddZ iZ iZ e e eee eefZe de ejejeje fDZdZe dedede dedededejdejdejdi fd Zdd Zd Zdd Z d Z!e"Z"dZ#e#e_"e$edre`%eej&D] Z'ee'edS)z@ Module to show if an object has changed since it was memorised NTF getrefcountcdS)Nr)xs \/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/dill/__diff.pyrs1c#4K|]}t|VdSN)id).0is r r!s8%%!1%%%%%%r ct|tvst|tur |tvrdSt|ddS)zQ Gets all the attributes of an object though its __dict__ or return None N__dict__)typebuiltins_typesgetattr)objs r get_attrsr%sG CyyN"" s))t  ~ 5 5 3 D ) ))r c& |j}n#t$rt|}YnwxYwt}||vr,||r"||dr|S|SdSt r6|t jt jj j fvr|j r |j r|SgS||drc||drW||drK||dr?||dr3||dr'd||<||dr|S|Sd||<dS)z9 Gets all the items in a sequence or return None copy __contains____iter____len__TFN) __class__AttributeErrorrhasattrr HAS_NUMPYnumpyndarraymacoreMaskedConstantshapesize)rcacheo_typehsattrs rget_seqr*/s{ c F  = vc6"" "xxzz!J   v%-1M!NNN 9  JI ^ $ $ Z)@)@  6#y ! ! &,fV^&D&D  6&* % % *0&*C*C f 6#v   88::  f ts  &&c t|}|tvr|r |tvrdStt|}|d}n-t fd|D}t |}|d}n_t|dr.t fd|D}n!t|dsd}nfd|D}||ft|<|t|<t| fd|D|_t|dr"fd|DdSt|drfd |DdS|dSdS) z Adds an object to the memo, and recursively adds all the objects attributes, and if it is a container, its items. Use force=True to update an object already in the memo. Updating is not recursively done. Nc38K|]\}}||fVdSr rr keyvalueid_s rrzmemorise.._s4EEZS%SSZZ(EEEEEEr itemsc3JK|]\}}||fVdSr rr-s rrzmemorise..es<HH Uss3xxE +HHHHHHr rc&g|] }|Srr)r rr0s r zmemorise..is!$$$Q##a&&$$$r c,g|]\}}|Srr)r r.r/mems rr4zmemorise..os%000 UU000r cBg|]\}}||fSrr)r r.itemr6s rr4zmemorise..ssB ) ) )dc#hhD " ) ) )r c&g|] }|Srr)r r8r6s rr4zmemorise..ws!)))tT)))r ) r memo dont_memordictr1r*r id_to_objmemorise) rforceobj_idgattrs_idsseq_idr0r6s @@rr>r>Qs WWF ~~e~v':': C#AyEEEE17799EEEEE Ay G  %HHHHaggiiHHHHH Q " "%$$$$!$$$V#DLIf C}0000aggii0000} 1g    ) ) ) )ggii ) ) ) ) ) )q)$$ ))))q))))))#a&&&&&}r ctjtjtcfdt tDdS)Nc`g|]*\}}|dk||f+S)r)r r0ritopmpsrcs rr4z release_gone..}sJhc3 C1  d3iiC r )r=popr:rlistr1)rHrIrJs@@@r release_gonerM{shM48[MD"c$y/@/@*A*Ar c|rdtjvrt`|i}t|}||vr|rt ||S||S|t vridg||<|rdS||S|t vr#|rdStdt|zidf||<t}t}t|i}n{t |d}|j } tfd|D} D]1\} } || | | dks|| |ddr| || <2t|} d} | t| drt |d }t!| t!|krd} nt|d rc|j } | D]F\} }||| || ks|| |dds|||ddrd} nGn7t#| |D]&\}}|||ks|||ddrd} n'|| f||<|r|p| S|| fS) aG Check an object against the memo. Returns a list in the form (attribute changes, container changed). Attribute changes is a dict of attribute name to attribute value. container changed is a boolean. If simple is true, just returns a boolean. None for either item means that it has not been checked yet _NFTzObject not memorised rc3(K|] }|v|dfV dSr r)r r.attrss rrz whats_changed..s1KKc#U:J:JDz:J:J:J:JKKr rr1)builtinsrrOr anyr;r: RuntimeErrorstr whats_changedrgetr<r1r*rlenzip)rseensimplefirstr@chngdr0changed obj_attrsobj_getr.or1seq_diffobj_seqr8rjrQs @rrWrWs  (# # # <D WWF ~~  %tF|$$ $F|E{V  5F| t    C46SABB B;DL E C cNNE }LO -KKKKYKKKKKkkmm ! !FCs1vvd++++uuQdE/J/J+   CLLEH y 9 9v,q/ JJ#g,, & &HH S' " " kG"[[]]   T3t99C 1 111eCtU332eD$e442 $HE 2 E7++  13q66Q;;%%4u"="=;#HEH$DL #"(" H r c$d|d<t|i|S)NTr\)rW)argskwdss r has_changedrisDN $ '$ ' ''r c8ttj}t |i|}ttj|}|D]!}t tj|"|S)zn Replaces the default __import__, to allow a module to be memorised before the user can change it )setsysmoduleskeys __import__ differencer>)rgrhbeforemodafterms r_imprus !!## $ $F d #d # #C    "" # # . .v 6 6E !!Q    Jr rO)F)NFT)(__doc__rSosrltypesr r ImportErrorrrr:r=rkrVrLr< frozensetintrrmpath_importer_cacheenvironr;rtupler ModuleType FunctionTypeBuiltinFunctionTyper*r>rMrWrirorurrOvaluesrrrr rrs LLLIIIIIgc=**55    c4sIs;<< C%%ck33J Z $%%% % % ***UIudD#tdE4u(%1CU15:D''''T KKKK\(((     78S  4 ""$$ % %C HSMMMM s %%