+
    öÙ†j›  ã                   ó  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RItR tRR^RR/R lltR t ! R R	]	4      t
] P                  R
 4       t] P                  R]R3R l4       t] P                  R 4       tRR lt] P                  R 4       tR tR# )é    Nc                óÞ   € \         P                  ! 4       ;_uu_ 4        \         P                  ! R\        R7       \        P
                  ! V 4      uuRRR4       #   + '       g   i     R# ; i)z3Import *name* while suppressing DeprecationWarning.Úignore©ÚcategoryN)ÚwarningsÚcatch_warningsÚsimplefilterÚDeprecationWarningÚ	importlibÚimport_module)Únames   &Ú3/usr/lib/python3.14/test/support/warnings_helper.pyÚimport_deprecatedr   	   s?   € ä	×	 Ò	 ×	"Õ	"Ü×Ò˜hÔ1CÕDÜ×&Ò& tÓ,÷ 
#×	"×	"Ó	"ús   ž2AÁA,	Ú ÚlinenoÚoffsetc          
      óH  € ^ RI Hp \        P                  ! RR7      ;_uu_ 4       p\        P                  ! R\
        4       \        VRR4       RRR4       V P                  \        X4      ^V4       Vw  pV P                  VP                  \
        4       V'       d&   V P                  \        VP                  4      V4       V P                  VP                  R4       V P                  VP                   4       Ve   V P                  VP                   V4       \        P                  ! RR7      ;_uu_ 4       p\        P                  ! R\
        4       V! WVW4R	7       RRR4       V P                  V. 4       R#   + '       g   i     EL7; i  + '       g   i     L8; i)
r   )Úcheck_syntax_errorT©ÚrecordÚalwaysz
<testcase>ÚexecNÚerror)r   r   )Útest.supportr   r   r   r	   ÚSyntaxWarningÚcompileÚassertEqualÚlenÚassertIsSubclassr   ÚassertRegexÚstrÚmessageÚfilenameÚassertIsNotNoner   )ÚtestcaseÚ	statementÚerrtextr   r   r   ÚwarnsÚwarns   &&&$$   r   Úcheck_syntax_warningr*      s*  € õ 0Ü	×	 Ò	 ¨×	-Õ	-°Ü×Ò˜h¬Ô6Ü�	˜<¨Ô0÷ 
.ð ×Ñœ˜U› Q¨Ô.à�E€DØ×Ñ˜dŸm™m¬]Ô;ßØ×ÑœS §¡Ó.°Ô8Ø×Ñ˜Ÿ™¨Ô5Ø×Ñ˜TŸ[™[Ô)ØÒØ×Ñ˜TŸ[™[¨&Ô1ô
 
×	 Ò	 ¨×	-Õ	-°Ü×Ò˜g¤}Ô5Ù˜8°Ø"(õ	9÷ 
.ð
 ×Ñ˜ Ö#÷- 
.×	-Ð	-ú÷" 
.×	-ús   ¦)E=Ä:'FÅ=F	ÆF!	c                ó   a € V 3R lpV# )zˆDecorator to suppress warnings.

Use of context managers to hide warnings make diffs
more noisy and tools like 'git blame' less useful.
c                 óJ   <a € \         P                  ! S 4      VV 3R  l4       pV# )c                 óÄ   <€ \         P                  ! 4       ;_uu_ 4        \         P                  ! R SR7       S! V .VO5/ VB uuRRR4       #   + '       g   i     R# ; i)r   r   N)r   r   r	   )ÚselfÚargsÚkwargsr   Útests   &*,€€r   ÚwrapperÚ3ignore_warnings.<locals>.decorator.<locals>.wrapper4   sC   ø€ ä×(Ò(×*Õ*Ü×%Ò% h¸ÕBÙ˜DÐ2 4Ò2¨6Ñ2÷ +×*×*Ó*ús   Ÿ$AÁA	)Ú	functoolsÚwraps)r1   r2   r   s   f €r   Ú	decoratorÚ"ignore_warnings.<locals>.decorator3   s%   ù€ Ü	�Š˜Ó	õ	3ó 
ð	3ð ˆó    © )r   r6   s   d r   Úignore_warningsr:   -   s   ø€ õð Ðr8   c                   óF   a € ] tR t^=t o RtR tR t]R 4       tR t	Rt
V tR# )ÚWarningsRecorderznConvenience wrapper for the warnings list returned on
entry to the warnings.catch_warnings() context manager.
c                ó    € Wn         ^ V n        R# )r   N©Ú	_warningsÚ_last)r.   Úwarnings_lists   &&r   Ú__init__ÚWarningsRecorder.__init__A   s   € Ø&ŒØˆŽ
r8   c                óê   € \        V P                  4      V P                  8”  d   \        V P                  R,          V4      # V\        P
                  P                  9   d   R# \        V : RV: 24      h)é   Nz has no attribute éÿÿÿÿ)r   r?   r@   Úgetattrr   ÚWarningMessageÚ_WARNING_DETAILSÚAttributeError)r.   Úattrs   &&r   Ú__getattr__ÚWarningsRecorder.__getattr__E   sT   € Üˆt�~‰~Ó §¡Ô+Ü˜4Ÿ>™>¨"Õ-¨tÓ4Ð4Ø”X×,Ñ,×=Ñ=Ô=ÙÜ»ºtÐDÓEÐEr8   c                ó4   € V P                   V P                  R  # ©Nr>   ©r.   s   &r   r   ÚWarningsRecorder.warningsL   s   € à�~‰~˜dŸj™j˜kÐ*Ð*r8   c                ó:   € \        V P                  4      V n        R # rO   )r   r?   r@   rP   s   &r   ÚresetÚWarningsRecorder.resetP   s   € Ü˜Ÿ™Ó(ˆŽ
