
    'h                     ,   S SK Jr  S SKrS SKrS SKJr  S SKrSSKJrJ	r	J
r
Jr  SSKJr  \R                  S.S j5       rS/S	 jrS0S
 jr    S0S jrS0S jrS1S jrS1S jrS0S jr\	" SS\S9S2S j5       rS0S jr " S S5      rS0S jr\	" SSSSS9S2S j5       r    S0S jrS3S jr\
" S\SSS 9rS0S! jr " S" S#5      r S0S$ jr!\	" S%SS&S9S1S' j5       r"\	" S%SS&S9S1S( j5       r#\	" S%SSS9S1S) j5       r$\	" S%SSS9S1S* j5       r%S1S+ jr&S0S, jr'S1S- jr(g)4    )annotationsN)
ModuleType   )TrioDeprecationWarning
deprecateddeprecated_aliaswarn_deprecated   )module_with_deprecationsc                h    [         R                  " S5        [         R                  " S[        5        U $ )Nalwaysignore)warningssimplefilterResourceWarning)recwarns    c/var/www/home/psychics-availability/venv/lib/python3.13/site-packages/trio/_tests/test_deprecate.pyrecwarn_alwaysr      s'    (# (O4N    c                     [         R                  " 5       n U c   eU R                  c   e[         R                  " U R                  5      nUR                  UR
                  4$ N)inspectcurrentframef_backgetframeinfofilenamelineno)frameinfos     r   _herer       sS      "E<<###-DMM4;;''r   c                   SS jnU" 5         [        5       u  p#[        U 5      S:X  d   eU R                  [        5      n[	        UR
                  [        5      (       d   eSUR
                  R                  S   ;   d   eSUR
                  R                  S   ;   d   eSUR
                  R                  S   ;   d   eSUR
                  R                  S   ;   d   eUR                  U:X  d   eUR                  US-
  :X  d   eg )	Nc                     [        SSSSS9  g )Nice1.2r
   waterissueinsteadr	    r   r   deprecated_thing.test_warn_deprecated.<locals>.deprecated_thing$   s    uAw?r   r
   zice is deprecatedr   zTrio 1.2zwater instead	/issues/1returnNone)
r    lenpopDeprecationWarning
isinstancemessageWarningargsr   r   )r   r+   r   r   gots        r   test_warn_deprecatedr9   #   s    @ wH~!###


/
0Cckk7++++#++"2"21"5555))!,,,,ckk..q1111#++**1----<<8###::!###r   c                d   [        SSS S S9  [        U 5      S:X  d   eU R                  [        5      n[	        UR
                  [        5      (       d   eSUR
                  R                  S   ;   d   eSUR
                  R                  S   ;   d   eSUR
                  R                  S   ;   d   eg )	Nr%   1.3r&   r
   zwater is deprecatedr   zno replacementzTrio 1.3)r	   r1   r2   r3   r4   r5   r6   r7   r   r8   s     r   (test_warn_deprecated_no_instead_or_issuer=   4   s     GU$=~!###


/
0Cckk7++++ CKK$4$4Q$7777s{{//2222))!,,,,r   c                   ^ SU4S jjnSS jm[        5       u  p#U" 5         U R                  [        5      nUR                  U:X  d   eUR                  US-   :X  d   eg )Nc                    > T " 5         g r   r*   )nested2s   r   nested10test_warn_deprecated_stacklevel.<locals>.nested1B   s    	r   c                     [        SSSSSS9  g )Nxr;      y   )r'   r(   
stacklevelr)   r*   r   r   r@   0test_warn_deprecated_stacklevel.<locals>.nested2E   s    U!SQGr   r
   r.   )r    r2   r3   r   r   )r   rA   r   r   r8   r@   s        @r   test_warn_deprecated_stacklevelrJ   A   sX    H wHI


