data_juicer_agents.commands.output_control 源代码
# -*- coding: utf-8 -*-
"""Shared output-level controls for djx commands."""
from __future__ import annotations
import json
from typing import Any
OUTPUT_LEVELS = ("quiet", "verbose", "debug")
_RANK = {"quiet": 0, "verbose": 1, "debug": 2}
[文档]
def output_level(args: Any) -> str:
level = str(getattr(args, "output_level", "quiet") or "quiet").strip().lower()
if level not in _RANK:
return "quiet"
return level
[文档]
def enabled(args: Any, level: str) -> bool:
current = output_level(args)
target = str(level or "quiet").strip().lower()
if target not in _RANK:
target = "quiet"
return _RANK[current] >= _RANK[target]
[文档]
def emit(args: Any, message: str, *, level: str = "quiet") -> None:
if enabled(args, level):
print(message)
[文档]
def emit_json(
args: Any,
payload: Any,
*,
level: str = "debug",
ensure_ascii: bool = False,
indent: int = 2,
) -> None:
if enabled(args, level):
print(json.dumps(payload, ensure_ascii=ensure_ascii, indent=indent))