
    Egl                    Z   d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
mZ d dlZe	rd dlmZ d dlmZ  ed          Z ed	          Z G d
 de          Zd+dZd,dZddd-dZddd.dZd/d"Z ej        d#$           G d% d&                      Z G d' d(e          Zd0d*ZdS )1    )annotationsN)wraps)
ModuleType)TYPE_CHECKINGClassVarTypeVar)Callable)	ParamSpecArgsTRetTc                      e Zd ZdZdS )TrioDeprecationWarninga  Warning emitted if you use deprecated Trio functionality.

    As a young project, Trio is currently quite aggressive about deprecating
    and/or removing functionality that we realize was a bad idea. If you use
    Trio, you should subscribe to `issue #1
    <https://github.com/python-trio/trio/issues/1>`__ to get information about
    upcoming deprecations and other backwards compatibility breaking changes.

    Despite the name, this class currently inherits from
    :class:`FutureWarning`, not :class:`DeprecationWarning`, because while
    we're in young-and-aggressive mode we want these warnings to be visible by
    default. You can hide them by installing a filter or with the ``-W``
    switch: see the :mod:`warnings` documentation for details.

    N)__name__
__module____qualname____doc__     D/var/www/sysmax/venv/lib/python3.11/site-packages/trio/_deprecate.pyr   r      s           r   r   issueintreturnstrc                    d|  S )Nz+https://github.com/python-trio/trio/issues/r   )r   s    r   _url_for_issuer   ,   s    @@@@r   thingobjectc                    t          | d          r!t          | d          r| j         d| j         S t          |           S )Nr   r   .)hasattrr   r   r   r   s    r   
_stringifyr"   0   sK    ul## :~(F(F :"99U%7999u::r      
stacklevelversion
int | Noneinsteadr%   Nonec                   |dz  }t          |            d| }||dz  }n|dt          |           dz  }||dt          |           dz  }t          j        t	          |          |           d S )	N   z is deprecated since Trio z with no replacementz; use z insteadz ()r$   )r"   r   warningswarnr   )r   r&   r   r(   r%   msgs         r   warn_deprecatedr0   6   s     !OJ
C
C'
C
CC%%5
7++5555,N5)),,,,M(--*EEEEEEr   r!   8Callable[[Callable[ArgsT, RetT]], Callable[ArgsT, RetT]]c                     d fd}|S )NfnCallable[ArgsT, RetT]r   c                H    t                     d fd            }||j        u|j        }|                                }|dz  }|d	 d
z  }|dt                     dz  }&|d                    t                              z  }|d
z  }||_        |S )Nargs
ArgsT.argskwargsArgsT.kwargsr   r   c                 :    t                      | i |S )N)r(   r   )r0   )r6   r8   r3   r(   r   r   r&   s     r   wrapperz,deprecated.<locals>.do_wrap.<locals>.wrapperQ   s/    E7G5IIII2t&v&&&r   z

z.. deprecated:: 
z   Use z
 instead.
z(   For details, see `issue #{} <{}>`__.
r6   r7   r8   r9   r   r   )r   r   rstripr"   formatr   )r3   r;   docr(   r   r   r&   s   `  r   do_wrapzdeprecated.<locals>.do_wrapN   s     
r	' 	' 	' 	' 	' 	' 	' 	' 	' 
	' =E?&/C**,,C6MC1g1111C"AG!4!4AAAA BII>%00   4KC!GOr   )r3   r4   r   r4   r   )r&   r   r   r(   rA   s   ```` r   
deprecatedrB   K   s:            < Nr   old_qualnamenew_fnr4   c                   t          ||          t          d          dfd
                        }| |_        |                     d          d         |_        |S )Nr   r(   )r   __annotations__)assignedr6   r7   r8   r9   r   r   c                      | i |S )zDeprecated alias.r   )r6   r8   rD   s     r   r;   z!deprecated_alias.<locals>.wrapperv   s     vt&v&&&r   r   r=   )rB   r   r   
rpartitionr   )rC   rD   r&   r   r;   s    `   r   deprecated_aliasrL   o   s     uf555
6=>>>' ' ' ' ' ?> 65' (G#..s33B7GNr   T)frozenc                      e Zd ZU  e            Zded<    ej                    Zded<    ej                    Z	ded<    ej                    Z
ded<    ej        e	          Zded
<   dS )DeprecatedAttributezClassVar[object]_not_setr   valuer   r&   r'   r   )defaultr(   N)r   r   r   r   rP   rG   attribrQ   r&   r   r(   r   r   r   rO   rO      s         !'H))))DGIIE4799G		E!!!!dgh///G//////r   rO   c                  "    e Zd ZU ded<   d	dZdS )
_ModuleWithDeprecationszdict[str, DeprecatedAttribute]__deprecated_attributes__namer   r   r   c                   || j         v rY| j         |         }|j        }|t          j        u r|j        }| j         d| }t          ||j        |j        |           |j        S d}t          |
                    | j        |                    )Nr   rF   z!module '{}' has no attribute '{}')rW   r(   rO   rP   rQ   r   r0   r&   r   AttributeErrorr?   )selfrX   infor(   r   r/   s         r   __getattr__z#_ModuleWithDeprecations.__getattr__   s    41111$7DlG-666*}--t--EE4<tz7SSSS:1SZZt<<===r   N)rX   r   r   r   )r   r   r   rG   r]   r   r   r   rV   rV      s6         ====> > > > > >r   rV   module_namec                ~    t           j        |          }t          |_        t	          |t                    sJ i |_        d S )N)sysmodulesrV   	__class__
isinstancerW   )r^   modules     r   enable_attribute_deprecationsre      s=    [%F.Ff566666 (*F$$$r   )r   r   r   r   )r   r   r   r   )r   r   r&   r   r   r'   r(   r   r%   r   r   r)   )
r&   r   r   r   r   r'   r(   r   r   r1   )
rC   r   rD   r4   r&   r   r   r'   r   r4   )r^   r   r   r)   )
__future__r   r`   r-   	functoolsr   typesr   typingr   r   r   rS   collections.abcr	   typing_extensionsr
   r   r   FutureWarningr   r   r"   r0   rB   rL   srO   rV   re   r   r   r   <module>rn      s   " " " " " " 



              3 3 3 3 3 3 3 3 3 3  ((((((++++++IgEwv    ]   $A A A A    F F F F F F, &*! ! ! ! ! !H   $ t0 0 0 0 0 0 0 0> > > > >j > > >"* * * * * *r   