
    d@                     B    d dl Z d dlZ G d de          ZddZddZdS )    Nc                       e Zd ZdS )AltairDeprecationWarningN)__name__
__module____qualname__     8lib/python3.11/site-packages/altair/utils/deprecation.pyr   r      s        Dr	   r   c                       fd}|S )zDecorator to deprecate a function or class.

    Parameters
    ----------
    message : string (optional)
        The deprecation message
    c                 &    t          |           S )N)message)
_deprecate)objr   s    r
   wrapperzdeprecated.<locals>.wrapper   s    #w////r	   r   )r   r   s   ` r
   
deprecatedr   	   s#    0 0 0 0 0 Nr	   c           
          d                     | j                  t           t                    r.t          | f j        t           j        d          d          S t                     r)t          j	                    fd            }d|_
        |S t          d                     t                                         )am  Return a version of a class or function that raises a deprecation warning.

    Parameters
    ----------
    obj : class or function
        The object to create a deprecated version of.
    name : string (optional)
        The name of the deprecated object
    message : string (optional)
        The deprecation message

    Returns
    -------
    deprecated_obj :
        The deprecated version of obj

    Examples
    --------
    >>> class Foo: pass
    >>> OldFoo = _deprecate(Foo, "OldFoo")
    >>> f = OldFoo()  # doctest: +SKIP
    AltairDeprecationWarning: alt.OldFoo is deprecated. Use alt.Foo instead.
    Nz)alt.{} is deprecated. Use alt.{} instead.__init__)__doc__r   c                  L    t          j        t          d            | i |S )N   )
stacklevel)warningswarnr   )argskwargsr   r   s     r
   new_objz_deprecate.<locals>.new_obj?   s0    M'#;JJJJ3''''r	   Tz"Cannot deprecate object of type {})formatr   
isinstancetyper   r   r   callable	functoolswraps_deprecated
ValueError)r   namer   r   s   ` ` r
   r   r      s    0 @GG#,
 
 #t QF;&s|ZII 
 
 	
 
# 
Q				( 	( 	( 	( 	( 
		( #=DDT#YYOOPPPr	   )N)NN)r   r!   UserWarningr   r   r   r   r	   r
   <module>r'      s|        	 	 	 	 	{ 	 	 	   /Q /Q /Q /Q /Q /Qr	   