/
0C<<8###::!###r   c                     g r   r*   r*   r   r   oldrL   O       r   c                     g r   r*   r*   r   r   newrO   S   rM   r   c                   [        [        SS[        S9  U R                  [        5      n[        UR                  [        5      (       d   eSUR                  R                  S   ;   d   eSUR                  R                  S   ;   d   eg )N1.0r
   r&   z test_deprecate.old is deprecatedr   ztest_deprecate.new instead)	r	   rL   rO   r2   r3   r4   r5   r6   r7   r<   s     r   test_warn_deprecated_formattingrR   W   sr    Ca5


/
0Cckk7++++-1A1A!1DDDD'3;;+;+;A+>>>>r   1.5{   r&   c                     g)NrG   r*   r*   r   r   deprecated_oldrV   _   s    r   c                   [        5       S:X  d   eU R                  [        5      n[        UR                  [
        5      (       d   eSUR                  R                  S   ;   d   eSUR                  R                  S   ;   d   eSUR                  R                  S   ;   d   eSUR                  R                  S   ;   d   eg )NrG   z+test_deprecate.deprecated_old is deprecatedr   rS   ztest_deprecate.newz
issues/123)rV   r2   r3   r4   r5   r6   r7   r<   s     r   test_deprecated_decoratorrX   d   s    q   


