U ���U� � @ s: d dl mZ e� Zddd�Zdd� Zdd� Zd d d�Zd S )� )�localFc C s: zt td�d W S ttfk r4 | s0td��Y nX dS )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 it's behavior based on the current context. To push the current context, :meth:`Context.scope` can be used. .. versionadded:: 5.0 :param silent: is set to `True` the return value is `None` if no context is available. The default behavior is to raise a :exc:`RuntimeError`. �stack���z!There is no active click context.N)�getattr�_local�AttributeError� IndexError�RuntimeError�Zsilent� r �/globals.py�get_current_context s r c C s t j�dg ��| � dS )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�� dS )z%Removes the top level from the stack.N)r r �popr r r r �pop_context"