r8   )r@   r?   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rB   rL   Úpropertyr   rS   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r<   r<   =   s3   ø‡ € ñòòFð ñ+ó ð+÷)ð )r8   r<   c                 óh   € VP                  R4      pV '       g   R\        33p Vf   Rp\        W4      # )at  Context manager to silence warnings.

Accept 2-tuples as positional arguments:
    ("message regexp", WarningCategory)

Optional argument:
 - if 'quiet' is True, it does not fail if a filter catches nothing
    (default True without argument,
     default False if some filters are defined)

Without argument, it defaults to:
    check_warnings(("", Warning), quiet=True)
Úquietr   T)ÚgetÚWarningÚ_filterwarnings)Úfiltersr0   r_   s   *, r   Úcheck_warningsrd   T   s6   € ð �J‰J�wÓ€EßØœ�=Ð"ˆàŠ=ØˆEÜ˜7Ó*Ð*r8   Fc              #  ó  "  € ^ RI Hp \        P                  ! RR7      ;_uu_ 4       p\        P                  ! RVVR7       Rx € V'       d   V! 4        RRR4       V P                  X. 4       R#   + '       g   i     L$; i5i)a±  Context manager to check that no warnings are emitted.

This context manager enables a given warning within its scope
and checks that no warnings are emitted even with that warning
enabled.

If force_gc is True, a garbage collection is attempted before checking
for warnings. This may help to catch warnings emitted when objects
are deleted, such as ResourceWarning.

