
    e!h                        d dl mZ d dlZd dlmZ ej                  rddlmZ  e       Z	ej                  ddd       Zej                  ddd       ZdddZdd	Zdd
ZdddZy)    )annotationsN)local   )Contextc                     y N silents    U/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/click/globals.pyget_current_contextr      s    FI    c                     y r   r	   r
   s    r   r   r      s    ?Br   c                    	 t        j                  dt        j                  d         S # t        t
        f$ r}| st        d      |Y d}~yd}~ww xY w)a  Returns the current click context.  This can be used as a way to
    access the current context object from anywhere.  This is a more implicit
    alternative to the :func:`pass_context` decorator.  This function is
    primarily useful for helpers such as :func:`echo` which might be
    interested in changing its behavior based on the current context.

    To push the current context, :meth:`Context.scope` can be used.

    .. versionadded:: 5.0

    :param silent: if set to `True` the return value is `None` if no context
                   is available.  The default behavior is to raise a
                   :exc:`RuntimeError`.
    r   z!There is no active click context.N)tcast_localstackAttributeError
IndexErrorRuntimeError)r   es     r   r   r      sT    Kvvib!122J' KBCJ  	Ks   &) AAAc                b    t         j                  j                  dg       j                  |        y)z*Pushes a new context to the current stack.r   N)r   __dict__
setdefaultappend)ctxs    r   push_contextr   ,   s!    
OOw+2237r   c                 @    t         j                  j                          y)z%Removes the top level from the stack.N)r   r   popr	   r   r   pop_contextr"   1   s    
LLr   c                @    | | S t        d      }||j                  S y)zInternal helper to get the default value of the color flag.  If a
    value is passed it's returned unchanged, otherwise it's looked up from
    the current context.
    NTr
   )r   color)r$   r   s     r   resolve_color_defaultr%   6   s+    
 
T
*C
yyr   )F)r   zt.Literal[False]returnr   ).)r   boolr&   zContext | None)r   r   r&   None)r&   r(   r   )r$   bool | Noner&   r)   )
__future__r   typingr   	threadingr   TYPE_CHECKINGcorer   r   overloadr   r   r"   r%   r	   r   r   <module>r0      s[    "  ??	  I  I  B  B08

r   