B x `@s:ddlmZeZd ddZddZddZd d d Zd S))localFc Cs4y tjdSttfk r.|s*tdYnXdS)aReturns 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)_localstackAttributeError IndexError RuntimeError)silentr 1/tmp/pip-unpacked-wheel-za9e8r29/click/globals.pyget_current_contexts  r cCstjdg|dS)z*Pushes a new context to the current stack.rN)r__dict__ setdefaultappend)ctxr r r push_contextsrcCstjdS)z%Removes the top level from the stack.N)rrpopr r r r pop_context!srNcCs(|dk r |Stdd}|dk r$|jSdS)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. NT)r )r color)rrr r r resolve_color_default&s  r)F)N) threadingrrr rrrr r r r s