
    g7                        d dl mZ d dlZd dlZd dlZddlmZmZmZm	Z	 ddl
mZ ej                  d-d       Zd.dZd/d	Z	 	 	 	 d/d
Zd/dZd0dZd0dZd/dZ edde      d1d       Zd/dZ G d d      Zd/dZ edddd      d1d       Z	 	 	 	 d/dZd2dZ ededd      Zd/d Z G d! d"      Zd/d#Z ed$dd%      d0d&       Z  ed$dd%      d0d'       Z! ed$dd      d0d(       Z" ed$dd      d0d)       Z#d0d*Z$d/d+Z%d0d,Z&y)3    )annotationsN   )TrioDeprecationWarning
deprecateddeprecated_aliaswarn_deprecated   )module_with_deprecationsc                d    t        j                  d       t        j                  dt               | S )Nalwaysignore)warningssimplefilterResourceWarning)recwarns    M/var/www/html/venv/lib/python3.12/site-packages/trio/_tests/test_deprecate.pyrecwarn_alwaysr      s'    (# (O4N    c                     t        j                         } | J | j                  J t        j                  | j                        }|j                  |j
                  fS N)inspectcurrentframef_backgetframeinfofilenamelineno)frameinfos     r   _herer      sS      "E<<###-DMM4;;''r   c                   dd} |        t               \  }}t        |       dk(  sJ | j                  t              }t	        |j
                  t              sJ d|j
                  j                  d   v sJ d|j
                  j                  d   v sJ d|j
                  j                  d   v sJ d|j
                  j                  d   v sJ |j                  |k(  sJ |j                  |dz
  k(  sJ y )	Nc                 "    t        dddd       y )Nice1.2r	   waterissueinsteadr    r   r   deprecated_thingz.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_deprecatedr7   "   s    @ wHf~!###


/
0Cckk7+++#++"2"21"5555))!,,,,ckk..q1111#++**1----<<8###::!###r   c                R   t        ddd d        t        |       dk(  sJ | j                  t              }t	        |j
                  t              sJ d|j
                  j                  d   v sJ d|j
                  j                  d   v sJ d|j
                  j                  d   v sJ y )	Nr$   1.3r%   r	   zwater is deprecatedr   zno replacementzTrio 1.3)r   r/   r0   r1   r2   r3   r4   r5   r   r6   s     r   (test_warn_deprecated_no_instead_or_issuer;   3   s     GU$=~!###


/
0Cckk7+++ CKK$4$4Q$7777s{{//2222))!,,,,r   c                    dfd}ddt               \  }} |        | j                  t              }|j                  |k(  sJ |j                  |dz   k(  sJ y )Nc                               y r   r)   )nested2s   r   nested1z0test_warn_deprecated_stacklevel.<locals>.nested1A   s    	r   c                 $    t        ddddd       y )Nxr9      y   )r&   r'   
stacklevelr(   r)   r   r   r>   z0test_warn_deprecated_stacklevel.<locals>.nested2D   s    U!SQGr   r	   r,   )r   r0   r1   r   r   )r   r?   r   r   r6   r>   s        @r   test_warn_deprecated_stacklevelrF   @   sZ    H wHfI


/
0C<<8###::!###r   c                      y r   r)   r)   r   r   oldrH   N       r   c                      y r   r)   r)   r   r   newrK   R   rI   r   c                   t        t        ddt               | j                  t              }t        |j                  t              sJ d|j                  j                  d   v sJ d|j                  j                  d   v sJ y )N1.0r	   r%   z test_deprecate.old is deprecatedr   ztest_deprecate.new instead)	r   rH   rK   r0   r1   r2   r3   r4   r5   r:   s     r   test_warn_deprecated_formattingrN   V   so    Ca5


/
0Cckk7+++-1A1A!1DDDD'3;;+;+;A+>>>>r   1.5{   r%   c                      y)NrD   r)   r)   r   r   deprecated_oldrR   ^   s    r   c                l   t               dk(  sJ | j                  t              }t        |j                  t
              sJ d|j                  j                  d   v sJ d|j                  j                  d   v sJ d|j                  j                  d   v sJ d|j                  j                  d   v sJ y )NrD   z+test_deprecate.deprecated_old is deprecatedr   rO   ztest_deprecate.newz
issues/123)rR   r0   r1   r2   r3   r4   r5   r:   s     r   test_deprecated_decoratorrT   c   s    q   