/
0Cckk7++++8CKK<L<LQ<OOOOCKK$$Q''''3;;#3#3A#66663;;++A....r   c                  4    \ rS rSr\" SSSS9S	S j5       rSrg)
Foon   rQ   rT   cryingr&   c                    g)NrE   r*   selfs    r   method
Foo.methodo   s    r   r*   Nr/   int)__name__
__module____qualname____firstlineno__r   r`   __static_attributes__r*   r   r   rZ   rZ   n   s    S(3 4r   rZ   c                    [        5       nUR                  5       S:X  d   eU R                  [        5      n[	        UR
                  [        5      (       d   eSUR
                  R                  S   ;   d   eg )NrE   z'test_deprecate.Foo.method is deprecatedr   )rZ   r`   r2   r3   r4   r5   r6   r7   )r   fr8   s      r    test_deprecated_decorator_methodrk   t   s`    A88:??


/
0Cckk7++++48H8H8KKKKr   r$   z	the thing)thingr'   r(   c                     g)NH   r*   r*   r   r   deprecated_with_thingro   |   s    r   c                    [        5       S:X  d   eU R                  [        5      n[        UR                  [
        5      (       d   eSUR                  R                  S   ;   d   eg )Nrn   zthe thing is deprecatedr   )ro   r2   r3   r4   r5   r6   r7   r<   s     r   -test_deprecated_decorator_with_explicit_thingrq      sZ     !"b(((


/
0Cckk7++++$(8(8(;;;;r   c                     g)Nnew hotnessr*   r*   r   r   new_hotnessrt      s    r   old_hotness1.23r'   c                V   [        5       S:X  d   eU R                  [        5      n[        UR                  [
        5      (       d   eSUR                  R                  S   ;   d   eSUR                  R                  S   ;   d   eSUR                  R                  S   ;   d   eSUR                  R                  S   ;   d   e[        [         R                  [        5      (       d   eS[         R                  ;   d   eS[         R                  ;   d   eS[         R                  ;   d   eg )	Nrs   z(test_deprecate.old_hotness is deprecatedr   rv   z"test_deprecate.new_hotness insteadzissues/1z.. deprecated:: 1.23zissues/1>`__)	ru   r2   r3   r4   r5   r6   r7   __doc__strr<   s     r   test_deprecated_aliasr{      s   =M)))


/
0Cckk7++++59I9I!9LLLLS[[%%a((((/3;;3C3CA3FFFF))!,,,,k))3////![%8%8888/;3F3FFFF[00000r   c                  0    \ rS rSrS	S jr\" S\SSS9rSrg)
Alias   c                    g)Nnew hotness methodr*   r^   s    r   new_hotness_methodAlias.new_hotness_method   s    #r   zAlias.old_hotness_methodz3.21r
   rw   r*   Nr/   rz   )rd   re   rf   rg   r   r   old_hotness_methodrh   r*   r   r   r}   r}      s     $ *"	r   r}   c                   [        5       nUR                  5       S:X  d   eU R                  [        5      n[	        UR
                  [        5      (       d   eUR
                  R                  S   nSU;   d   eSU;   d   eg )Nr   r   z5test_deprecate.Alias.old_hotness_method is deprecatedz/test_deprecate.Alias.new_hotness_method instead)r}   r   r2   r3   r4   r5   r6   r7   )r   objr8   msgs       r   test_deprecated_alias_methodr      sy    
'C!!#';;;;


/
0Cckk7++++
++

1
CBcIII<CCCr   z2.1hic                     gzHello!Nr*   r*   r   r   docstring_test1r          r   c                     gr   r*   r*   r   r   docstring_test2r      r   r   c                     gr   r*   r*   r   r   docstring_test3r      r   r   c                     gr   r*   r*   r   r   docstring_test4r      r   r   c                     [         R                  S:X  d   e[        R                  S:X  d   e[        R                  S:X  d   e[        R                  S:X  d   eg )NzHello!

.. deprecated:: 2.1
   Use hi instead.
   For details, see `issue #1 <https://github.com/python-trio/trio/issues/1>`__.

z0Hello!

.. deprecated:: 2.1
   Use hi instead.

znHello!

.. deprecated:: 2.1
   For details, see `issue #1 <https://github.com/python-trio/trio/issues/1>`__.

zHello!

.. deprecated:: 2.1

)r   ry   r   r   r   r*   r   r   !test_deprecated_docstring_mungingr      s|    			 			 			 			r   c                   [         R                  S:X  d   e[        U 5      S:X  d   e[        [         5      [        L d   e[        5       u  p[         R                  S:X  d   eU R                  [        5      n[        UR                  [        5      (       d   eUR                  U:X  d   eUR                  US-   :X  d   eSUR                  R                  S   ;   d   eSUR                  R                  S   ;   d   eSUR                  R                  S   ;   d   eSUR                  R                  S   ;   d   e[         R                  S	:X  d   eU R                  [        5      n[        UR                  [        5      (       d   eS
UR                  R                  S   ;   d   e[         R"                  " [$        5         [         R&                    S S S 5        g ! , (       d  f       g = f)Nr   r   value1r
   zmodule_with_deprecations.dep1zTrio 1.1r-   zvalue1 insteadvalue2zinstead-string instead)r   regularr1   typer   r    dep1r2   r3   r4   r5   r6   r   r   r7   dep2pytestraisesAttributeErrorasdf)r   r   r   r8   s       r   test_module_with_deprecationsr      s   #++t333~!###()Z777wH#((H444


/
0Cckk7++++<<8###::!###*ckk.>.>q.AAAA))!,,,,#++**1----s{{//2222#((H444


/
0Cckk7++++#s{{'7'7'::::	~	& %% 
'	&	&s    G
G(c            	     z   [         R                  " 5          [        SSS S S9  S S S 5        [         R                  " [        SS9   [        SSS S S9  S S S 5        [         R                  " [
        5         [        SSS S SS9  S S S 5        g ! , (       d  f       Nm= f! , (       d  f       NP= f! , (       d  f       g = f)Nfoobarr&   z6^foo is deprecated since Trio bar with no replacement$)matchT)r'   r(   use_triodeprecationwarning)r   deprecated_callr	   warnsr3   r   r*   r   r   test_warning_classr     s    				!uD$? 
" 
F
 	uD$?	
 
,	-'+	
 
.	- 
"	!
 
 
.	-s#   B
B3B,

B
B),
B:)r   pytest.WarningsRecorderr/   r   )r/   ztuple[str, int])r   r   r/   r0   r.   rb   r   ))
__future__r   r   r   typesr   r   
_deprecater   r   r   r	    r   fixturer   r    r9   r=   rJ   rL   rO   rR   rV   rX   rZ   rk   ro   rq   rt   ru   r{   r}   r   r   r   r   r   r   r   r   r*   r   r   <module>r      s   "      '  ($"
-+
-	
-$		? Ec* +/ L ED$? @<+<	< }k6K1	 	D ED) * Et, - ED) * Et, -'T&6
r   