Rename _meta requirements field to arcade_requirements (#616)

Also we are now excluding None in the model dump
This commit is contained in:
Eric Gustin 2025-10-14 19:01:05 -07:00 committed by GitHub
parent 3d2665d36c
commit 668d674995
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 7 additions and 5 deletions

View file

@ -69,7 +69,7 @@ check-toolkits: ## Run code quality tools for each toolkit that has a Makefile
done done
.PHONY: test .PHONY: test
test: ## Test the code with pytest test: install ## Test the code with pytest
@echo "🚀 Testing libs: Running pytest" @echo "🚀 Testing libs: Running pytest"
@uv run pytest -W ignore -v libs/tests --cov=libs --cov-config=pyproject.toml --cov-report=xml @uv run pytest -W ignore -v libs/tests --cov=libs --cov-config=pyproject.toml --cov-report=xml

View file

@ -71,7 +71,7 @@ def create_mcp_tool(tool: MaterializedTool) -> MCPTool | None:
# Build meta with requirements if any exist # Build meta with requirements if any exist
meta = None meta = None
if requirements.authorization or requirements.secrets or requirements.metadata: if requirements.authorization or requirements.secrets or requirements.metadata:
meta = {"requirements": requirements.model_dump()} meta = {"arcade_requirements": requirements.model_dump(exclude_none=True)}
# Instantiate MCPTool model to ensure shape correctness # Instantiate MCPTool model to ensure shape correctness
return MCPTool( return MCPTool(

View file

@ -40,7 +40,7 @@ class ToolManager(ComponentManager[Key, ManagedTool]):
requirements = tool.definition.requirements requirements = tool.definition.requirements
meta = None meta = None
if requirements.authorization or requirements.secrets or requirements.metadata: if requirements.authorization or requirements.secrets or requirements.metadata:
meta = {"requirements": requirements.model_dump()} meta = {"arcade_requirements": requirements.model_dump(exclude_none=True)}
return MCPTool( return MCPTool(
name=self._sanitize_name(tool.definition.fully_qualified_name), name=self._sanitize_name(tool.definition.fully_qualified_name),

View file

@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project] [project]
name = "arcade-mcp-server" name = "arcade-mcp-server"
version = "1.3.0" version = "1.3.1"
description = "Model Context Protocol (MCP) server framework for Arcade.dev" description = "Model Context Protocol (MCP) server framework for Arcade.dev"
readme = "README.md" readme = "README.md"
authors = [{ name = "Arcade.dev" }] authors = [{ name = "Arcade.dev" }]

View file

@ -239,12 +239,14 @@ def test_compute_login_url(inputs: dict, expected_output: str):
assert login_url == expected_output assert login_url == expected_output
def test_resolve_provider_api_key(): def test_resolve_provider_api_key(monkeypatch):
resolved_api_key = resolve_provider_api_key(Provider.OPENAI, "123") resolved_api_key = resolve_provider_api_key(Provider.OPENAI, "123")
assert resolved_api_key == "123" assert resolved_api_key == "123"
resolved_api_key = resolve_provider_api_key("not-a-provider", None) resolved_api_key = resolve_provider_api_key("not-a-provider", None)
assert resolved_api_key is None assert resolved_api_key is None
# Ensure OPENAI_API_KEY is not set in the environment for this test
monkeypatch.delenv("OPENAI_API_KEY", raising=False)
resolved_api_key = resolve_provider_api_key(Provider.OPENAI, None) resolved_api_key = resolve_provider_api_key(Provider.OPENAI, None)
assert resolved_api_key is None assert resolved_api_key is None