From 10030c6a12f626b671f433f7784c9241f72d5297 Mon Sep 17 00:00:00 2001 From: Nate Barbettini Date: Thu, 24 Oct 2024 09:39:20 -0700 Subject: [PATCH] Fix iteration when calling client.tools.list (#120) **Blocked** until this is merged **and** Stainless clients are re-built: https://github.com/ArcadeAI/Engine/pull/148 TODO: Update arcadepy version dependency. --- arcade/arcade/cli/display.py | 1 + arcade/arcade/cli/utils.py | 7 +++---- arcade/pyproject.toml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/arcade/arcade/cli/display.py b/arcade/arcade/cli/display.py index cc3200ed..4e3c8202 100644 --- a/arcade/arcade/cli/display.py +++ b/arcade/arcade/cli/display.py @@ -30,6 +30,7 @@ def display_tools_table(tools: list[ToolDefinition]) -> None: tool.toolkit.name, tool.toolkit.version, ) + console.print(f"Found {len(tools)} tools.") console.print(table) diff --git a/arcade/arcade/cli/utils.py b/arcade/arcade/cli/utils.py index 5b316433..c49aa55f 100644 --- a/arcade/arcade/cli/utils.py +++ b/arcade/arcade/cli/utils.py @@ -98,10 +98,9 @@ def get_tools_from_engine( client = Arcade(api_key=config.api.key, base_url=config.engine_url) tools = [] - # TODO: This is a hack! limit=100 is a workaround for broken(?) pagination in Stainless - for page in client.tools.list(limit=100, toolkit=toolkit or NOT_GIVEN).iter_pages(): - for item in page: - tools.append(ToolDefinition.model_validate(item.model_dump())) + page_iterator = client.tools.list(toolkit=toolkit or NOT_GIVEN) + for tool in page_iterator: + tools.append(ToolDefinition.model_validate(tool.model_dump())) return tools diff --git a/arcade/pyproject.toml b/arcade/pyproject.toml index 78736677..c6ad8b25 100644 --- a/arcade/pyproject.toml +++ b/arcade/pyproject.toml @@ -20,7 +20,7 @@ rich = "^13.7.1" toml = "^0.10.2" tomlkit = "^0.12.4" openai = "^1.36.0" # TODO: relax to an earlier version that still has what we need -arcadepy = "~0.1.0" +arcadepy = "~0.1.1" pyjwt = "^2.8.0" loguru = "^0.7.0" types-python-dateutil = "2.9.0.20241003"