iddZddlZddlZddlmZddlZddlmZdejd<GddeZGd d eZ d Z d Z d Z e dkr e e e dSdS)z; test dill's ability to pickle abstract base class objects N)ABC) FunctionTypeTrecurseceZdZejdZeejdZejejdZe ejdZ e ejdZ dS) OneTwoThreecdS)zA methodNselfs H/opt/cloudlinux/venv/lib/python3.11/site-packages/dill/tests/test_abc.pyfoozOneTwoThree.foos  cdS)zProperty getterNr r s r barzOneTwoThree.bar  rcdS)zProperty setterNr r values r rzOneTwoThree.barrrcdS)z Class methodNr clss r cfoozOneTwoThree.cfoo rrcdS)z Static methodNr r rr sfoozOneTwoThree.sfoo&rrN) __name__ __module__ __qualname__abcabstractmethodr propertyrsetter classmethodr staticmethodrr rr rrs     X  Z  Z   [   \   rrc|eZdZdZdZedZejdZedZ e dZ dS) EasyAsAbccd|_dSN_barr s r __init__zEasyAsAbc.__init__-s  rcdS)NzInstance Method FOOr r s r r z EasyAsAbc.foo0s$$rc|jSr'r(r s r rz EasyAsAbc.bar3s yrc||_dSr'r(rs r rz EasyAsAbc.bar7s  rcdS)NzClass Method CFOOr rs r rzEasyAsAbc.cfoo;s""rcdS)NzStatic Method SFOOr r rr rzEasyAsAbc.sfoo?s##rN) rrrr*r r rr!r"rr#rr rr r%r%,s%%%X ZZ##[#$$\$$$rr%ctj5tjdtjdddn #1swxYwYt }d|_tj|}dS)Nignorec |dzS)Nr )xs r z$test_abc_non_local..Ns QTr)warningscatch_warnings simplefilterdillPicklingWarningr%rcopy)instance depickleds r test_abc_non_localr>Cs  " "==h(<================== {{H!>HL (##IIIs AAAc0Gddt}tj|}Gfdd|} |tdn#t$r }Yd}~nd}~wwxYwtj|f\}}dS)z- Test using locally scoped ABC class c4eZdZejdZdZdS) test_abc_local..LocalABCcdSr'r r s r r z$test_abc_local..LocalABC.foo\s Drc t|Sr')reprr s r bazz$test_abc_local..LocalABC.baz`s:: rN)rrrrrr rEr rr LocalABCrA[s@           rrFc(eZdZdZfdZxZS)test_abc_local..RealcdS)NzTrue!r r s r r z test_abc_local..Real.fooks7rcNdt|zS)NzMy )superrE)r Real __class__s r rEz test_abc_local..Real.bazns$5t,,00222 2r)rrrr rE __classcell__)rMrLs@r rLrHjsM    3 3 3 3 3 3 3 3 3 3rrLzFailed to raise type errorN)rr9r;print TypeError)rFlabcrealelabc2pikrLs @r test_abc_localrVWs3 9X  D3333333t333 466D  *++++      D$$&&>**JE333s A A2-A2ctjddi}Gdd}Gdd}||tj|||f}tj|\}}}dS)z7 Test calling metaclass and cache registration LocalMetaABCr ceZdZdS)-test_meta_local_no_cache..ClassyClassNrrrr rr ClassyClassrZs rr\ceZdZdS)-test_meta_local_no_cache..KlassyClassNr[r rr KlassyClassr^s drr_N)rABCMetaregisterr9dumpsloads)rXr\r_reslmabccckcs r test_meta_local_no_cacherhs;~r266L                +&&& *lK= > >CJsOOME2rrrr__main__)__doc__r9rrr6typesrsettingsrr%r>rVrhrr rr rms%  i     #   <$$$$$ $$$.444(/*/*/*b!!!0 zNr