/
0Cckk7+++8CKK<L<LQ<OOOOCKK$$Q''''3;;#3#3A#66663;;++A....r   c                  0    e Zd Z eddd      dd       Zy)FoorM   rP   cryingr%   c                     y)NrB   r)   selfs    r   methodz
Foo.methodn   s    r   Nr-   int)__name__
__module____qualname__r   r[   r)   r   r   rV   rV   m   s    S(3 4r   rV   c                    t               }|j                         dk(  sJ | j                  t              }t	        |j
                  t              sJ d|j
                  j                  d   v sJ y )NrB   z'test_deprecate.Foo.method is deprecatedr   )rV   r[   r0   r1   r2   r3   r4   r5   )r   fr6   s      r    test_deprecated_decorator_methodrc   s   s]    A88:??


/
0Cckk7+++48H8H8KKKKr   r#   z	the thing)thingr&   r'   c                      y)NH   r)   r)   r   r   deprecated_with_thingrg   {   s    r   c                    t               dk(  sJ | j                  t              }t        |j                  t
              sJ d|j                  j                  d   v sJ y )Nrf   zthe thing is deprecatedr   )rg   r0   r1   r2   r3   r4   r5   r:   s     r   -test_deprecated_decorator_with_explicit_thingri      sW     !"b(((


/
0Cckk7+++$(8(8(;;;;r   c                      y)Nnew hotnessr)   r)   r   r   new_hotnessrl      s    r   old_hotness1.23r&   c                $   t               dk(  sJ | j                  t              }t        |j                  t
              sJ d|j                  j                  d   v sJ d|j                  j                  d   v sJ d|j                  j                  d   v sJ d|j                  j                  d   v sJ t        t         j                  t              sJ dt         j                  v sJ dt         j                  v sJ dt         j                  v sJ y )	Nrk   z(test_deprecate.old_hotness is deprecatedr   rn   z"test_deprecate.new_hotness insteadzissues/1z.. deprecated:: 1.23zissues/1>`__)	rm   r0   r1   r2   r3   r4   r5   __doc__strr:   s     r   test_deprecated_aliasrs      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                  ,    e Zd ZddZ ededd      Zy)Aliasc                     y)Nnew hotness methodr)   rY   s    r   new_hotness_methodzAlias.new_hotness_method   s    #r   zAlias.old_hotness_methodz3.21r	   ro   Nr-   rr   )r^   r_   r`   rx   r   old_hotness_methodr)   r   r   ru   ru      s     $ *"	r   ru   c                    t               }|j                         dk(  sJ | j                  t              }t	        |j
                  t              sJ |j
                  j                  d   }d|v sJ d|v sJ y )Nrw   r   z5test_deprecate.Alias.old_hotness_method is deprecatedz/test_deprecate.Alias.new_hotness_method instead)ru   rz   r0   r1   r2   r3   r4   r5   )r   objr6   msgs       r   test_deprecated_alias_methodr~      sv    
'C!!#';;;;


/
0Cckk7+++
++

1
CBcIII<CCCr   z2.1hic                      yzHello!Nr)   r)   r   r   docstring_test1r          r   c                      yr   r)   r)   r   r   docstring_test2r      r   r   c                      yr   r)   r)   r   r   docstring_test3r      r   r   c                      yr   r)   r)   r   r   docstring_test4r      r   r   c                     t         j                  dk(  sJ t        j                  dk(  sJ t        j                  dk(  sJ t        j                  dk(  sJ y )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   rq   r   r   r   r)   r   r   !test_deprecated_docstring_mungingr      s|    			 			 			 			r   c                h   t         j                  dk(  sJ t        |       dk(  sJ t               \  }}t         j                  dk(  sJ | j                  t              }t        |j                  t              sJ |j                  |k(  sJ |j                  |dz   k(  sJ d|j                  j                  d   v sJ d|j                  j                  d   v sJ d|j                  j                  d   v sJ d|j                  j                  d   v sJ t         j                  d	k(  sJ | j                  t              }t        |j                  t              sJ d
|j                  j                  d   v sJ t        j                  t               5  t         j"                   d d d        y # 1 sw Y   y xY w)Nr   r   value1r	   zmodule_with_deprecations.dep1zTrio 1.1r+   zvalue1 insteadvalue2zinstead-string instead)r
   regularr/   r   dep1r0   r1   r2   r3   r4   r   r   r5   dep2pytestraisesAttributeErrorasdf)r   r   r   r6   s       r   test_module_with_deprecationsr      s   #++t333~!###wHf#((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   F((F1c                 j   t        j                         5  t        ddd d        d d d        t        j                  t              5  t        ddd d        d d d        t        j                  t
              5  t        ddd d d       d d d        y # 1 sw Y   mxY w# 1 sw Y   HxY w# 1 sw Y   y xY w)Nfoobarr%   T)r&   r'   use_triodeprecationwarning)r   deprecated_callr   warnsr1   r   r)   r   r   test_warning_classr     s    				! @uD$?@ 
(	) @uD$?@ 
,	- 
'+	

 
@ @@ @
 
s#   BB7B)BB&)B2)r   pytest.WarningsRecorderr-   r   )r-   ztuple[str, int])r   r   r-   r.   r,   r\   ry   )'
__future__r   r   r   r   
_deprecater   r   r   r    r
   fixturer   r   r7   r;   rF   rH   rK   rN   rR   rT   rV   rc   rg   ri   rl   rm   rs   ru   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&2
r   