Mercurial > repos > bcclaywell > argo_navis
comparison venv/lib/python2.7/site-packages/click/globals.py @ 0:d67268158946 draft
planemo upload commit a3f181f5f126803c654b3a66dd4e83a48f7e203b
author | bcclaywell |
---|---|
date | Mon, 12 Oct 2015 17:43:33 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:d67268158946 |
---|---|
1 from threading import local | |
2 | |
3 | |
4 _local = local() | |
5 | |
6 | |
7 def get_current_context(silent=False): | |
8 """Returns the current click context. This can be used as a way to | |
9 access the current context object from anywhere. This is a more implicit | |
10 alternative to the :func:`pass_context` decorator. This function is | |
11 primarily useful for helpers such as :func:`echo` which might be | |
12 interested in changing it's behavior based on the current context. | |
13 | |
14 To push the current context, :meth:`Context.scope` can be used. | |
15 | |
16 .. versionadded:: 5.0 | |
17 | |
18 :param silent: is set to `True` the return value is `None` if no context | |
19 is available. The default behavior is to raise a | |
20 :exc:`RuntimeError`. | |
21 """ | |
22 try: | |
23 return getattr(_local, 'stack')[-1] | |
24 except (AttributeError, IndexError): | |
25 if not silent: | |
26 raise RuntimeError('There is no active click context.') | |
27 | |
28 | |
29 def push_context(ctx): | |
30 """Pushes a new context to the current stack.""" | |
31 _local.__dict__.setdefault('stack', []).append(ctx) | |
32 | |
33 | |
34 def pop_context(): | |
35 """Removes the top level from the stack.""" | |
36 _local.stack.pop() | |
37 | |
38 | |
39 def resolve_color_default(color=None): | |
40 """"Internal helper to get the default value of the color flag. If a | |
41 value is passed it's returned unchanged, otherwise it's looked up from | |
42 the current context. | |
43 """ | |
44 if color is not None: | |
45 return color | |
46 ctx = get_current_context(silent=True) | |
47 if ctx is not None: | |
48 return ctx.color |