This is the first of a few PRs. Deploy to staging will fail until we have `arcade-core`, `arcade-serve`, and `arcade-ai` released to PyPI. This PR will release `arcade-core` to PyPI. ### PR Description * Adds workflow that checks for changes in any pyproject.toml, and if its version has changed, then tests, builds wheel, then publishes to PyPI * Updates the Dockerfile for our new structure * Updates porter yamls * Updates `make full-dist` * Removes a couple unused workflows Check out https://github.com/ArcadeAI/arcade-ai/actions/runs/15622059209 to see how the new workflow works (note that it failed publishing to PyPI on purpose) |
||
|---|---|---|
| .. | ||
| arcade_tdk | ||
| pyproject.toml | ||
| README.md | ||
Arcade TDK (Toolkit Development Kit)
Toolkit Development Kit for building and testing Arcade tools.
Overview
Arcade TDK provides the essential tools and utilities for building Arcade tools:
- Tool Decorator: Simple
@tooldecorator for creating Arcade tools - Authentication: Auth providers and helpers for tool security
- Annotations: Type annotations and parameter validation
- Core Integration: Seamless integration with arcade-core components
Installation
pip install arcade-tdk
Usage
from typing import Annotated
from arcade_tdk import tool
@tool
def hello_world(name: Annotated[str, "The name of the person to greet"]) -> str:
"""Say hello to someone."""
return f"Hello, {name}!"
# The tool is automatically registered and available for use
Advanced Usage
from typing import Annotated
from arcade_tdk import tool, ToolCatalog, Toolkit
# Create tools with more complex parameters
@tool
def calculate_sum(numbers: Annotated[list[float], "The numbers to sum"]) -> float:
"""Calculate the sum of a list of numbers."""
return sum(numbers)
# Access the tool catalog
catalog = ToolCatalog()
tools = catalog.get_all_tools()
# Work with toolkits
toolkit = Toolkit.from_directory("my_toolkit")
License
MIT License - see LICENSE file for details.