Source code for django_typer.config
import typing as t
from django.conf import settings
[docs]
def traceback_config() -> t.Dict[str, t.Any]:
"""
Fetch the rich traceback installation parameters from our settings. By default
rich tracebacks are on with show_locals = True. If the config is set to False
or None rich tracebacks will not be installed even if the library is present.
This allows us to have a common traceback configuration for all commands. If rich
tracebacks are managed separately this setting can also be switched off.
"""
default = {"show_locals": False}
cfg = getattr(settings, "DT_RICH_TRACEBACK_CONFIG", default) or default
if cfg is True:
return default
return cfg
def show_locals() -> t.Optional[bool]:
"""
Return the show_locals parameter from the rich traceback configuration.
"""
return traceback_config().get("show_locals", None)
def use_rich_tracebacks() -> bool:
"""
Return true if rich tracebacks should be installed, False otherwise.
"""
from .utils import rich_installed
cfg = getattr(settings, "DT_RICH_TRACEBACK_CONFIG", {"show_locals": False})
return rich_installed and (
(isinstance(cfg, dict) and not cfg.get("no_install", False)) or cfg is True
)