mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
fix(cli): resolve JSON spinner leakage and cleanup review findings
- Guard parse_cmd spinner with `fmt == "json"` (default format) to prevent Rich status output from polluting machine-readable stdout in piped usage - Remove unused `Rule` import from cli.py - Remove unused `_orig_print` variable in verify_rich_cli.py - Unify semantica.cli import style in verify_rich_cli.py; use cli_mod.main
This commit is contained in:
+1
-2
@@ -18,7 +18,6 @@ import click
|
||||
from rich import box
|
||||
from rich.console import Console
|
||||
from rich.panel import Panel
|
||||
from rich.rule import Rule
|
||||
from rich.syntax import Syntax
|
||||
from rich.table import Table
|
||||
from rich.text import Text
|
||||
@@ -828,7 +827,7 @@ def parse_cmd(cli_ctx: CLIContext, file: str, parser: Optional[str], fmt: str) -
|
||||
kwargs["parser"] = parser
|
||||
try:
|
||||
from .parse import parse_document
|
||||
if cli_ctx.quiet or cli_ctx.json_output:
|
||||
if cli_ctx.quiet or cli_ctx.json_output or fmt == "json":
|
||||
result = parse_document(**kwargs)
|
||||
else:
|
||||
with console.status(f"[{_DIM}]Parsing {Path(file).name}…[/{_DIM}]", spinner="dots"):
|
||||
|
||||
@@ -14,7 +14,6 @@ def _print(s=""):
|
||||
|
||||
# Monkey-patch print for this module
|
||||
import builtins
|
||||
_orig_print = builtins.print
|
||||
def _safe_print(*args, **kw):
|
||||
sep = kw.get("sep", " ")
|
||||
end = kw.get("end", "\n")
|
||||
@@ -23,7 +22,6 @@ def _safe_print(*args, **kw):
|
||||
sys.stdout.buffer.flush()
|
||||
builtins.print = _safe_print
|
||||
|
||||
from semantica.cli import main
|
||||
from click.testing import CliRunner
|
||||
from rich.console import Console
|
||||
import semantica.cli as cli_mod
|
||||
@@ -37,7 +35,7 @@ def run(args):
|
||||
buf = io.StringIO()
|
||||
cli_mod.console = Console(file=buf, no_color=True, width=120)
|
||||
r = CliRunner()
|
||||
result = r.invoke(main, args)
|
||||
result = r.invoke(cli_mod.main, args)
|
||||
return result.exit_code, buf.getvalue(), result.output
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user