���U� � @ sS 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 sF y t t d � d SWn* t t f k rA | s= t d � � Yn Xd S)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)�silent� r �/globals.py�get_current_context s r c C s t j j d g � j | � 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 j � d S)z%Removes the top level from the stack.N)r r �popr r r r �pop_context"