feat(cli): add verbose flag to compile

This commit is contained in:
2026-06-05 14:17:24 +02:00
parent 288d15a9bc
commit 82a0f13242

View File

@@ -35,9 +35,15 @@ def midas():
@midas.command() @midas.command()
@click.option("-l", "--highlight", type=click.File("w")) @click.option("-l", "--highlight", type=click.File("w"))
@click.option("-t", "--types", type=click.File("r"), multiple=True) @click.option("-t", "--types", type=click.File("r"), multiple=True)
@click.option("-v", "--verbose", is_flag=True)
@click.argument("file", type=click.File("r")) @click.argument("file", type=click.File("r"))
def compile(highlight: Optional[TextIO], file: TextIO, types: tuple[TextIO]): def compile(
logging.basicConfig(level=logging.DEBUG) highlight: Optional[TextIO],
types: tuple[TextIO],
verbose: bool,
file: TextIO,
):
logging.basicConfig(level=logging.DEBUG if verbose else logging.WARN)
source: str = file.read() source: str = file.read()
tree: ast.Module = ast.parse(source, filename=file.name) tree: ast.Module = ast.parse(source, filename=file.name)
parser = PythonParser() parser = PythonParser()
@@ -54,16 +60,17 @@ def compile(highlight: Optional[TextIO], file: TextIO, types: tuple[TextIO]):
for diagnostic in diagnostics: for diagnostic in diagnostics:
print(diagnostic) print(diagnostic)
print( if verbose:
json.dumps( print(
UniversalJSONDumper.dump( json.dumps(
checker.global_env, UniversalJSONDumper.dump(
[("Environment", "_children")], checker.global_env,
lambda obj: isinstance(obj, get_args(Type)), [("Environment", "_children")],
), lambda obj: isinstance(obj, get_args(Type)),
indent=4, ),
indent=4,
)
) )
)
if highlight is not None: if highlight is not None:
highlighter = DiagnosticsHighlighter(source) highlighter = DiagnosticsHighlighter(source)
highlighter.highlight(diagnostics) highlighter.highlight(diagnostics)