o
    3g                     @  s   d Z ddlmZ ddlZddlZddlmZ ddlZddd
dZdddddZ	dddZ
dddZdddZesIddlmZ eddd ZdS dS ) a  
A helper to make warnings a bit more visible.
TODO ideally would be great to replace with some existing solution, or find a better way,
since who looks at the terminal output?
E.g. would be nice to propagate the warnings in the UI (it's even a subclass of Exception!)
    )annotationsN)TYPE_CHECKINGxstrcolor
str | Nonereturnc                 C  s(   |d u r| S t j s| S tj| |dS )N)fg)sysstderrisattyclickstyle)r   r    r   */home/garg/my-data/HPI/my/core/warnings.py	_colorize   s
   
r   r   messageNonec                O  s<   | dd}|d |d< tjt| |dg|R i | d S )N
stacklevel      r   )getwarningswarnr   )r   r   argskwargsr   r   r   r   _warn   s   $r   c                 O  s   t | g|R i | d S Nr   r   r   r   r   r   r   low#   s   r!   c                 O  s"   d|d< t | g|R i | d S )Nyellowr   r   r    r   r   r   medium(   s   r#   c                 O  s"   d|d< t | g|R i | dS )zQ
    Meant for deprecations, i.e. things that better get some user attention
    redr   Nr   r    r   r   r   high-   s   r%   r   )
deprecatedz"use warnings.warn directly insteadc                  O  s   dd l }|j| i |S )Nr   )r   r   )r   r   r   r   r   r   r   8   s   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )__doc__
__future__r   r
   r   typingr   r   r   r   r!   r#   r%   compatr&   r   r   r   r   r   <module>   s     


