Files
id_configurator/id_tools/__main__.py
T
2026-09-20 22:36:21 +02:00

51 lines
1.2 KiB
Python

import logging
import typer
from id_tools.build import app as build_app
from id_tools.publication import app as publication_app
from id_tools.test import app as test_app
SUCCESS = 25
class ColorFormatter(logging.Formatter):
"""Logging formatter that adds ANSI color codes based on log level."""
RESET = "\033[0m"
COLORS = {
logging.DEBUG: "\033[90m", # gris
logging.INFO: "\033[34m", # bleu
SUCCESS: "\033[32m", # vert
logging.WARNING: "\033[33m", # orange
logging.ERROR: "\033[31m", # rouge
logging.CRITICAL: "\033[1;31m", # rouge gras
}
def format(self, record):
color = self.COLORS.get(record.levelno, self.RESET)
message = super().format(record)
return f"{color}{message}{self.RESET}"
def setup_logging():
handler = logging.StreamHandler()
handler.setFormatter(ColorFormatter("%(message)s"))
logging.root.addHandler(handler)
logging.root.setLevel(logging.INFO)
app = typer.Typer()
@app.callback()
def main():
setup_logging()
app.add_typer(build_app, name="build")
app.add_typer(test_app, name="test")
app.add_typer(publication_app, name="publication")
if __name__ == "__main__":
app()