feat(config): update config display

This commit is contained in:
arkohut 2024-11-14 21:29:14 +08:00
parent f1820d0d93
commit 7c3956109e

View File

@ -153,12 +153,14 @@ def get_database_path():
def format_value(value): def format_value(value):
if isinstance(value, (VLMSettings, OCRSettings, EmbeddingSettings)): if isinstance(value, dict):
return ( # Format nested dictionary with proper indentation
"{\n" formatted_items = []
+ "\n".join(f" {k}: {v}" for k, v in value.model_dump().items()) for k, v in value.items():
+ "\n }" # Add proper indentation and alignment for nested items
) formatted_value = str(v)
formatted_items.append(f" {k:<12} : {formatted_value}")
return "\n" + "\n".join(formatted_items)
elif isinstance(value, (list, tuple)): elif isinstance(value, (list, tuple)):
return f"[{', '.join(map(str, value))}]" return f"[{', '.join(map(str, value))}]"
elif isinstance(value, SecretStr): elif isinstance(value, SecretStr):
@ -178,9 +180,10 @@ def display_config():
if key in ["base_dir", "database_path", "screenshots_dir"]: if key in ["base_dir", "database_path", "screenshots_dir"]:
resolved_value = getattr(settings, f"resolved_{key}") resolved_value = getattr(settings, f"resolved_{key}")
formatted_value += f" (resolved: {resolved_value})" formatted_value += f" (resolved: {resolved_value})"
# 如果值包含换行符,使用多行格式打印
if "\n" in formatted_value: if "\n" in formatted_value:
typer.echo(f"{key}:") typer.echo(f"{key.ljust(max_key_length)} :{formatted_value}")
for line in formatted_value.split("\n"):
typer.echo(f" {line}")
else: else:
# 对于单行值,在同一行打印
typer.echo(f"{key.ljust(max_key_length)} : {formatted_value}") typer.echo(f"{key.ljust(max_key_length)} : {formatted_value}")