CLI quality of life improvements (#189)

Small QOL improvements: graceful messages in error situations
This commit is contained in:
Nate Barbettini 2025-01-03 13:47:11 -08:00 committed by GitHub
parent f7f5888b21
commit 179837f7fb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 12 additions and 3 deletions

View file

@ -16,6 +16,10 @@ def display_tools_table(tools: list[ToolDefinition]) -> None:
"""
Display a table of tools with their name, description, package, and version.
"""
if not tools:
console.print("No tools found.", style="bold")
return
table = Table(show_header=True, header_style="bold magenta")
table.add_column("Name")
table.add_column("Description")

View file

@ -198,9 +198,14 @@ def get_tools_from_engine(
client = Arcade(api_key=config.api.key, base_url=base_url)
tools = []
page_iterator = client.tools.list(toolkit=toolkit or NOT_GIVEN)
for tool in page_iterator:
tools.append(ToolDefinition.model_validate(tool.model_dump()))
try:
page_iterator = client.tools.list(toolkit=toolkit or NOT_GIVEN)
for tool in page_iterator:
tools.append(ToolDefinition.model_validate(tool.model_dump()))
except APIConnectionError:
console.print(
f"❌ Can't connect to Arcade Engine at {base_url}. (Is it running?)", style="bold red"
)
return tools