Other keyword arguments are passed to warnings.filterwarnings().
)Ú
gc_collectTr   r   )r"   r   N)r   rf   r   r   Úfilterwarningsr   )r%   r"   r   Úforce_gcrf   r(   s   &&&&  r   Úcheck_no_warningsri   l   s_   é € õ (Ü	×	 Ò	 ¨×	-Õ	-°Ü×Ò Ø(/Ø)1õ	3ó 	ßÙŒL÷ 
.ð ×Ñ˜ Ö#÷ 
.×	-üs   ‚&B¨-A1ÁBÁ1B	Á<Bc              #  ó„   "  € \        V \        RR7      ;_uu_ 4        Rx € RRR4       R#   + '       g   i     R# ; i5i)a  Context manager to check that no ResourceWarning is emitted.

Usage:

    with check_no_resource_warning(self):
        f = open(...)
        ...
        del f

You must remove the object which may emit ResourceWarning before
the end of the context manager.
T)r   rh   N)ri   ÚResourceWarning)r%   s   &r   Úcheck_no_resource_warningrl   …   s(   é € ô 
˜8¬oÈ×	MÖ	MÛ÷ 
N×	M×	MÒ	Müs   ‚A �,¢
A ¬=	·	A c              #  ó˜  "  € \         P                  ! ^4      pVP                  P                  R4      pV'       d   VP	                  4        \         P
                  R,          pVP                  RR7      ;_uu_ 4       pVP                  R4       \        V4      x € RRR4       \        X4      p. pV  F»  w  r‰Rp
VR,           Fw  pVP                  p\        P                  ! V\        V4      \        P                  4      '       g   KF  \        VP                   V	4      '       g   Kd  Rp
VP#                  V4       Ky  	  V
'       d   K•  V'       d   KŸ  VP%                  W‰P&                  34       K½  	  V'       d   \)        R	V^ ,          ,          4      hV'       d   \)        R
V^ ,          ,          4      hR#   + '       g   i     EL#; i5i)zªCatch the warnings, then check if all the expected
warnings have been raised and re-raise unexpected warnings.
If 'quiet' is True, only re-raise the unexpected warnings.
Ú__warningregistry__r   Tr   r   NFºNNNzunhandled warning %sz)filter (%r, %s) did not catch any warning)ÚsysÚ	_getframeÚ	f_globalsr`   ÚclearÚmodulesr   r	   r<   Úlistr"   ÚreÚmatchr!   ÚIÚ
issubclassÚ	__class__ÚremoveÚappendrU   ÚAssertionError)rc   r_   ÚframeÚregistryÚwmodÚwÚreraiseÚmissingÚmsgÚcatÚseenÚwarnings   &&          r   rb   rb   —   s[  é € ô �MŠM˜!Ó€EØ�‰×"Ñ"Ð#8Ó9€HßØ�‰Ôô �;‰;�zÕ"€DØ	×	Ñ	 DÐ	×	)Ô	)¨Qà×Ñ˜(Ô#Ü˜qÓ!Ò!÷ 
*ô
 �1‹g€GØ€GÛ‰ˆØˆØ˜—�ˆAØ—i‘iˆGä—’˜œc '›l¬B¯D©D×1Ô1Ü˜7×,Ñ,¨c×2Ô2Ø�Ø—‘˜qÖ!ñ ÷ ‰tŸE™Eà�N‰N˜C§¡Ð.Ö/ñ ÷ ÜÐ3°g¸aµjÕ@ÓAÐAßÜÐHØ$ Q�Zõ(ó )ð 	)ñ ÷+ 
*×	)Ð	)üsC   ‚A;G
Á=F6ÂA(G
Ä	G
Ä'G
ÅG
Å'G
Å: G
ÆG
Æ6G	Ç	G
c               #   óœ   "  € \         P                  R ,          p  Rx € V \         P                  R &   R#   T \         P                  R &   i ; i5i)ro   N)r   rc   )Úold_filterss    r   Úsave_restore_warnings_filtersrŠ   ¿   s=   é € ä×"Ñ" 1Õ%€Kð*Ûà)Œ×Ñ˜Óø˜kŒ×Ñ˜Òüs   ‚A›4 ŸA´A	Á	Ac                  ó@   € \         P                  ! R \        ^ R7       R# )z€This is used in test_support test to ensure support.ignore_deprecations_from() works as expected. You should not be seeing this.)Ú
stacklevelN)r   r)   r
   r9   r8   r   Ú_warn_about_deprecationr�   È   s   € Ü‡M‚Mð	*ô 	Ø÷r8   )r   )F)Ú
contextlibr4   r   rv   rp   r   r   r*   r:   Úobjectr<   Úcontextmanagerrd   ra   ri   rl   rb   rŠ   r�   r9   r8   r   Ú<module>r‘      s¼   ðÛ Û Û Û 	Û 
Û ò-ñ$Ø#$ð$Ø-1õ$ò:ô )�vô )ð. ×Ññ+ó ð+ð. ×ÑØ(*°WÀuó $ó ð$ð0 ×Ññó ðô"%)ðP ×Ññ*ó ð*ôr8   