+
    JV-j�  ã                   ó¶   € R t ^ RIt^ RIt^ RIt^ RIt ! R R]P
                  4      t ! R R]4      t]	! ]R4      '       d   R t
]P                  tR# R t
R	 tR# )
a[  A subclass of unittest.TestCase which checks for reference leaks.

To use:
- Use testing_refleak.BaseTestCase instead of unittest.TestCase
- Configure and compile Python with --with-pydebug

If sys.gettotalrefcount() is not available (because Python was built without
the Py_DEBUG option), then this module is a no-op and tests will run normally.
Nc                   óB   a € ] tR t^t o RtR tR tR tR tR t	Rt
V tR# )	ÚLocalTestResultzHA TestResult which forwards events to a parent object, except for Skips.c                óP   € \         P                  P                  V 4       Wn        R # ©N)ÚunittestÚ
TestResultÚ__init__Úparent_result)Úselfr	   s   &&Úz/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/google/protobuf/internal/testing_refleaks.pyr   ÚLocalTestResult.__init__   s   € Ü×Ñ× Ñ  Ô&Ø&Öó    c                ó<   € V P                   P                  W4       R # r   )r	   ÚaddError©r
   ÚtestÚerrors   &&&r   r   ÚLocalTestResult.addError   s   € Ø×Ñ×Ñ Ö,r   c                ó<   € V P                   P                  W4       R # r   )r	   Ú
addFailurer   s   &&&r   r   ÚLocalTestResult.addFailure"   s   € Ø×Ñ×!Ñ! $Ö.r   c                ó   € R # r   © )r
   r   Úreasons   &&&r   ÚaddSkipÚLocalTestResult.addSkip%   ó   € Ùr   c                ó   € R # r   r   )r
   r   Údurations   &&&r   ÚaddDurationÚLocalTestResult.addDuration(   r   r   )r	   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   r   r   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s&   ø‡ € ÙPò'ò-ò/ò	÷	ð 	r   r   c                   óD   a a€ ] tR t^,t oRt^tRV 3R lltR tRtVt	V ;t
# )ÚReferenceLeakCheckerMixinz:A mixin class for TestCase, which checks reference counts.c                ó.  <€ \        W P                  4      p\        VR R4      p\        V R R4      pV'       g	   V'       d   R# \        P                  P	                  4       V n        \        \        V `#  VR7       \        \        V `#  VR7       \        V4      p^ p. pV P                  4       p\        V4      V P                  8  dh   V P                  4       p\        \        V `#  VR7       V P                  4       p	W˜8  d   V^8  d   V^,          pKf  ^ pVP                  W˜,
          4       K�  \        Wp4        V P                  V^ .V P                  ,          4       R#   \          d*    TP#                  T \$        P&                  ! 4       4        R# i ; i)Ú__unittest_expecting_failure__FN)Úresult)ÚgetattrÚ_testMethodNameÚcopyregÚdispatch_tableÚcopyÚ_saved_pickle_registryÚsuperr*   Úrunr   Ú_getRefcountsÚlenÚNB_RUNSÚappendÚprintÚassertEqualÚ	Exceptionr   ÚsysÚexc_info)r
   r-   Ú
testMethodÚexpecting_failure_methodÚexpecting_failure_classÚlocal_resultÚ
num_flakesÚrefcount_deltasÚoldrefcountÚnewrefcountÚ	__class__s   &&        €r   r5   ÚReferenceLeakCheckerMixin.run1   s_  ø€ Ü˜×3Ñ3Ó4€JÜ& zÐ3SÐUZÓ[ÐÜ% dÐ,LÈeÓTÐß×":Ùô
 #*×"8Ñ"8×"=Ñ"=Ó"?€DÔô 
Ô
# TÑ.°fÐ.Ô=Ü	Ô
# TÑ.°fÐ.Ô=ä" 6Ó*€LØ€JØ€Oð ×$Ñ$Ó&€KÜ
ˆoÓ
 §¡Ô
-Ø×&Ñ&Ó(€kÜÔ% tÑ0¸Ð0ÔEØ×&Ñ&Ó(€kð 
Ô	" z°A¤~ð
 	�a�ˆ
ÙØ€jØ×Ñ˜[Õ6Ö7Ü	ˆ/Ô ð,Ø
×Ñ�¨¨¨d¯l©lÕ(:Ö;øÜô ,Ø‡o�o�dœCŸLšL›N×+ð,ús   Ä:$E  Å 0FÆFc                óº  € \        \        R 4      '       d   \        P                  ! 4        M\        P                  ! 4        \        P
                  P                  4        \        P
                  P                  V P                  4       \        P                  ! 4        \        P                  ! 4        \        P                  ! 4        \        P                  ! 4       # )Ú_clear_internal_caches)Úhasattrr=   rJ   Ú_clear_type_cacher0   r1   ÚclearÚupdater3   ÚgcÚcollectÚgettotalrefcount)r
   s   &r   r6   Ú'ReferenceLeakCheckerMixin._getRefcounts^   s€   € ÜŒsÐ,×-Ò-Ü	× Ò Õ"ä	×ÒÔÜ×Ñ× Ñ Ô"Ü×Ñ×!Ñ! $×"=Ñ"=Ô>ô ‡J‚J„LÜ‡J‚J„LÜ‡J‚J„LÜ×ÒÓ!Ð!r   )r3   r   )r!   r"   r#   r$   r%   r8   r5   r6   r&   r'   Ú__classcell__)rG   r(   s   @@r   r*   r*   ,   s   ù‡ € ÙBà€'÷+,÷Z"ò "r   r*   rQ   c                 ó–   € \         3V P                  ,           p\        V 4      ! V P                  V\	        V P
                  4      4      pV# r   )r*   Ú	__bases__Útyper!   ÚdictÚ__dict__)Ú
test_classÚ	new_basesÚ	new_classs   &  r   ÚTestCaser\   o   sC   € Ü*Ð,¨z×/CÑ/CÕC€IÜ�ZÔ Ø×Ñ˜Y¬¨Z×-@Ñ-@Ó(AóC€IàÐr   c                 ó   € V # r   r   )rY   s   &r   r\   r\   y   s   € ØÐr   c                 ó   € ? R  pV# )c                 ó   € V # r   r   )Úfuncs   &r   ÚSameÚ&SkipReferenceLeakChecker.<locals>.Same~   s   € Ø€kr   r   )r   ra   s   & r   ÚSkipReferenceLeakCheckerrc   |   s   € Øòà€Kr   )r%   r0   rO   r=   r   r   r   Úobjectr*   rK   r\   Úskiprc   r   r   r   Ú<module>rf      sb   ðñó Û 	Û 
Û ô	�h×)Ñ)ô 	ô(>" ô >"ñB ˆ3Ð"×#Ò#òð
 &Ÿ]™]Òò
ôr   