
    h                        S SK Jr  S SKrS SKrS SKJr  S SKJrJrJ	r	  S SK
Jr  S SKJr  \(       a1  S SKr\R                  S:  a  S SKJr  OS SKJr  \" S	5      r\	" S
5      rSSS jjrSS jrg)    )annotationsN)wraps)TYPE_CHECKINGCallableTypeVar)issue_warning)UnstableWarning)   
   )	ParamSpecPTc                    [        [        [        R                  R	                  SS5      5      5      nU(       d  gU c  Sn U S-  n [        U [        5        g)z
Issue a warning for use of unstable functionality.

The `warn_unstable` setting must be enabled, otherwise no warning is issued.

Parameters
----------
message
    The message associated with the warning.

See Also
--------
Config.warn_unstable
POLARS_WARN_UNSTABLEr   Nz*this functionality is considered unstable.zN It may be changed at any point without it being considered a breaking change.)boolintosenvirongetr   r	   )messagewarnings_enableds     P/home/james-whalen/.local/lib/python3.13/site-packages/polars/_utils/unstable.pyissue_unstable_warningr      sM     C

/Eq IJK>XG '?+    c                     SS jn U $ )z)Decorator to mark a function as unstable.c                j   ^  [        T 5      SU 4S jj5       n[        R                  " T 5      Ul        U$ )Nc                 F   > [        STR                   S35        T" U 0 UD6$ )N`z` is considered unstable.)r   __name__)argskwargsfunctions     r   wrapper+unstable.<locals>.decorate.<locals>.wrapper7   s,    "Qx'8'8&99R#STT,V,,r   )r    zP.argsr!   zP.kwargsreturnr   )r   inspect	signature__signature__)r"   r#   s   ` r   decorateunstable.<locals>.decorate6   s3    	x	- 
	- !( 1 1( ;r   )r"   Callable[P, T]r%   r+    )r)   s    r   unstabler-   3   s     Or   )N)r   z
str | Noner%   None)r%   z*Callable[[Callable[P, T]], Callable[P, T]])
__future__r   r&   r   	functoolsr   typingr   r   r   polars._utils.variousr   polars.exceptionsr	   sysversion_infor   typing_extensionsr   r   r   r-   r,   r   r   <module>r7      sS    "  	  3 3 / -
7"$/#AA,8r   