⇯]kSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK r SSK r SSK r SSK r SSK Jr SSKJrJrJr SSKJr SSKJr SSKJr SSKJrJr SqSr"S S 5r"S S 5rS rSr"SS5r"SS5r"SS\R@5r!\RDS+Sj5r#"SS\!5r$"SS\!5r%"SS\R@5r&"SS\!5r'SSK J(r( "SS \(RR5r*"S!S"\(RR5r+"S#S$\R@5r,"S%S&\R@5r-S'r.S(\.0r/S)r0\1S*:Xa\Rd"5 gg),N)support) script_helper ALWAYS_EQsuppress_immortalization) gc_collect) import_helper)threading_helper)is_wasiPy_DEBUGfoobarc\rSrSrSrSrg)CcgNselfs 8/opt/alt/python313/lib64/python3.13/test/test_weakref.pymethodC.methods rN)__name__ __module__ __qualname____firstlineno__r__static_attributes__rrrrrs rrc\rSrSrSrSrSrg)Callable"NcXlgrbarrxs r__call__Callable.__call__%srr")rrrrr#r&rrrrrr"s Crrc SnU$)Ncgrrrrrfcreate_function..f*sTrr)r*s rcreate_functionr,)s  Hrc*[5R$r)rrrrrcreate_bound_methodr.-s 3::rc>\rSrSrSrSrSrSrSrSr Sr S r g ) Object1cXlgrarg)rr4s r__init__Object.__init__2src SUR-$)Nz r3rs r__repr__Object.__repr__4stxx''rcj[U[5(aURUR:H$[$r isinstancer0r4NotImplementedrothers r__eq__ Object.__eq__6s( eV $ $88uyy( (rcj[U[5(aURUR:$[$rr;r>s r__lt__ Object.__lt__:s( eV $ $88eii' 'rc,[UR5$r)hashr4rs r__hash__Object.__hash__>sDHH~rcg)Nrrs r some_methodObject.some_method@rcg)Nrrs r other_methodObject.other_methodBrMrr3N) rrrrr5r8r@rCrGrKrPrrrrr0r01s%(rr0c\rSrSrSrSrg)RefCycleFcXlgrcyclers rr5RefCycle.__init__Gs rrVNrrrrr5rrrrrSrSFsrrSc \rSrSrSrSrSrg)TestBaseKcSUlgNrcbcalledrs rsetUpTestBase.setUpMs  rc.U=RS- slgNr_)rrefs rcallbackTestBase.callbackPs  rr_N)rrrrrargrrrrr[r[Ks rr[c#&^^# SmUU4Sjn[R"5 [R"US9nUR 5 Sv SmUR 5 SSS5 g!SmUR 5 f=f!,(df  g=f7f)zJ Ensure GC collections happen in a different thread, at a high frequency. Fc~>T(d5[R"T5 [R"5 T(dM4ggr)timesleepgccollect)period please_stopsrrn"collect_in_thread..collect[s" JJv  JJL+r)targetNT)r disable_gc threadingThreadstartjoin)rorntrps` @rcollect_in_threadryTsq K       G ,    K FFH   K FFH  s4B%B A) B B)A==B B BcV\rSrSrSr\R S5rSrSr \R S5r Sr Sr S r S r\R S 5rS rS rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"Sr#S r$S!r%S"r&S#r'S$r(S%r)\*"5S&5r+S'r,S(r-\*"5S)5r.S*r/S+r0S,r1S-r2S.r3S/r4\*"5S05r5S1r6S2r7S3r8\9Rt"\;=(a \S7r?S8r@S9rA\R S:5rBS;rCg<)=ReferencesTestCasejcUR[5 UR[5 UR[5 [5n[R "U5n[ U5 A[ U5 gr)check_basic_refrr,r.weakrefrfrepr)rowrs rtest_basic_ref!ReferencesTestCase.test_basic_reflsT Q _- 01 C [[^ R  Rrc[5n[R"U5nS[S:XaSO[RS-[R S3nUR [U5U5 Sn[5 UR [U5S5 "SS5nU"5n[R"U5nS[S:XaSOURS-UR S 3nUR [U5U5 g) Nz z!c$\rSrSr\S5rSrg)2ReferencesTestCase.test_ref_repr..WithNamecg)N custom_namerrs rr;ReferencesTestCase.test_ref_repr..WithName.__name__s$rrN)rrrrpropertyrrrrWithNamers  % %rrz%' at 0x[0-9a-fA-F]+ +\(custom_name\)>) rrrfrrr assertRegexrr)robjrfregexrobj2ref2s r test_ref_repr ReferencesTestCase.test_ref_reprzsckk#"j0BallS6HI!..IYZ" #  cE*  c= @ % % z{{4 "j0Bh6I6IC6OP%%&'3 4  dU+rc"SS[5nU"SS9n[R"U5nURS[ U55 URS[ U55 g)Nc\rSrSrSrSrg)>ReferencesTestCase.test_repr_failure_gh99184..MyConfigc X$rrr$s r __getattr__JReferencesTestCase.test_repr_failure_gh99184..MyConfig.__getattr__s wrrN)rrrrrrrrrMyConfigr rrrO)offset)dictrrfassertInrstr)rrr obj_weakrefs rtest_repr_failure_gh99184,ReferencesTestCase.test_repr_failure_gh99184sN t a kk#&  j${"34 j#k"23rcUR[5 UR[5 UR[5 gr)check_basic_callbackrr,r.rs rtest_basic_callback&ReferencesTestCase.test_basic_callbacks- !!!$ !!/2 !!"56rc"[R"S5nURnU"5n[R"U5nUR U"5U5 AUR U"55 URU5 URU5 g)N _testcapi) r import_modulecreate_cfunctionrrfassertIs assertIsNoner~r)rrrr*rs rtest_cfunction!ReferencesTestCase.test_cfunctionst!// < $55   [[^ bdA  "$ -. !!"23rcD[5n[R"XR5n[R"XR5nA[ 5 UR U"5S5 UR U"5S5 UR URSS5 g)Nz$expected reference to be invalidatedz-callback not called the right number of times)rrrfrgrr assertEqualr`rrref1rs rtest_multiple_callbacks*ReferencesTestCase.test_multiple_callbackssu C{{1mm,{{1mm,   $&"HI $&"HI D FrcU4Sjn[5n[R"X!5Ul[R"X!5nAg)Nc$UR5 grrf)objectrs rrgDReferencesTestCase.test_multiple_selfref_callbacks..callbacks HHJr)rrrf)rrgcrs rtest_multiple_selfref_callbacks2ReferencesTestCase.test_multiple_selfref_callbackss4#'  C;;q+{{1' rc`[5nUR[[RUSS9 g)N)rg)r assertRaises TypeErrorrrf)rrs rtest_constructor_kwargs*ReferencesTestCase.test_constructor_kwargss$ C )W[[!dCrc[5nSUl[R"XR5n[R"XR5nA[ 5 SnUR [XB5 UR [XC5 [R"[55n[ 5 UR [[U5 URURS5 g)NrecUR grr")proxys rcheck0ReferencesTestCase.test_proxy_ref..checks IIrr) rr#rrrgrrReferenceErrorboolrr`)rrrrrref3s rtest_proxy_ref!ReferencesTestCase.test_proxy_refs C}}Q .}}Q .    .%6 .%6}}QS!  .$5 *rcB[5n[R"XR5nS[S:XaSO[R S-[R S3nUR[U5U5 Sn[5 UR[U5S5 g)Nz") rrrrgrrrrrr)rrrfrs rtest_proxy_repr"ReferencesTestCase.test_proxy_reprscmmC/"j0BallS6HI!..IYZ" #  cE*  c? BrcU"5n[R"U5nURU"5S5 U"5nURX$S5 g)Nz,weak reference to live object should be livez-() should return original object if live)rrfassertIsNotNoner)rfactoryrrfo2s rr~"ReferencesTestCase.check_basic_refsE Ikk!n SUC E U aD FrcSUlU"5n[R"X R5nA[ 5 UR URSS5 UR U"5S5 g)Nrrez(callback did not properly set 'cbcalled'z3ref2 should be dead after deleting object reference)r`rrfrgrrr)rrrrfs rr'ReferencesTestCase.check_basic_callbacksZ Ikk!]]+   ? A #%J Lrc.[5n[R"U5n[R"U5n[R"U5nUR X$S5 [5n[R"U5n[R"U5n[R"U5nUR X$S5 UR [R "U5SS5 A[5 UR [R "U5SS5 g)Nz1reference object w/out callback should be re-usedrzwrong weak ref count for objectrez4wrong weak ref count for object after deleting proxy)rrrfrrrgetweakrefcountr)rrrrrs rtest_ref_reuse!ReferencesTestCase.test_ref_reuse s C{{1~ a {{1~ dH J C a {{1~{{1~ dH J 003Q6 8   003QK Mrc[5n[R"U5n[R"U5n[R"U5nUR X$S5 g)Nz4proxy object w/out callback should have been re-used)rrrrfr)rrproxy1rfproxy2s rtest_proxy_reuse#ReferencesTestCase.test_proxy_reuse$sD Cq!kk!nq! fK Mrc[5nURU[R"U55 [R "5n[R"U5nUR US5 URS5 UR[U5S5 URUS5 SS/USS&UR[U5S5 UR[U5S5 URSUS5 SUS'URUSS5 URUSS5 [R "U5n[R"U5nURX55 [R "[S 55n[R"U5nURUSSUSS5 URUSSUSS5 URUSSUSS5 URUSSUSS5 g) Nz(proxy for empty UserList should be false rez+proxy for non-empty UserList should be truerz,proxy didn't support __contains__() properlyrO ) r check_proxyrr collectionsUserList assertFalseappendrlen assertTruerrange)rrLpL2p2L3p3s rtest_basic_proxy#ReferencesTestCase.test_basic_proxy,s C GMM!,-  " MM!  FG   Q# HI1v! Q# Q# aJK! 1q! 1q!  ! !! $ ]]2    ! !%) , ]]2  A1& ABAB( BQBQ( Aa"Qq'*rc"SS[5nU"5nURS[[R"U555 UR [ [R"U55S5 g)Nc \rSrSrSrSrSrg)0ReferencesTestCase.test_proxy_unicode..CiJcg)Nstringrrs r__str__8ReferencesTestCase.test_proxy_unicode..C.__str__Krcg)Nbytesrrs r __bytes__:ReferencesTestCase.test_proxy_unicode..C.__bytes__MrrrN)rrrrrrrrrrrrJs   rrrr)rrdirrrrbytes)rrinstances rtest_proxy_unicode%ReferencesTestCase.test_proxy_unicodeHsQ  3 k3w}}X'>#?@ w}}X67Brc"SS5nU"5n[R"U5nUR[R"U5S5 g)Nc\rSrSrSrSrg).ReferencesTestCase.test_proxy_index..CiTcgNrrrs r __index__8ReferencesTestCase.test_proxy_index..C.__index__UrrN)rrrrrrrrrrr T rrr)rrroperatorindexrrrrs rtest_proxy_index#ReferencesTestCase.test_proxy_indexSs<   C MM!  *B/rc"SS5nU"5n[R"U5nURUS-S5 US-nURUS5 g)Nc \rSrSrSrSrSrg),ReferencesTestCase.test_proxy_div..Ci\cgN*rr>s r __floordiv__9ReferencesTestCase.test_proxy_div..C.__floordiv__]rrcg)Nrr>s r __ifloordiv__:ReferencesTestCase.test_proxy_div..C.__ifloordiv___rrrN)rrrrrr#rrrrrr\s   rrrOrr"rrrrs rtest_proxy_div!ReferencesTestCase.test_proxy_div[sP   C MM!  a$ a Brc"SS5nU"5n[R"U5nURUS-S5 URSU-S5 US-nURUS5 g)Nc&\rSrSrSrSrSrSrg)/ReferencesTestCase.test_proxy_matmul..Cihcg)Nrr>s r __matmul__:ReferencesTestCase.test_proxy_matmul..C.__matmul__ircg)N]rr>s r __rmatmul__;ReferencesTestCase.test_proxy_matmul..C.__rmatmul__kr/rcg)N1rr>s r __imatmul__;ReferencesTestCase.test_proxy_matmul..C.__imatmul__msrrN)rrrrr-r2r6rrrrrr*hs   rrrOr,r1r5r%rs rtest_proxy_matmul$ReferencesTestCase.test_proxy_matmulgsd   C MM!  Q% Q% Q C rcBUR[R5 gr)check_shared_without_callbackrrfrs r test_shared_ref_without_callback3ReferencesTestCase.test_shared_ref_without_callback~s **7;;7rcBUR[R5 gr)r;rrrs r"test_shared_proxy_without_callback5ReferencesTestCase.test_shared_proxy_without_callbacks **7==9rc>[S5nU"US5nU"US5nURX4S5 AAU"U5nU"US5nURX4S5 AAU"U5nU"U5nURX4S5 AAU"US5nU"U5nURX4S5 g)Nrez%both callbacks were None in the C APIz&callbacks were NULL, None in the C APIz%both callbacks were NULL in the C APIz&callbacks were None, NULL in the C API)r0r)rmakerefrp1rs rr;0ReferencesTestCase.check_shared_without_callbacks 1I Q  Q  bEF  QZ Q  bFG  QZ QZ bEF  Q  QZ bFGrc[5n[R"U5nURX5 UR [ U5[R S5 U"S5 URURSS5 U"SS9 URURSS5 UR[U5 UR[USSS5 g) Nzproxy is not of callable typez twinkies!z1call through proxy not passed through to originalzSplat.)r%rerr) rrrrrtypeCallableProxyTyperr#rr)rrrs rtest_callable_proxy&ReferencesTestCase.test_callable_proxys J}}Q ! d4j'";";4 6 [  H J x H J )T* )T1a3rcSUlURURSS5 SUlURURSS5 U?UR[US5S5 SUlURURSS5 SUlURURSS5 U?UR[US5S 5 g) Nrez)proxy does not reflect attribute additionrz-proxy does not reflect attribute modificationfooz(proxy does not reflect attribute removalz4object does not reflect attribute addition via proxyz8object does not reflect attribute modification via proxyz3object does not reflect attribute removal via proxy)rKrrhasattr)rrrs rrReferencesTestCase.check_proxys A@ B AD F E .? A  K M   F H I E*J Lrc"SS5nU"5n[R"U5nUS URURS5 g)Nc\rSrSrSrSrSrg)3ReferencesTestCase.test_proxy_deletion..FooiNcXlgrresult)raccessors r __delitem__?ReferencesTestCase.test_proxy_deletion..Foo.__delitem__s& rrR)rrrrrSrUrrrrFoorPs F 'rrWr)rrrrS)rrWgr*s rtest_proxy_deletion&ReferencesTestCase.test_proxy_deletions> ' ' E MM!  aD 1%rc"SS[5nU"5nUR[[R"U55[U55 g)Nc\rSrSrSrg)0ReferencesTestCase.test_proxy_bool..ListirNrrrrrrrrListr]s$rr_)listrrrr)rr_lysts rtest_proxy_bool"ReferencesTestCase.test_proxy_bools34v gmmD12DJ?rc^Sm"U4SjS5nU"5m[R"T5nUR[5 SU; SSS5 g!,(df  g=f)Nc">\rSrSrU4SjrSrg)1ReferencesTestCase.test_proxy_iter..MyObjic>@[$r)r=)rrs r__iter__:ReferencesTestCase.test_proxy_iter..MyObj.__iter__s %%rrNrrrrrhr)rsrMyObjrfs  & &rrkblech)rrrr)rrkrrs @rtest_proxy_iter"ReferencesTestCase.test_proxy_itersN & & g MM#    y ) qL * ) )s A A c^^/SQmU4SjnU"5m"U4SjS5nU"5nUR[U5/SQ5 g)N)rJrOc3&># TShvN gN7frr)arrsr iterator_func9ReferencesTestCase.test_proxy_next..iterator_funcs NNs c">\rSrSrU4SjrSrg):ReferencesTestCase.test_proxy_next..IteratesWeaklyic0>[R"T5$rrr)rits rrhCReferencesTestCase.test_proxy_next..IteratesWeakly.__iter__s}}R((rrNrj)rysrIteratesWeaklyrvs  ) )rr{)rr`)rrsr{weak_itrrrys @@rtest_proxy_next"ReferencesTestCase.test_proxy_nexts>  _ ) )!" g 2rc^Sm"U4SjS5nU"5nSnUR[U5 [U5 SSS5 g!,(df  g=f)Ncgr^rrrr8ReferencesTestCase.test_proxy_bad_next..s!rc">\rSrSrU4SjrSrg)1ReferencesTestCase.test_proxy_bad_next..Aic0>[R"T5$rrx)rnot_an_iterators rrh:ReferencesTestCase.test_proxy_bad_next..A.__iter__s}}_55rrNrj)rsrArs  6 6rrz'Weakref proxy referenced a non-iterator)assertRaisesRegexrr`)rramsgrs @rtest_proxy_bad_next&ReferencesTestCase.test_proxy_bad_nextsE$ 6 6 C7  # #Is 3 G4 3 3s A Ac "SS5nU"5nURSR[[R"U555S5 g)Nc \rSrSrSrSrSrg)5ReferencesTestCase.test_proxy_reversed..MyObjicg)Nrrrs r__len__=ReferencesTestCase.test_proxy_reversed..MyObj.__len__rc[S5$)Ncba)iterrs r __reversed__BReferencesTestCase.test_proxy_reversed..MyObj.__reversed__s E{"rrN)rrrrrrrrrrrkrs   #rrkrr)rrwreversedrrrrkrs rtest_proxy_reversed&ReferencesTestCase.test_proxy_reverseds< # # g '--*Frc"SS5nU"5nUR[5 [[R"U55 SSS5 "SS5nU"5nUR[5 [[R"U55 SSS5 g!,(df  N]=f!,(df  g=f)Nc\rSrSrSrSrg)1ReferencesTestCase.test_proxy_hash..MyObjicgrrrs rrG:ReferencesTestCase.test_proxy_hash..MyObj.__hash__rrrNrrrrrGrrrrrkrrrrkc\rSrSrSrSrg)riNrrrrrrkrsHr)rrrFrrrs rtest_proxy_hash"ReferencesTestCase.test_proxy_hash s  g   y ) s# $*  g   y ) s# $* )* )* )s B5 B/ B,/ B=cD[5n[R"U5n[R"XR5nUR [R "U5SS5 [R "U5n[R "XR5nUR [R "U5SS5 AAAA[5 UR [R "U5SS5 UR [R "S5SS5 g)Nrz*got wrong number of weak reference objectsrJrzAweak reference objects not unlinked from referent when discarded.rez2got wrong number of weak reference objects for int)rrrfrgrrrr)rrrrrrs rtest_getweakrefcount'ReferencesTestCase.test_getweakrefcounts C{{1~{{1mm, 003QA Cq!q--0 003QA C $  003Q1 2 003QI Krc[5n[R"XR5n[R"XR5nA[ 5 UR [R "U5U/S5 [5n[R"XR5n[R"XR5nA[ 5 UR [R "U5U/S5 A[ 5 UR [R "U5/S5 UR [R "S5/S5 g)Nzlist of refs does not matchzlist of refs not clearedrez#list of refs does not match for int)rrrfrgrr getweakrefsrs rtest_getweakrefs#ReferencesTestCase.test_getweakrefs3s C{{1mm,{{1mm,   ,,Q/$2 4 C{{1mm,{{1mm,   ,,Q/$2 4   ,,Q// 1 ,,Q/: .FiNrNr^rrrFrN rrg@g?g@)floatrrr)rrr*rs rtest_newstyle_number_ops+ReferencesTestCase.test_newstyle_number_opsMsM   cF MM!  S#& q#&rc^^^"SS[5m0mU4SjmUUU4SjnU"5 URS5 U"5 URS5 g!Ta N"f=f!Ta gf=f)Nc\rSrSrSrg)?ReferencesTestCase.test_callbacks_protected..BogusErroriXrNr^rrr BogusErrorrXrrrc >TU grr)kdatas rremove;ReferencesTestCase.test_callbacks_protected..remove[s QrcB>SnST[R"UT5'Te)Ncg)NrrrrrrRReferencesTestCase.test_callbacks_protected..encapsulate..^sr)rrf)r*rrrs r encapsulate@ReferencesTestCase.test_callbacks_protected..encapsulate]s#A+/DQ' ( rzexception not properly restored) Exceptionfail)rrrrrs @@@rtest_callbacks_protected+ReferencesTestCase.test_callbacks_protectedUsw     9 M II7 8 9 M II7 8       s"AA"AA"A+*A+c^SSKm"SS[5nU"5n[R"UU4Sj5nAAU"5nU"5Ul[R"URU4Sj5nU"5nXElAAg)Nrc\rSrSrSrg)0ReferencesTestCase.test_sf_bug_840829..Ci{rNr^rrrrr{rrrc&>TR"5$rrnignorerms rr7ReferencesTestCase.test_sf_bug_840829..s 2::TR"5$rrrs rrrs bjjlr)rmrrrfic1)rrrrrc2rms @rtest_sf_bug_840829%ReferencesTestCase.test_sf_bug_840829nso    C [[7 8   Ss [[: ; S  rcSSKn"SS[5n"SS[5nU"5nX$l[R"X$R 5UlAAAUR"5 g)Nrc\rSrSrSrg)4ReferencesTestCase.test_callback_in_cycle..JirNr^rrrJrrrrc\rSrSrSrSrg)5ReferencesTestCase.test_callback_in_cycle..IIicUR gr)rrrs r acallback?ReferencesTestCase.test_callback_in_cycle..II.acallbacks rrN)rrrrrrrrrIIrs rr)rmrrrrfrrrn)rrmrrIs rtest_callback_in_cycle)ReferencesTestCase.test_callback_in_cyclesQ     D{{1kk*2 q" rcSSKn"SS5nU"5U"5pCXDlX4l[R"X4R 5UlAAUR"5 g)Nrc\rSrSrSrSrg)=ReferencesTestCase.test_callback_reachable_one_way..CicLUR UR UR grmerrrs rcb@ReferencesTestCase.test_callback_reachable_one_way..C.cbrrNrrrrrrrrrrr rr)rmrrrrfrrrn)rrmrrrs rtest_callback_reachable_one_way2ReferencesTestCase.test_callback_reachable_one_waysH   acB B&  rcSSKn"SS[5n"SS5nU"5U"5pTXUlXEl[R "XER 5UlAAAAUR"5 g)Nrc\rSrSrSrSrg)=ReferencesTestCase.test_callback_different_classes..CicLUR UR UR grrrs rr@ReferencesTestCase.test_callback_different_classes..C.cbrrrNrrrrrrrrrc\rSrSrSrg)=ReferencesTestCase.test_callback_different_classes..DirNr^rrrDrrrr) rmrrrrrfrrrn)rrmrrrrs rtest_callback_different_classes2ReferencesTestCase.test_callback_different_classessX     acB B& Aq rc(^SSKn/m"U4SjS[5nU"S5U"S5pCXClX4l[R"XCR 5Ul[R"X4R 5UlU4Sjn[R"X%5nAAAURT/5 UR"5 URTS/5 URU"5S5 TSS2 UR"5 URT/5 g)Nrc(>\rSrSrSrU4SjrSrg)AReferencesTestCase.test_callback_in_cycle_resurrection..CicXlgr attribute)rvalues rr5JReferencesTestCase.test_callback_in_cycle_resurrection..C.__init__s!&rc<>TRUR5 gr)rrrralists rrKReferencesTestCase.test_callback_in_cycle_resurrection..C.acallbacks TVV$rrN)rrrrr5rrrsrrrs ' % %rrrerc(>TRS5 g)N C went awayrrrs r C_went_awayKReferencesTestCase.test_callback_in_cycle_resurrection..C_went_aways LL 'rr ) rmrrrrfrrrrn)rrmrrrr rrs @r#test_callback_in_cycle_resurrection6ReferencesTestCase.test_callback_in_cycle_resurrections % %1qtB B - B - ( [[ ( A # 0 t$ !H  #rcX^SSKn/mU4Sjn"U4SjS[5nU"5U"5pTXTlXElURn[R "XV5Ul[R "XeR5Ul[R "Xb5nURU"5U5 AAAAURT/5 UR"5 URTS/5 URU"5S5 TSS2 UR"5 URT/5 g)Nrc(>TRS5 g)Nsafe_callback calledr r s r safe_callbackDReferencesTestCase.test_callbacks_on_callback..safe_callback's LL/ 0rc">\rSrSrU4SjrSrg)8ReferencesTestCase.test_callbacks_on_callback..Ci*c(>TRS5 g)Nz cb calledr rs rr;ReferencesTestCase.test_callbacks_on_callback..C.cb+s [)rrNrrsrrr*s  * *rrr) rmrr?rrrfrrrrn) rrmrrrdrg external_wrrs @rtest_callbacks_on_callback-ReferencesTestCase.test_callbacks_on_callback"s 1 * *sAC144{{1'{{8TT*kk(:  kmX. aA #  !7 89 - !H  #rcBUR[R5 gr)check_gc_during_creationrrfrs rtest_gc_during_ref_creation.ReferencesTestCase.test_gc_during_ref_creationHs %%gkk2rcBUR[R5 gr)rrrrs rtest_gc_during_proxy_creation0ReferencesTestCase.test_gc_during_proxy_creationKs %%gmm4rcv[R"5n[R"SSS5 [R"5 "SS5nSnU"5nU"5nXflU"U5UlU"5n[ R"XT5 [R"U6 g![R"U6 f=f)Nrec\rSrSrSrg)6ReferencesTestCase.check_gc_during_creation..AiRrNr^rrrrr&Rrrrcgrr)argss rrg=ReferencesTestCase.check_gc_during_creation..callbackU r)rm get_threshold set_thresholdrnrrrrf)rrB thresholdsrrg referencedrs rr+ReferencesTestCase.check_gc_during_creationNs%%'  Aq!    S Cz" *A KK -   j )B  j )s 2B##B8c0"SS[5nU"5ng)Nc\rSrSrSrSrg)>ReferencesTestCase.test_ref_created_during_del..Targetilc0[R"U5qgr)rrf ref_from_delrs r__del__FReferencesTestCase.test_ref_created_during_del..Target.__del__ms&{{40 rrNrrrrr5rrrrTargetr2ls 1rr8)r)rr8ws rtest_ref_created_during_del.ReferencesTestCase.test_ref_created_during_delgs  1V 1 Hrc [R"[5nUR[UR SSSSS5 [ R"5 gr^)rrfrrrr5rmrn)rrs r test_initReferencesTestCase.test_initss9 KK " )QZZAq!Q? rc"SS[5n/n[R"[5 [R"XR5nSn[ R "5 URU"5S5 URX#/5 g)Nc\rSrSrSrg)*ReferencesTestCase.test_classes..Ai~rNr^rrrrrB~rrr)rrrfintrrmrnr)rrlrs r test_classesReferencesTestCase.test_classes{sa    C KK88 $   d# C rc[S5n[S5n[S5n[R"U5n[R"U5n[R"U5n[R"U5nURXE:H5 UR XE:g5 UR XF:H5 URXF:g5 URXG:H5 UR XG:g5 UR XA:H5 URXA:g5 URU[ :H5 UR U[ :g5 AAA[ R"5 XEU4HnURU"5S5 M UR XE:H5 URXE:g5 UR XF:H5 URXF:g5 URXG:HXGL5 URXG:gXGL5 g)Nrer) r0rrfrrrrmrnrr) rr%yzrbrrr=s r test_equality ReferencesTestCase.test_equalitys 1I 1I 1I KKN KKN KKN KKN             Y' i( q! qA MM!#t $       ( ,rc[R[R[R[R/n[ S5n[ S5n[ R"U5n[ R"U5nUHnUR[XdU5 M AA[R"5 UHnUR[XdU5 M grd) rltgtleger0rrfrrrmrn)ropsr%rHrrJops r test_ordering ReferencesTestCase.test_orderings{{HKKhkkB 1I 1I KKN KKNB   i 2 q B   i 2rc|[S5n[S5n[R"U5n[R"U5nUR[ U5[ S55 AA[ R "5 UR[ U5[ S55 UR[[U5 gr) r0rrfrrFrmrnrr)rr%rHrrJs r test_hashingReferencesTestCase.test_hashings 2J 2J KKN KKN a$r(+ q  a$r(+ )T1-rzrequires deep stackc"SS5n[R"5nU"S5=p4[S5HnU"U5=X$'nM A[R"5 g)Nc\rSrSrSrSrg)1ReferencesTestCase.test_trashcan_16602..Cic^U(dg[R"U5mU4Sjn[R"X5Ulg)Nc>T"5ngrr)wparentrwselfs rrFReferencesTestCase.test_trashcan_16602..C.__init__..cbs Ar)rrfr^)rparentrr_s @rr5:ReferencesTestCase.test_trashcan_16602..C.__init__s, D) &{{66 r)r^NrYrrrrr[s 7rrd)rWeakKeyDictionaryrrmrn)rrrrootrns rtest_trashcan_16602&ReferencesTestCase.test_trashcan_16602sQ  7 7  % % 'T7sAtOAD1  rc[S5nSn[R"X5nURURU5 [R"U5nUR UR5 g)Nrecgrrrs rr.tr)r0rrfr __callback__r)rr%rgrrs rtest_callback_attribute*ReferencesTestCase.test_callback_attributesS 1I#{{1' d''2{{1~ $++,rc[S5n[R"XR5nUR UR 5 A[ R"5 URUR 5 grd) r0rrfrgrrmrrr)rr%rfs r&test_callback_attribute_after_deletion9ReferencesTestCase.test_callback_attribute_after_deletionsT 1Ikk!]]+ S--.  #**+rc[S5nSn[R"X5nUR[5 SUlSSS5 g!,(df  g=f)Nrecgrrrs rr@ReferencesTestCase.test_set_callback_attribute..rlrcgrrrs rrrusDr)r0rrfrAttributeErrorrm)rr%rgrs rtest_set_callback_attribute.ReferencesTestCase.test_set_callback_attributes@ 1I#{{1'   ~ . 0D / . .s A  Ac"SS[5nU"S5n[R"US5nA[R"5 g)Nc\rSrSrSrSrg);ReferencesTestCase.test_callback_gcs..ObjectWithDelicgrrrs rr5CReferencesTestCase.test_callback_gcs..ObjectWithDel.__del__rlrrNr7rrr ObjectWithDelr|s #rrrec,[R"5$r)rrrs rr6ReferencesTestCase.test_callback_gcs..s '*<*<*>r)r0rrfrr)rrr%rs rtest_callback_gcs$ReferencesTestCase.test_callback_gcss8 $F $ ! {{1>? rc[R"S5R5n[R"SU5up#UR R SS5nURUS5 g)Na import _testcapi import weakref class TestObj: pass def callback(obj): pass obj = TestObj() # The choice of 50 is arbitrary, but must be large enough to ensure # the allocation won't be serviced by the free list. wrs = [weakref.ref(obj, callback) for _ in range(50)] _testcapi.set_nomemory(0) del obj -casciibackslashreplacez*_Py_Dealloc: Deallocator of type 'TestObj')textwrapdedentstriprrun_python_until_enderrdecodeassertNotRegex)rcoderes_stderrs rtest_no_memory_when_clearing/ReferencesTestCase.test_no_memory_when_clearings_  UW! "33D$?);< F$PQr)r`rfN)Drrrrrr cpython_onlyrrrrrrrrrr~rrrrr rr&r8r<r?r;rHrrYrbrmr}rrrrrrrrrrrrrrrr"rr:r>rErKrTrWunittestskipIfr r rgrnrqrxrrrrrrr{r{js  ,,> 47   4 4 F$D+$  B BF LM.M+8 C0   !.8:H$4*L* &@ ( 3 G% K,<4'92&P& &P08,$ ,$\$$L35*2  !  !#-J 3 .__W)+@AB*-,1 RRrr{c2\rSrSrSrSrSrSrSrSr g) SubclassableWeakrefTestCaseicn"SS[R5n[S5nU"USS9nURU"5U5 UR UR 5 UR URS5 A[5 URU"55 UR UR 5 g)Nc8^\rSrSrSU4SjjrU4SjrSrU=r$)=SubclassableWeakrefTestCase.test_subclass_refs..MyRefic0>X0l[TU] X5 gr)rsuperr5)robrgr __class__s rr5FSubclassableWeakrefTestCase.test_subclass_refs..MyRef.__init__s"  .rc.>SUl[TU] 5$NT)calledrr&)rrs rr&FSubclassableWeakrefTestCase.test_subclass_refs..MyRef.__call__"s" w'))r)rrr)rrrrr5r&r __classcell__)rs@rMyRefrs / * *rrrKr) rrfr0rrrrrrr)rrrmrs rtest_subclass_refs.SubclassableWeakrefTestCase.test_subclass_refss *GKK * 5M 1B  bdA  " 2&   "$  "rcz"SS[R5n[S5nU"U5n[R"U5nURX45 UR [R "U5XC/5 UR [R "U5S5 U"U5nUR [R "U5S5 [R "U5nUR [U5S5 URXFS5 URX6SS5 URXVSS5 g)Nc\rSrSrSrg)XSubclassableWeakrefTestCase.test_subclass_refs_dont_replace_standard_refs..MyRefi0rNr^rrrrr0rrrrrrrre) rrfr0 assertIsNotrrrrrr)rrrr1r2r3refss r-test_subclass_refs_dont_replace_standard_refsISubclassableWeakrefTestCase.test_subclass_refs_dont_replace_standard_refs/s GKK  2J 1X [[^   ,,Q/": 003Q7 1X 003Q7""1% TA& bq'" bqr(# bqr(#rc"SS[R5n[S5nU"U[5nU"U[5nUR X45 [R "U5nURX55 URXE5 g)Nc\rSrSrSrg)USubclassableWeakrefTestCase.test_subclass_refs_dont_conflate_callbacks..MyRefiArNr^rrrrrArrrr)rrfr0idrrrr)rrrrrrs r*test_subclass_refs_dont_conflate_callbacksFSubclassableWeakrefTestCase.test_subclass_refs_dont_conflate_callbacks@sg GKK  2J 1b\ 1c]  ""1% b brcH"SS[R5n[S5nU"USSS5nURURS5 URUR S5 URUR 5S5 UR[US55 g)Nc*\rSrSrSrSrSrSrSrg)HSubclassableWeakrefTestCase.test_subclass_refs_with_slots..MyRefiLslot1slot2cB[RRXU5$r)rrf__new__)rFrrgrrs rrPSubclassableWeakrefTestCase.test_subclass_refs_with_slots..MyRef.__new__Ns{{**4X>>rcX0lX@lgrr)rrrgrrs rr5QSubclassableWeakrefTestCase.test_subclass_refs_with_slots..MyRef.__init__Ps " " rc4URUR-$rrrs rmethMSubclassableWeakrefTestCase.test_subclass_refs_with_slots..MyRef.methSszzDJJ..rN) rrrr __slots__rr5rrrrrrrLs(I ? # /rrrabcdefabcdef__dict__) rrfr0rrrrrrL)rrrr=s rtest_subclass_refs_with_slots9SubclassableWeakrefTestCase.test_subclass_refs_with_slotsKs /GKK / 2J !T5% ( %( %( 8, J/0rc:^"SS[R5nU4Sjn[5nU"X25nX4lAATR TR S5 [5nU"X25nU"X25nXTlX5lAAATR TR S5 g)z3Confirm https://bugs.python.org/issue3100 is fixed.c\rSrSrSrg)HSubclassableWeakrefTestCase.test_subclass_refs_with_cycle..MyReficrNr^rrrrrcrrrc0>T=RS- slgrdr_)r9rs rrgKSubclassableWeakrefTestCase.test_subclass_refs_with_cycle..callbackhs MMQ MrrN)rrfrrrr`r=)rrrgrrrs` rtest_subclass_refs_with_cycle9SubclassableWeakrefTestCase.test_subclass_refs_with_cycle\s GKK    C 1   * C 1  1    *rrN) rrrrrrrrrrrrrrrs#$$"  1"$+rrch\rSrSrSrSrSrSrSrSr \ RS5r S r S rS rg ) WeakMethodTestCaseic$"SS[5nU$)z3Return an Object subclass overriding `some_method`.c\rSrSrSrSrg)'WeakMethodTestCase._subclass..Cicg)Nrprrs rrK3WeakMethodTestCase._subclass..C.some_methodrrrN)rrrrrKrrrrrrs rr)r0)rrs r _subclassWeakMethodTestCase._subclasss  rc[S5n[R"UR5nUR U[R 5 UR U"5[ UR55 URU"5RU5 URU"5RURR5 URU"5"5S5 g)NrerJ) r0r WeakMethodrKassertIsInstance ReferenceTyperFr__self____func__rrrr=s r test_aliveWeakMethodTestCase.test_alives 1I   q}} - a!6!67 ac4 #67 acllA& acllAMM$:$:; "rc[S5n[R"UR5nA[R "5 UR U"5S5 grd)r0rrrKrmrnrrs rtest_object_dead#WeakMethodTestCase.test_object_deads; 1I   q}} -   ac4 rcUR5nU"S5n[R"UR5nU?[R "5 UR U"5S5 grd)rrrrKrmrnr)rrrr=s rtest_method_dead#WeakMethodTestCase.test_method_deadsI NN  aD   q}} - M  ac4 rcT^UR5n/mU4SjnU"S5n[R"URU5nA[R "5 UR TU/5 [RUl[R "5 UR TU/5 g)Nc(>TRU5 grr r4callss rr=WeakMethodTestCase.test_callback_when_object_dead..cb LL rre)rrrrKrmrnrr0rrrrr=rs @rtest_callback_when_object_dead1WeakMethodTestCase.test_callback_when_object_deads~ NN   aD   q}}b 1   $**   $rc.^UR5n/mU4SjnU"S5n[R"URU5nU?[R "5 UR TU/5 A[R "5 UR TU/5 g)Nc(>TRU5 grr rs rr=WeakMethodTestCase.test_callback_when_method_dead..cbrrre)rrrrKrmrnrrs @rtest_callback_when_method_dead1WeakMethodTestCase.test_callback_when_method_deadsv NN   aD   q}}b 1 M  $   $rc[S5nSn[R"URU5n[R"U5nAUR U"5S5 g)Nrecgrr)rs rr-WeakMethodTestCase.test_no_cycles..cbr*r)r0rrrKrfr)rrrr=rs rtest_no_cycles!WeakMethodTestCase.test_no_cyclessH 1I    q}}b 1 [[^  bdD!rcp^U4SjnU4Sjn[S5n[S5n[R"UR5n[R"UR5n[R"UR5n[R"UR5nU"XV5 U"Xx5 U"XW5 U"XX5 U"Xg5 U"Xh5 [S5n [R"U R5n [R"U R5n U"XZ5 U"X[5 U"Xj5 U"Xk5 U"XSR5 U"U[ 5 AAA [ R"5 XVXxX4n U H6n U H-nTRX:HXL5 TRX:gXL5 M/ M8 g)NcR>TRX:H5 TRX:g5 grrrrrJrs r_eq-WeakMethodTestCase.test_equality.._eq! OOAF #   QV $rcR>TRX:g5 TRX:H5 grrrs r_ne-WeakMethodTestCase.test_equality.._ner rrer) r0rrrKrPrrmrnr)rrr r%rHrrJrrrIer*rqr=s` rrK WeakMethodTestCase.test_equalitysV % % 1I 1I   q}} -   q}} -   q~~ .   q~~ . A  A  A  A  A  A 1I   q}} -   q~~ . A  A  A  A  A}} Ay q! Q1A  0  4rc[S5n[S5n[R"UR5n[R"UR5n[R"UR5nUR [ U5[ U55 [ U5nAA[R"5 UR [ U5U5 UR [ U5U5 UR[[ U5 grd) r0rrrKrPrrFrmrnrr)rr%rHrrJrhas rrWWeakMethodTestCase.test_hashings 1I 1I   q}} -   q}} -   q~~ . a$q'* !W q  a"% a"% )T1-rrN)rrrrrrrrrrrrrrKrWrrrrrrsE#!!% %  ""'5R.rrcB\rSrSrSr\R "SS9(a\R(aSrOSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!S r"S!r#S"r$S#r%S$r&S%r'S&r(S'r)S(r*S)r+S*r,S+r-S,r.S-r/S.r0\1Rd"5S/5r3\1Rd"5S05r4\1Rd"5S15r5\RlS25r7S3r8\1Rd"5S45r9\1Rd"5\Rt"S55S655r;\1Rd"5S75r<\1Rd"5\Rt"S55S855r=\RlS95r>S:r?g;)<MappingTestCasei rT)threadiic^Sn[U5Vs/sH n[5PM nnU"U4SjU55nUR5n[U5 A[ R "5 [U5nA[ R "5 [U5n URUS5 URU S5 gs snf![a Nxf=f)Nc34># UH nT"U5v M g7frr.0rconss r 3MappingTestCase.check_len_cycles..s/AQ)rrer) rrSitemsnext StopIterationrmrnrrr) r dict_typerNrr dctryn1n2s ` rcheck_len_cycles MappingTestCase.check_len_cycless %*1X.XX./// YY[  H  X  X b&! Q!/    sB< C C CcFUR[RS5 g)Nc US4$rdrrs rr.+Aq6r)r(rrdrs rtest_weak_keyed_len_cycles*MappingTestCase.test_weak_keyed_len_cycles*s g779IJrcFUR[RS5 g)Nc SU4$rdrr,s rr=MappingTestCase.test_weak_valued_len_cycles...saVr)r(rWeakValueDictionaryrs rtest_weak_valued_len_cycles+MappingTestCase.test_weak_valued_len_cycles-s g99;KLrcz^UR"[R/[R"5Q76 [ SS5HnSn[R "S5 [R"X3U5 [ U5Vs/sH n[ 5PM nnU"U4SjU55nAUR5n[U5 [U5n A[U5n URU S5 URX5 URU S5 URX5 M gs snf![a Nsf=f)Nrercrrc34># UH nT"U5v M g7frrrs rr1MappingTestCase.check_len_race..8s3UDGGUr) addCleanuprmr,r+rrnrSr r!r"rassertGreaterEqualassertLessEqual) rr#rthr$rr r%ryr&r's ` rcheck_len_raceMappingTestCase.check_len_race0s ((>2+;+;+=>3-BA JJqM   RR ().q2AXZE23U33CB RSBSB  # #B *   '  # #B *   (' 3!  sD(; D-- D:9D:cFUR[RS5 g)Nc US4$rdrr,s rr:MappingTestCase.test_weak_keyed_len_race..Is!Qr)r>rrdrs rtest_weak_keyed_len_race(MappingTestCase.test_weak_keyed_len_raceHs G557GHrcFUR[RS5 g)Nc SU4$rdrr,s rr;MappingTestCase.test_weak_valued_len_race..Lr.r)r>rr4rs rtest_weak_valued_len_race)MappingTestCase.test_weak_valued_len_raceKs G779IJrcUR5upUHHnUR[R"U5S5 UR X1UR S5 MJ [ UR55n[ UR5R55nUR5 UR5 URXES5 AAUR[U5UR5 US [5 UR[U5URS- S5 AA[5 UR[U5SS5 [R"5nUR[UR S5 [#5US'[5 UR[UR S5 g)Nre#wrong object returned by weak dict!z/cloning of weak-valued dictionary did not work!r/deleting object did not cause dictionary updatez0deleting the values did not clear the dictionaryr)make_weak_valued_dictrrrrr4r`r copysortrCOUNTrr4rKeyError __getitem__rrrobjectsritems1items2s rtest_weak_values MappingTestCase.test_weak_valuesNsc224 A   W44Q7 ; MM!!%%[> @djjl#diik'')*   F H F TDJJ/ AJ  TDJJNF H Q  TAG I**, (D$4$4a8#Q  (D$4$4a8rcUR5upUHLnUR[R"U5SSU-5 UR UR XS5 MN UR 5nUR5R 5nUR[U5[U5S5 AAUR[U5UR5 US [5 UR[U5URS- S5 AA[5 UR[U5SS5 [S5nS X'URX15 URS U5 g) Nrez&wrong number of weak references to %r!rKz.cloning of weak-keyed dictionary did not work!rrLz.deleting the keys did not clear the dictionaryrz$What is the meaning of the universe?r )make_weak_keyed_dictrrrrr4r rNsetrrPrr0r assertNotInrSs rtest_weak_keysMappingTestCase.test_weak_keysns8 113 A   W44Q7AAE G MM!%%> @ ""$ Vc&kE G F TDJJ/ AJ  TTZZ!^F H Q  TAE G 2J8 a T"rc`UR5upURU5 UR5nUR[ U5[ U55 [ U5nUH[nU"5nUR Xa5 UR Xa5 URURX5 URU5 M] UR[ U5S5 [ U5nUR[ [ UR555[ U55 UR5H[nU"5nUR Xa5 UR Xa5 URURX5 URU5 M] UR[ U5S5 gr^) rZ check_iterskeyrefsrrr`rr4rrrrTrobjects2rrs rtest_weak_keyed_iters%MappingTestCase.test_weak_keyed_iterssE113  ||~ TCL1=BB MM" # MM" #   RVVTX . OOB   X*= T$,,.12CLA,,.BB MM" # MM" #   RVVTX . OOB  ! X*rcUR5upURU5 UR5nUR[ U5[ U55 [ U5nUHknU"5nURXaUR 5 URUR XR R 5 URU5 Mm UR[ U5S5 [ U5nUR[ [ UR555[ U55 UR5HknU"5nURXaUR 5 URUR XR R 5 URU5 Mm UR[ U5S5 gr^) rMr` valuerefsrrr`r4r itervaluerefsrbs rtest_weak_valued_iters&MappingTestCase.test_weak_valued_iterss\224  ~~ TCL1=BB   Rbff .   RVVT&&\%5%5 6 OOB   X*= T$"4"4"678#g,G$$&BB   Rbff .   RVVT&&\%5%5 6 OOB  ' X*rc[UR55nUR5HnURU5 M URUS5 [UR 55nUHnURU5 M URUS5 [UR 55nUR 5HnURU5 M URUS5 [UR 55nUR 5HnURU5 M URUS5 g)Nzitems() did not touch all itemsz!__iter__() did not touch all keysz!iterkeys() did not touch all keysz%itervalues() did not touch all values)r`r rrkeysvalues)rrr itemrlrrmvs rr`MappingTestCase.check_iterssTZZ\"JJLD LL !  ABDIIK A KKN BCDIIK A KKN BCdkkm$A MM!  < >rcF[U5n[[X5"55n[U5 US [R "5 UR [[U55[U5[U5S- /5 AUR[U5US- 5 g)Nre) rrgetattrr!rmrnrr`r)rrrT iter_namerfrys r"check_weak_destroy_while_iterating2MappingTestCase.check_weak_destroy_while_iteratingsw I '$*, - R BK  c$r(mc'lCL14D%EF  TAE*rcU"5up4URX15 SSS5 U"5up4UR[URU5 SSS5 URWU5 U"5up4UR[URU5 SSS5 URX15 U"5up4XAU'SSS5 UR XW5 [ R "U5nU"5up4URU5 SSS5 UR X5 U"5up4UR5 SSS5 UR [U5S5 g!,(df  GNJ=f!,(df  GN)=f!,(df  N=f!,(df  N=f!,(df  N=f!,(df  N=fr^) r\rrQrUpoprrNupdateclearr)rr testcontextrroddicts r-check_weak_destroy_and_mutate_while_iterating=MappingTestCase.check_weak_destroy_and_mutate_while_iteratings= ]fq   Q % ]fq   h(8(8! < D! ]fq   h! 4 ! ]fqG !$ $ ]fq KK  % ]fq JJL TA&#] ]]]]]sFE$E10$F4F4F%(F6 E.1 F F F"% F36 Gc[S5nU"5 [U5nUR[UR 555 UR [U5US- 5 X1U'UR [U5U5 SSS5 U"5 UR [U5WS- 5 UR 5 UR [U5US- 5 SSS5 U"5 UR [U5WS- 5 U[UR 55 UR [U5US- 5 SSS5 U"5 UR [U5WS- 5 UR 5 UR [U5US- 5 SSS5 U"5 UR5 UR [U5S5 SSS5 UR [U5S5 g!,(df  GN=f!,(df  GN:=f!,(df  N=f!,(df  N=f!,(df  Np=f) Ni@rerrrJrOrpr)r0rrxr!rlrpopitemrz)rrr{rrfs r&check_weak_del_and_len_while_iterating6MappingTestCase.check_weak_del_and_len_while_iteratings 6N ]D A HHT$))+& '   SYA .G   SY * ]   SYA . LLN   SYA .  ]   SYA .T$))+&'   SYA .]   SYA . LLN   SYA .] JJL   SY * TA&1]] ]]]s?A1HA H/AH%A H61,I H H"% H36 I Ic^^UR5ummURTTS5 URTTS5 URTTS5 URTTS5 UR5umm[RUU4Sj5nUR TU5 UR5ummUR TU5 g)Nrlr rmrac3:># [TR55n[U5 TR5Rn[ R "5 [U5U4v Sn[ R "5 g!Sn[ R "5 f=f7frrr r!rxr4rmrnr0)ryrorrTs rr{KMappingTestCase.test_weak_keys_destroy_while_iterating..testcontext)si $**,'RKKM%% Qil"  BA"A?'B?BB)rZru contextlibcontextmanagerr}rrr{rrTs @@r&test_weak_keys_destroy_while_iterating6MappingTestCase.test_weak_keys_destroy_while_iterating!s113 g //gvF //gwG //gxH //gyI113 g  " "  #  ::4M113 g 33D+Frc^^UR5ummURTTS5 URTTS5 URTTS5 URTTS5 URTTS5 UR5umm[RUU4Sj5nUR TU5 UR5ummUR TU5 g)Nrlr rmrhrgc3:># [TR55n[U5 TR5Rn[ R "5 U[U54v Sn[ R "5 g!Sn[ R "5 f=f7frr)ryrrrTs rr{MMappingTestCase.test_weak_values_destroy_while_iterating..testcontextDsi $**,'RKKM%% l"  r)rMrurrr}rrs @@r(test_weak_values_destroy_while_iterating8MappingTestCase.test_weak_values_destroy_while_iterating;s224 g //gvF //gwG //gxH //gO //g{K224 g  " "  #  ::4M224 g 33D+Frcr[S5n[R"US05nURX!S5 gNrilr0rrdrrrrs r#test_make_weak_keyed_dict_from_dict3MappingTestCase.test_make_weak_keyed_dict_from_dictTs1 1I((!C1 #&rc[S5n[R"US05n[R"U5nURX!S5 grrrrrdict2s r.test_make_weak_keyed_dict_from_weak_keyed_dict>MappingTestCase.test_make_weak_keyed_dict_from_weak_keyed_dictYsA 1I((!C1))$/ #&rc[R"5n[[[[ UR 555nUHnURX'M X4$r)rrdr`mapr0rrPr4rrrTrs rrZ$MappingTestCase.make_weak_keyed_dict_sG((*s65#456AeeDG}rct[S5n[R"SU05nURUSU5 grr0rr4rrs r$test_make_weak_valued_dict_from_dict4MappingTestCase.test_make_weak_valued_dict_from_dictfs3 1I**C73 cA&rc[S5n[R"SU05n[R"U5nURUSU5 grrrs r0test_make_weak_valued_dict_from_weak_valued_dict@MappingTestCase.test_make_weak_valued_dict_from_weak_valued_dictksC 1I**C73++D1 cA&rcUR[[RR5 UR[[R005 UR[[RSS5 [ S5nSHXn[R"S0X!0D6nUR [UR55U/5 UR X2U5 MZ g)Nrrrrr?iterable) rrrr4r5r0rr`rl)rrkwrs rtest_make_weak_valued_dict_misc/MappingTestCase.test_make_weak_valued_dict_miscqs )W%@%@%I%IJ )W%@%@"bI )W%@%@"bI 1I5B++6rg6A   T!&&(^bT 2   QUA &6rc[R"5n[[[[ UR 555nUHnX1UR'M X4$r)rr4r`rr0rrPr4rs rrM%MappingTestCase.make_weak_valued_dict}sG**,s65#456AK}rcU"5nX6U'XVU'UR[U5S5 UR5upxUR[U5S5 XrLaURX5 OURX5 UR5upxUR[U5S5 XrLaURX5 gURX5 g)Nrrer)rrrr) rklasskey1value1key2value2weakdictrros r check_popitemMappingTestCase.check_popitems7 X*! X* 9 MM! $ MM! $! X* 9 MM! $ MM! $rcjUR[RS[5S[55 g)Nrr)rrr4rrs rtest_weak_valued_dict_popitem-MappingTestCase.test_weak_valued_dict_popitems% 766!13 5rcjUR[R[5S[5S5 gNzvalue 1zvalue 2)rrrdrrs rtest_weak_keyed_dict_popitem,MappingTestCase.test_weak_keyed_dict_popitems% 7443 13  ;rcURX4S5 U"5nURX#5nURXc5 URX%5 URUR U5U5 URXRU5 URX$5nURXc5 URX%5 URUR U5U5 URXRU5 g)Nz9invalid test -- value parameters must be distinct objects)r setdefaultrrget)rrkeyrrrrs rcheck_setdefault MappingTestCase.check_setdefaults E F7    , a  c$ hll3'0 hmV,    , a  c$ hll3'0 hmV,rchUR[RS[5[55 g)Nr)rrr4rrs r test_weak_valued_dict_setdefault0MappingTestCase.test_weak_valued_dict_setdefaults# g99#QS!# /rcXUR[R[5SS5 gr)rrrdrrs rtest_weak_keyed_dict_setdefault/MappingTestCase.test_weak_keyed_dict_setdefaults! g77c9i 9rcU"5nURU5 UR[U5[U55 UR5HZnUR XBS5 UR U5nUR XSU5 UR XSR U55 M\ UR5HMnUR XCS5 X$nUR XSU5 UR XSR U55 MO g)Nz(mysterious new key appeared in weak dictz%original key disappeared in weak dict)ryrrrlrrr)rrrrrros r check_updateMappingTestCase.check_updates 7 XD 2A MM!#M N A MM!a[ ) MM!\\!_ - ! A MM!'N OA MM!a[ ) MM!\\!_ - rc UR[RS[5S[5[5[505 UR [ [RR 5 [R"5nUR [ UR 005 UR [ UR SS5 UR[UR55/5 [S5nSHin[R"5nUR "S0X20D6 UR[UR55U/5 URXU5 Mk g)Nrerrrr) rrr4rrrryrr`rlr0)rrrrs rtest_weak_valued_dict_update,MappingTestCase.test_weak_valued_dict_updates '55ac3QS!#6 8 )W%@%@%G%GH  ' ' ) )QXXr26 )QXXr26 affh, 1I5B++-A HH w    T!&&(^bT 2   QUA & 6rc[5n[5n[5n[R"SU05n[R"X!S.5nUR5nX2S.nSU4SU4/nXE-n UR [ U 5[ U5[ U5-5 UR [U 5[R5 XE-nUR XI5 XW-n UR [ U 5[ U5U-5 UR [U 5[R5 XW-nUR XZ5 UR5n X-n UR [ U 5[ U5[ U5-5 UR [U 5[R5 Xv-n UR [ U 5U[ U5-5 UR [U 5[R5 AURSU 5 URSU 5 URSU 5 URSU 5 g)Nrerer)rerrOrpr) rrr4rNrrrrFr\) rrrJrwvd1wvd2wvd3d1pairstmp1tmp2tmp3tmp4s r test_weak_valued_union_operators0MappingTestCase.test_weak_valued_union_operatorss C C C**Aq62**q<8yy{\Q!Q { dT$Z$t*%<= d4j'"="=>  $y dT$Z"_5 d4j'"="=>  $yy{  dT$Z$u+%=> d4j'"="=>y dR$t*_5 d4j'"="=>  D! D! D! D!rc UR[R[5S[5S[5S05 g)Nrerr)rrrdrrs rtest_weak_keyed_dict_update+MappingTestCase.test_weak_keyed_dict_updates. '33313132 4rc.[R"5n[S5n[S5nSX'SX'UR[ U5S5 X UR[ U5S5 UR[ UR 55U/5 g)N12 somethingrre)rrdr0rrr`rlrro1rs rtest_weak_keyed_delitem'MappingTestCase.test_weak_keyed_delitemsy  % % ' C[ C[ Q# E Q# affh".rc[5n[5n[5n[R"USUS05n[R"USUS05nUR5nUSUS0nUS4US4/nXE-n UR [ U 5[ U5[ U5-5 UR [U 5[R5 XE-nUR XI5 XW-n UR [ U 5[ U5U-5 UR [U 5[R5 XW-nUR XZ5 UR5n X-n UR [ U 5[ U5[ U5-5 UR [U 5[R5 Xv-n UR [ U 5U[ U5-5 UR [U 5[R5 AURSU R55 URSU R55 URSU R55 URSU R55 g) NrerrrJ56) rrrdrNrrrrFr\rm) rrro3wkd1wkd2wkd3rrrrrrs rtest_weak_keyed_union_operators/MappingTestCase.test_weak_keyed_union_operatorss S S S(("aQ8(("aQ8yy{#r3 a2q'"{ dT$Z$t*%<= d4j'";";<  $y dT$Z"_5 d4j'";";<  $yy{  dT$Z$u+%=> d4j'";";<y dR$t*_5 d4j'";";<  DKKM* DKKM* DKKM* DKKM*rc4[R"5n[S5n[S5nX!S'X1S'UR[ U5S5 US UR[ U5S5 UR[ UR 55SU4/5 g)Nrrrzsomething elserre)rr4r0rrr`r rs rtest_weak_valued_delitem(MappingTestCase.test_weak_valued_delitem4s  ' ' ) C[ C[+  Q# kN Q# aggi,\rSrSrSrSrUU4SjrSrg).CiUcXlgrr)rrs rr5EMappingTestCase.test_weak_keyed_cascading_deletes..C.__init__Vs rc,[UR5$r)rFrrs rrGEMappingTestCase.test_weak_keyed_cascading_deletes..C.__hash__XsDJJ''rcJ>T(aTS URUR:H$)Nrrr)rr?mutateobjss rr@CMappingTestCase.test_weak_keyed_cascading_deletes..C.__eq__Zs"RzzU[[00rrN)rrrrr5rGr@r)rrsrrrUs  ( 1 1rrrJTrrer) rrdrrrr`rlreverserrr)rrrrrcountrrs @@r!test_weak_keyed_cascading_deletes1MappingTestCase.test_weak_keyed_cascading_deletesMs  % % ' 1 1 1$Ah'h!h'A77AD AFFH~ A QJE   Q# "1(sCcd[R"5nUR[U5S5 g)Nz)rr4rrrrs rtest_make_weak_valued_dict_repr/MappingTestCase.test_make_weak_valued_dict_repr{s%**, d%DErcd[R"5nUR[U5S5 g)Nz)rrdrrr s rtest_make_weak_keyed_dict_repr.MappingTestCase.test_make_weak_keyed_dict_reprs%((* d%BCrc[R"5n[5 [UR5H0nUR S[ 55nURUS5 AM2 SSS5 g!,(df  g=fr)rr4ryrNUM_THREADED_ITERATIONSrrSrrrrr%s r$test_threaded_weak_valued_setdefault4MappingTestCase.test_threaded_weak_valued_setdefaults\  ' ' )  4778LLXZ0  D)9! s A A33 Bc[R"5n[5 [UR5H4n[ 5US'UR SS5nURUS5 M6 SSS5 g!,(df  g=fr)rr4ryrrrSrxrrs rtest_threaded_weak_valued_pop-MappingTestCase.test_threaded_weak_valued_popsa  ' ' )  4778 "EE"bM  D)9! s AA77 Bc [R"5n[5 [SUR-5H.n[ 5nX1S'UR [U5S5 SnM0 SSS5 g!,(df  g=f)Nrrre)rr4ryrrrSrr)rrrrs r%test_threaded_weak_valued_consistency5MappingTestCase.test_threaded_weak_valued_consistencyse  ' ' )  1t;;;<J"  Q+ =! s A A44 Bc@[R"5n[R"5 [ 5US'UR Sn[ 5nX1S'[ R"5 UR[U5S5 SSS5 g!,(df  g=f)Nrre) rr4rrsrSrrmrnrr)rrrrs rtest_weak_valued_consistency,MappingTestCase.test_weak_valued_consistencyso  ' ' )    !JAbEB AbE JJL   SVQ '" ! !s AB Bc^/n"SS5n"SS5nU4SjnSnURU[R[R45 U"5n/n /n [ S5H:n U"U 5U"U 5pU R U 5 U R U 5 XU 'A A M< [ R"XhU4S9nU[RLa[ R"Xy4S9nO[ R"Xz4S9nUR5 UR5 UR5 UR5 U(aUS eg) Nc\rSrSrSrSrg)?MappingTestCase.check_threaded_weak_dict_copy..DummyKeyicXlgrctrrr&s rr5HMappingTestCase.check_threaded_weak_dict_copy..DummyKey.__init__rr%NrYrrrDummyKeyr#rrr*c\rSrSrSrSrg)AMappingTestCase.check_threaded_weak_dict_copy..DummyValueicXlgrr%r's rr5JMappingTestCase.check_threaded_weak_dict_copy..DummyValue.__init__r)rr%NrYrrr DummyValuer,rrr/c>TSLa[R"U5ngUR5ng![anURU5 SnAgSnAff=fr)rNdeepcopyrr)rexcrexr1s r dict_copy@MappingTestCase.check_threaded_weak_dict_copy..dict_copysF t# a(AA  2 s00 AAAcSnU(aa[R"S[U5S- 5nUS- nURU5 US-S:Xa[R "5 U(aM`gg)Nrrei')randomrandintrrxrmrn)lstgc_ctrrs rpop_and_collectFMappingTestCase.check_threaded_weak_dict_copy..pop_and_collectsRFNN1c#hl3!  E>Q&JJL #rip)rrr(r) rrrdr4rrrtrurvrw)rtype_r1r2r*r/r4r;rrlrmrrrot_copy t_collects ` rcheck_threaded_weak_dict_copy-MappingTestCase.check_threaded_weak_dict_copys      ! eg779T9TUV GuAA; 1 q KKN MM! aD !!SC G-- -!((gNI!((iPI   a&L rcDUR[RS5 gNFr@rrdrs r test_threaded_weak_key_dict_copy0MappingTestCase.test_threaded_weak_key_dict_copys **7+D+DeLrcpucDUR[RS5 grrDrs r$test_threaded_weak_key_dict_deepcopy4MappingTestCase.test_threaded_weak_key_dict_deepcopys **7+D+DdKrcDUR[RS5 grCr@rr4rs r"test_threaded_weak_value_dict_copy2MappingTestCase.test_threaded_weak_value_dict_copys **7+F+FNrcDUR[RS5 grrLrs r&test_threaded_weak_value_dict_deepcopy6MappingTestCase.test_threaded_weak_value_dict_deepcopys **7+F+FMrcx[R"5nURURR5 gr)rr4r_remove __closure__)rrs rtest_remove_closure#MappingTestCase.test_remove_closure s(  ' ' ) !))//0rrN)@rrrrrPrcheck_sanitizerPy_GIL_DISABLEDrr(r/r5r>rCrHrWr]rdrir`rur}rrrrrrZrrrrMrrrrrrrrrrrrrrr rrr requires_working_threadingrrrrrr@rErequires_resourcerIrMrPrUrrrrrr s2 Ed+0G0G"&"( (KM)0IK9@#<+6+2>4 +'2'BG4G2' ' ' ' '%$5;-"/9.&'"#"J4 /#+J D =,#\FD0023002*3*002 3  (($;z002M3M 002 u%L&3L 002O3O 002 u%N&3N  11rr) mapping_testscf\rSrSrSr\"S5\"S5\"S5S.r\Rr Sr Sr g ) WeakValueDictionaryTestCaseiz?Check that WeakValueDictionary conforms to the mapping protocolrerr)rrkey3c6URR5$r)!_WeakValueDictionaryTestCase__refrNrs r _reference&WeakValueDictionaryTestCase._referencezz  rrN) rrrr__doc__r0r`rr4 type2testrarrrrr]r]s-I1IfQiq BE++I!rr]cj\rSrSrSr\"S5S\"S5S\"S5S0r\Rr S r S r g ) WeakKeyDictionaryTestCaseiz=Check that WeakKeyDictionary conforms to the mapping protocolrrerrr^rc6URR5$r)_WeakKeyDictionaryTestCase__refrNrs rra$WeakKeyDictionaryTestCase._referencercrrN) rrrrrdr0rirrdrerarrrrrgrgs3G F^Avf~a BE))I!rrgc\\rSrSr"SS5rSrSrSrSrSr \ S 5r S r S r g ) FinalizeTestCasei#c\rSrSrSrg)FinalizeTestCase.Ai%rNr^rrrrrn%s rrcl[RRS:wa[R"5 gg)Ncpython)sysimplementationnamerrrs r_collect_if_necessary&FinalizeTestCase._collect_if_necessary(s'    " "i /     0rc^U4SjnUR5n/m[R"X!SSSS9nURURS5 URUR 5X!SSS045 URU"5S 5 URU"5S5 URU"5S5 URUR 5S5 URUR 5S5 URURS 5 URTS /5 /m[R"X!SSS5nURUR 5X!S 045 URUR 5X!S 045 URU"5S5 URU"5S5 URUR 5S5 URUR 5S5 URURS 5 URT/5 /m[R"X!SSSS 9nAUR5 URU"5S5 URU"5S5 URUR 5S5 URUR 5S5 URURS 5 URTS /5 g) Nc>>TRX-U-5 X-U-$rr )r%rHrIrs radd+FinalizeTestCase.test_finalize..add.s! JJquqy !519 rC+Y)rIT)rzr{rIF)rzr{r|)r%rHrI)rrfinalizeralivepeekdetachrt)rrxrr*rs @r test_finalizeFinalizeTestCase.test_finalize-sV  FFH   QRr 2 $' AGc"X#>? c" d# d# 4( T* %( se$   QRR 0 AJ#;< aj"%=> d# d# 4( T* %( b!   QrR2 6  ""$ d# d# 4( T* %( se$rc ^U4SjnUR5n/m[R"X!SSSSS9nURUR 5X!SSSS.45 U"5 URTSSSS.4/5 UR [ 5 [R"X!SS9 SSS5 UR [ 5 [R"X!SS 9 SSS5 UR [ [RU5 UR [ [R5 g!,(df  N=f!,(df  Ni=f) Nc*>TRX45 grr )r(kwargsrs rfin-FinalizeTestCase.test_arg_errors..finWs JJ~ &rrerrrJ)funcrr)rr4)rrr4)rrr~rrrr)rrrr*rs @rtest_arg_errors FinalizeTestCase.test_arg_errorsVs ' FFH   QQq 9 AFQq4I#JK  1(=>?@   y )   Qa 0*   y )   ! 4* )W%5%5q9 )W%5%56 * ) ) )s D'?D8' D58 EcUR5n/n[R"XRS5n[R"XRS5n[R"XRS5n[R"XRS5n[R"XRS5nAAUR UR 5 UR UR 5 UR UR 5 UR UR 55 URUR 5 U"5 URS5 U"5 URUR 5 URS5 U"5 URS5 AUR5 URUR 5 URS 5 U"5 /S QnURX(5 g) Nf1f2f3f4f5rBrr)rrrrrrrr) rrr~rrrrrrtr) rrrrrrrrexpecteds r test_orderFinalizeTestCase.test_orderisc FFH   aT 2   aT 2   aT 2   aT 2   aT 2  ! ! !  $ "  3  " 3  3  ""$ " 3 ? 'rc^"SS[R5nUR5n/mU4SjnU"X#5n[R"U5n[R"U5nAAUR U"55 UR U"55 AUR 5 UR U"55 UR U"55 URTS/5 g)Nc\rSrSrSrg)4FinalizeTestCase.test_all_freed..MyFinalizerirNr^rrr MyFinalizerrrrrc(>TRS5 g)N{r )rsrrg1FinalizeTestCase.test_all_freed..callbacks JJsOrr)rr~rrfrrtrr)rrrrgr* wr_callbackwr_frs @rtest_all_freedFinalizeTestCase.test_all_freeds '**  FFH   $kk(+ {{1~ a []+ TV$  ""$ +-( $&! se$rc^U4Sjn[R"T[S[5n[R"T[S[5n[R"TU5n[R"T[S[5nSUlg)Nc^>[R"T[S5n[S5 SS- g)Ng1f3 errorrer)rr~print)rclss rerror,FinalizeTestCase.run_in_child..errors(!!#ud3B *  aCrrrrF)rr~r _global_varatexit)rrrrrrs` r run_in_childFinalizeTestCase.run_in_childsg   c5$ <   c5$ <   c5 )   c5$ < rcSn[R"SU5up#nURS5R5nUR U/SQ5 UR SU;5 g)NzNfrom test.test_weakref import FinalizeTestCase;FinalizeTestCase.run_in_child()rr)z f4 foobarrrz f1 foobarsZeroDivisionError)rassert_python_okr splitlinesrr)rprogrcoutrs r test_atexitFinalizeTestCase.test_atexitsY2$55dDA jj!,,. JK ,34rrN)rrrrrrtrrrr classmethodrrrrrrrlrl#s@  ! '%R7&%(N%2!!&5rrlc\rSrSrSrSrg)ModuleTestCaseicSHmn[[U5nUS:waURURS5 URURU5 URUR U5 Mo g)N)r ProxyTyperGrWeakSetrdr4rr)rsrrrrr)rrsrs r test_namesModuleTestCase.test_namessbZD'4(Cy   ;   S\\4 0   S--t 4 ZrrN)rrrrrrrrrrrs5rra Doctest for examples in the library reference: weakref.rst >>> from test.support import gc_collect >>> import weakref >>> class Dict(dict): ... pass ... >>> obj = Dict(red=1, green=2, blue=3) # this object is weak referencable >>> r = weakref.ref(obj) >>> print(r() is obj) True >>> import weakref >>> class Object: ... pass ... >>> o = Object() >>> r = weakref.ref(o) >>> o2 = r() >>> o is o2 True >>> del o, o2 >>> gc_collect() # For PyPy or other GCs. >>> print(r()) None >>> import weakref >>> class ExtendedRef(weakref.ref): ... def __init__(self, ob, callback=None, **annotations): ... super().__init__(ob, callback) ... self.__counter = 0 ... for k, v in annotations.items(): ... setattr(self, k, v) ... def __call__(self): ... '''Return a pair containing the referent and the number of ... times the reference has been called. ... ''' ... ob = super().__call__() ... if ob is not None: ... self.__counter += 1 ... ob = (ob, self.__counter) ... return ob ... >>> class A: # not in docs from here, just testing the ExtendedRef ... pass ... >>> a = A() >>> r = ExtendedRef(a, foo=1, bar="baz") >>> r.foo 1 >>> r.bar 'baz' >>> r()[1] 1 >>> r()[1] 2 >>> r()[0] is a True >>> import weakref >>> _id2obj_dict = weakref.WeakValueDictionary() >>> def remember(obj): ... oid = id(obj) ... _id2obj_dict[oid] = obj ... return oid ... >>> def id2obj(oid): ... return _id2obj_dict[oid] ... >>> a = A() # from here, just testing >>> a_id = remember(a) >>> id2obj(a_id) is a True >>> del a >>> gc_collect() # For PyPy or other GCs. >>> try: ... id2obj(a_id) ... except KeyError: ... print('OK') ... else: ... print('WeakValueDictionary error') OK libreftestcNUR[R"55 U$r)addTestdoctest DocTestSuite)loadertestspatterns r load_testsr) s MM'&&() Lrr)g{Gzt?)3rmrqrrrrrrrNrtrkr7rtestr test.supportrrrrrr r r r4rrrr,r.r0rSTestCaser[rryr{rrrr[BasicTestMappingProtocolr]rgrlrr__test__rrmainrrrrss   KK#&)*     * x   *nRnRbe+(e+PF.**F.RC 1hC 1L!-"H"H!! F F!`5x((`5F5X&&5T l : &  z MMOr