o
    [h                     @   s:   d dl mZ e ZdddZdd Zdd Zdd
dZd	S )    )localFc              	   C   s2   zt jd W S  ttfy   | stdY dS 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`.
    z!There is no active click context.N)_localstackAttributeError
IndexErrorRuntimeErrorZsilent r
   t/home/ubuntu/experiments/live_experiments/Pythonexperiments/Otree/venv/lib/python3.10/site-packages/click/globals.pyget_current_context   s   r   c                 C   s   t jdg |  dS )z*Pushes a new context to the current stack.r   N)r   __dict__
setdefaultappend)ctxr
   r
   r   push_context   s   r   c                   C   s   t j  dS )z%Removes the top level from the stack.N)r   r   popr
   r
   r
   r   pop_context!   s   r   Nc                 C   s(   | dur| S t dd}|dur|jS dS )z"Internal 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   r
   r
   r   resolve_color_default&   s   
r   )F)N)	threadingr   r   r   r   r   r   r
   r
   r
   r   <module>   s    
