Source code for pas.log

from __future__ import annotations

import click
import logging
from typing import Protocol


[docs] log = logging.getLogger('onegov.org.cronjobs')
[docs] class OutputHandler(Protocol): """Protocol for handling output during KUB import operations."""
[docs] def info(self, message: str) -> None: """Output informational message.""" ...
[docs] def success(self, message: str) -> None: """Output success message.""" ...
[docs] def error(self, message: str) -> None: """Output error message.""" ...
[docs] class ClickOutputHandler: """OutputHandler implementation for CLI using click."""
[docs] def info(self, message: str) -> None: click.echo(message)
[docs] def success(self, message: str) -> None: click.echo(f'✓ {message}')
[docs] def error(self, message: str) -> None: click.echo(f'✗ {message}', err=True)
[docs] class LogOutputHandler: """OutputHandler implementation for cronjobs using logging."""
[docs] def info(self, message: str) -> None: log.info(message)
[docs] def success(self, message: str) -> None: log.info(message)
[docs] def error(self, message: str) -> None: log.error(message)