add
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
from typing import TYPE_CHECKING, NoReturn, overload
|
||||
|
||||
from ._ctx_stack import _context_stack
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .core import ReplContext
|
||||
|
||||
|
||||
ISATTY = sys.stdin is not None and sys.stdin.isatty()
|
||||
|
||||
|
||||
@overload
|
||||
def get_current_repl_ctx() -> ReplContext | NoReturn:
|
||||
...
|
||||
|
||||
|
||||
@overload
|
||||
def get_current_repl_ctx(silent: bool = False) -> ReplContext | NoReturn | None:
|
||||
...
|
||||
|
||||
|
||||
def get_current_repl_ctx(silent: bool = False) -> ReplContext | NoReturn | None:
|
||||
"""
|
||||
Retrieves the current click-repl context.
|
||||
|
||||
This function provides a way to access the context from anywhere
|
||||
in the code. This function serves as a more implicit alternative to the
|
||||
:func:`~click.core.pass_context` decorator.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
silent
|
||||
If set to :obj:`True`, the function returns :obj:`None` if no context
|
||||
is available. The default behavior is to raise a :exc:`~RuntimeError`.
|
||||
|
||||
Returns
|
||||
-------
|
||||
:class:`~click_repl.core.ReplContext` | None
|
||||
REPL context object if available, or :obj:`None` if ``silent`` is :obj:`True`.
|
||||
|
||||
Raises
|
||||
------
|
||||
RuntimeError
|
||||
If there's no context object in the stack and ``silent`` is :obj:`False`.
|
||||
"""
|
||||
|
||||
try:
|
||||
return _context_stack[-1]
|
||||
except IndexError:
|
||||
if not silent:
|
||||
raise RuntimeError("There is no active click-repl context.")
|
||||
|
||||
return None
|
||||
Reference in New Issue
Block a user