rhiza_tools.console
Console output utilities for rhiza-tools CLI.
Provides clean, user-facing output functions using typer.echo/secho, which is the standard approach for Click/Typer-based CLIs. Loguru is reserved for debug/diagnostic output and is only enabled when the user passes --verbose.
Usage in commands::
from rhiza_tools.console import console
console.info("Current version: 1.0.0")
console.success("Version bumped successfully!")
console.warning("Branch is ahead of remote")
console.error("pyproject.toml not found")
1"""Console output utilities for rhiza-tools CLI. 2 3Provides clean, user-facing output functions using typer.echo/secho, 4which is the standard approach for Click/Typer-based CLIs. Loguru is 5reserved for debug/diagnostic output and is only enabled when the user 6passes --verbose. 7 8Usage in commands:: 9 10 from rhiza_tools.console import console 11 12 console.info("Current version: 1.0.0") 13 console.success("Version bumped successfully!") 14 console.warning("Branch is ahead of remote") 15 console.error("pyproject.toml not found") 16""" 17 18import sys 19 20import typer 21from loguru import logger 22 23_verbose: bool = False 24 25 26def configure(*, verbose: bool = False) -> None: 27 """Configure console output and logging verbosity. 28 29 Removes loguru's default stderr handler so that loguru output is 30 suppressed by default. When *verbose* is ``True``, a handler is 31 re-added at DEBUG level. 32 33 This should be called once from the CLI callback before any command 34 runs. 35 36 Args: 37 verbose: If True, enable loguru debug output on stderr. 38 """ 39 global _verbose 40 _verbose = verbose 41 42 # Remove all default loguru handlers (the default one logs to stderr at DEBUG) 43 logger.remove() 44 45 if verbose: 46 logger.add(sys.stderr, level="DEBUG") 47 48 49def is_verbose() -> bool: 50 """Return whether verbose mode is currently enabled.""" 51 return _verbose 52 53 54def info(message: str) -> None: 55 """Print an informational message to stdout. 56 57 Args: 58 message: The message to display. 59 """ 60 typer.echo(message) 61 62 63def success(message: str) -> None: 64 """Print a success message to stdout. 65 66 Args: 67 message: The message to display. 68 """ 69 typer.echo(message) 70 71 72def warning(message: str) -> None: 73 """Print a warning message to stderr. 74 75 Args: 76 message: The message to display. 77 """ 78 typer.secho(message, fg=typer.colors.YELLOW, err=True) 79 80 81def error(message: str) -> None: 82 """Print an error message to stderr. 83 84 Args: 85 message: The message to display. 86 """ 87 typer.secho(message, fg=typer.colors.RED, err=True)
def
configure(*, verbose: bool = False) -> None:
27def configure(*, verbose: bool = False) -> None: 28 """Configure console output and logging verbosity. 29 30 Removes loguru's default stderr handler so that loguru output is 31 suppressed by default. When *verbose* is ``True``, a handler is 32 re-added at DEBUG level. 33 34 This should be called once from the CLI callback before any command 35 runs. 36 37 Args: 38 verbose: If True, enable loguru debug output on stderr. 39 """ 40 global _verbose 41 _verbose = verbose 42 43 # Remove all default loguru handlers (the default one logs to stderr at DEBUG) 44 logger.remove() 45 46 if verbose: 47 logger.add(sys.stderr, level="DEBUG")
Configure console output and logging verbosity.
Removes loguru's default stderr handler so that loguru output is
suppressed by default. When verbose is True, a handler is
re-added at DEBUG level.
This should be called once from the CLI callback before any command runs.
Arguments:
- verbose: If True, enable loguru debug output on stderr.
def
is_verbose() -> bool:
50def is_verbose() -> bool: 51 """Return whether verbose mode is currently enabled.""" 52 return _verbose
Return whether verbose mode is currently enabled.
def
info(message: str) -> None:
55def info(message: str) -> None: 56 """Print an informational message to stdout. 57 58 Args: 59 message: The message to display. 60 """ 61 typer.echo(message)
Print an informational message to stdout.
Arguments:
- message: The message to display.
def
success(message: str) -> None:
64def success(message: str) -> None: 65 """Print a success message to stdout. 66 67 Args: 68 message: The message to display. 69 """ 70 typer.echo(message)
Print a success message to stdout.
Arguments:
- message: The message to display.
def
warning(message: str) -> None:
73def warning(message: str) -> None: 74 """Print a warning message to stderr. 75 76 Args: 77 message: The message to display. 78 """ 79 typer.secho(message, fg=typer.colors.YELLOW, err=True)
Print a warning message to stderr.
Arguments:
- message: The message to display.
def
error(message: str) -> None:
82def error(message: str) -> None: 83 """Print an error message to stderr. 84 85 Args: 86 message: The message to display. 87 """ 88 typer.secho(message, fg=typer.colors.RED, err=True)
Print an error message to stderr.
Arguments:
- message: The message to display.