q6"ddlZddlmZddlmZeZGdde Z eZ Gdde Z dS) N)exc)compatceZdZdZdZdS) BasicEntityc \|D]\}}t|||dSN)itemssetattr)selfkwkeyvalues /srv/buildsys-work-dir/castor/build_node/builder-2/WGSG1/unpkd_srcs/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/sqlalchemy/testing/entities.py__init__zBasicEntity.__init__s<((** & &JC D#u % % % % & &c ttvrtStt jjddfdtj Ddt tS#t twxYw)N(z, cdg|],}|d|dt|-S)_=) startswithgetattr).0rr s r z(BasicEntity.__repr__..sQ"~~c22#&33c(:(:(:;r)) id _repr_stackobject__repr__add __class____name__joinsorted__dict__keysremover s`rr zBasicEntity.__repr__s d88{ " "??4(( (4!!! )((( #)$-*<*<*>*>#?#?    r$xx ( ( ( (K  r$xx ( ( ( (s AC)C?N)r# __module__ __qualname__rr rrrrs2&&&)))))rrc eZdZdZdZdZdS)ComparableEntityc*t|jSr )hashr"r)s r__hash__zComparableEntity.__hash__+sDN###rc.|| Sr )__eq__)r others r__ne__zComparableEntity.__ne__.s;;u%%%%rcn||urdS|j|jksdSt|tvrdStt| tjj|j}n!#tjj j $rd}YnwxYw||}|}n ||}|}n|}|}t|j D]}| drt||} t||}nE#tt jf$r,Ytt|dSwxYwt'|drt)|t*jst'|dr\t'|dsLt|t|kr*tt|dSt/|t/|kr*tt|dSb|0||kr*tt|dS tt|dS#tt|wxYw)z'Deep, sparse compare. Deeply compare two entities, following the non-None attributes of the non-persisted object, if possible. TFNr__iter__ __getitem__r')r"r_recursion_stackr!saorm attributesinstance_staterrNO_STATElistr&rrAttributeErrorsa_excUnboundExecutionErrorr(hasattr isinstancer string_typesset)r r4self_keyabattrrbattrs rr3zComparableEntity.__eq__1s D==45?225 d88' ' '4RXX&&&, . 6,;;DAAE6:&    }%QZ(( % %??3''4((!#At,,EE&(DE!!! 5$  # #BtHH - - - - -'!5*-- %j6.77 %um44)Wv>>) ;;$u++55#(  # #BtHH - - - - -6u::U33#(  # #BtHH - - - - -4(Ue^^$  # #BtHH - - - - -  # #BtHH - - - - -  # #BtHH - - - -sb)BJ B"J !B""AJ 5DJ EJ EA.J #J + J J )J4N)r#r*r+r1r5r3r,rrr.r.*sA$$$&&&<.<.<.<.<.rr.) sqlalchemyr:rrAutilrrFrrrr9r.r,rrrOscee )))))&)))0355C.C.C.C.C.{C.C.C.C.C.r