
    #)fQ                       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d/dZd/dZd.dZ edde      d0d       Zd.dZ G d d      Zd.dZ edddd      d0d       Z	 	 	 	 d.dZd1dZ ededd      Zd.d Z G d! d"      Zd.d#Z ed$dd%      d/d&       Z  ed$dd%      d/d'       Z! ed$dd      d/d(       Z" ed$dd      d/d)       Z#d/d*Z$d.d+Z%y)2    )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    W/var/www/html/flask-app/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      sM      "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popr   
isinstancemessageWarningargsr   r   )r   r*   r   r   gots        r   test_warn_deprecatedr6   "   s    @ wHf~!##


3
4Cckk7++#++"2"21"555))!,,,ckk..q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   r   r1   r2   r3   r4   r   r5   s     r   (test_warn_deprecated_no_instead_or_issuer:   3   s     GU$=~!##


3
4Cckk7++ CKK$4$4Q$777s{{//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xr8      y   )r&   r'   
stacklevelr(   r)   r   r   r=   z0test_warn_deprecated_stacklevel.<locals>.nested2D   s    U!SQGr   r	   r,   )r   r0   r   r   r   )r   r>   r   r   r5   r=   s        @r   test_warn_deprecated_stacklevelrE   @   sW    H wHfI


3
4C<<8##::!###r   c                      y r   r)   r)   r   r   oldrG   N       r   c                      y r   r)   r)   r   r   newrJ   R   rH   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   rG   rJ   r0   r   r1   r2   r3   r4   r9   s     r   test_warn_deprecated_formattingrM   V   si    Ca5


3
4Cckk7++-1A1A!1DDD'3;;+;+;A+>>>>r   1.5{   r%   c                      y)NrC   r)   r)   r   r   deprecated_oldrQ   ^   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 )NrC   z+test_deprecate.deprecated_old is deprecatedr   rN   ztest_deprecate.newz
issues/123)rQ   r0   r   r1   r2   r3   r4   r9   s     r   test_deprecated_decoratorrS   c   s    q  


3
4Cckk7++8CKK<L<LQ<OOOCKK$$Q'''3;;#3#3A#6663;;++A....r   c                  0    e Zd Z eddd      dd       Zy)FoorL   rO   cryingr%   c                     y)NrA   r)   selfs    r   methodz
Foo.methodn   s    r   Nr-   int)__name__
__module____qualname__r   rZ   r)   r   r   rU   rU   m   s    S(3 4r   rU   c                    t               }|j                         dk(  sJ | j                  t              }t	        |j
                  t              sJ d|j
                  j                  d   v sJ y )NrA   z'test_deprecate.Foo.method is deprecatedr   )rU   rZ   r0   r   r1   r2   r3   r4   )r   fr5   s      r    test_deprecated_decorator_methodrb   s   sX    A88:?


3
4Cckk7++48H8H8KKKKr   r#   z	the thing)thingr&   r'   c                      y)NH   r)   r)   r   r   deprecated_with_thingrf   {   s    r   c                    t               dk(  sJ | j                  t              }t        |j                  t
              sJ d|j                  j                  d   v sJ y )Nre   zthe thing is deprecatedr   )rf   r0   r   r1   r2   r3   r4   r9   s     r   -test_deprecated_decorator_with_explicit_thingrh      sQ     !"b((


3
4Cckk7++$(8(8(;;;;r   c                      y)Nnew hotnessr)   r)   r   r   new_hotnessrk      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 )	Nrj   z(test_deprecate.old_hotness is deprecatedr   rm   z"test_deprecate.new_hotness insteadzissues/1z.. deprecated:: 1.23zissues/1>`__)	rl   r0   r   r1   r2   r3   r4   __doc__strr9   s     r   test_deprecated_aliasrr      s    =M))


3
4Cckk7++59I9I!9LLLS[[%%a(((/3;;3C3CA3FFF))!,,,k))3//![%8%888/;3F3F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)   rX   s    r   new_hotness_methodzAlias.new_hotness_method   s    #r   zAlias.old_hotness_methodz3.21r	   rn   Nr-   rq   )r]   r^   r_   rw   r   old_hotness_methodr)   r   r   rt   rt      s    $ *"$6ar   rt   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 )Nrv   r   z5test_deprecate.Alias.old_hotness_method is deprecatedz/test_deprecate.Alias.new_hotness_method instead)rt   ry   r0   r   r1   r2   r3   r4   )r   objr5   msgs       r   test_deprecated_alias_methodr}      sm    
'C!!#';;;


3
4Cckk7++
++

1
CBc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   rp   r   r   r   r)   r   r   !test_deprecated_docstring_mungingr      sm    		 		 		 			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   r   r1   r2   r3   r   r   r4   dep2pytestraisesAttributeErrorasdf)r   r   r   r5   s       r   test_module_with_deprecationsr      sc   #++t33~!##wHf#((H44


3
4Cckk7++<<8##::!##*ckk.>.>q.AAA))!,,,#++**1---s{{//222#((H44


3
4Cckk7++#s{{'7'7':::	~	& & %%& & &s   F((F1)r   pytest.WarningsRecorderr-   r   )r-   ztuple[str, int])r   r   r-   r.   r,   r[   rx   )&
__future__r   r   r   r   
_deprecater   r   r   r    r
   fixturer   r   r6   r:   rE   rG   rJ   rM   rQ   rS   rU   rb   rf   rh   rk   rl   rr   rt   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&r   