Another small one. When you `arcade deploy`, you need to 1. Run the command from the root of your project, and 2. Specify the relative path to your entrypoint file if it is not located at the root of your repository or if it is named something other than `server.py`.
159 lines
3.4 KiB
TOML
159 lines
3.4 KiB
TOML
[project]
|
|
name = "arcade-mcp"
|
|
version = "1.5.2"
|
|
description = "Arcade.dev - Tool Calling platform for Agents"
|
|
readme = "README.md"
|
|
license = {file = "LICENSE"}
|
|
authors = [
|
|
{name = "Arcade", email = "dev@arcade.dev"},
|
|
]
|
|
classifiers = [
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
]
|
|
requires-python = ">=3.10"
|
|
|
|
dependencies = [
|
|
# CLI dependencies
|
|
"arcade-mcp-server>=1.7.2,<2.0.0",
|
|
"arcade-core>=3.3.3,<4.0.0",
|
|
"typer==0.10.0",
|
|
"rich==13.9.4",
|
|
"Jinja2==3.1.6",
|
|
"arcadepy==1.8.0",
|
|
"tqdm==4.67.1",
|
|
"openai==1.82.1",
|
|
"click==8.1.8",
|
|
"posthog==6.7.6",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
all = [
|
|
# evals
|
|
"scipy>=1.14.0",
|
|
"numpy>=2.0.0",
|
|
"scikit-learn>=1.5.0",
|
|
"pytz>=2024.1",
|
|
"python-dateutil>=2.8.2",
|
|
# mcp
|
|
"arcade-mcp-server>=1.7.2,<2.0.0",
|
|
# serve
|
|
"arcade-serve>=3.0.0,<4.0.0",
|
|
# tdk
|
|
"arcade-tdk>=3.0.0,<4.0.0",
|
|
]
|
|
# Evals also depends on arcade-core and openai, but they are already required deps
|
|
evals = [
|
|
"scipy>=1.14.0",
|
|
"numpy>=2.0.0",
|
|
"scikit-learn>=1.5.0",
|
|
"pytz>=2024.1",
|
|
"python-dateutil>=2.8.2",
|
|
]
|
|
|
|
[tool.uv]
|
|
dev-dependencies = [
|
|
"pytest>=8.1.2",
|
|
"pytest-cov>=4.0.0",
|
|
"pytest-asyncio>=0.23.7",
|
|
"mypy>=1.5.1",
|
|
"pre-commit>=3.4.0",
|
|
"ruff>=0.4.0",
|
|
"types-PyYAML>=6.0.0",
|
|
"types-python-dateutil>=2.8.2",
|
|
"types-pytz>=2024.1",
|
|
]
|
|
|
|
# CLI entry point
|
|
[project.scripts]
|
|
arcade = "arcade_cli.main:cli"
|
|
arcade-mcp = "arcade_cli.main:cli"
|
|
|
|
[tool.uv.sources]
|
|
# Workspace member sources
|
|
arcade-core = { workspace = true }
|
|
arcade-tdk = { workspace = true }
|
|
arcade-serve = { workspace = true }
|
|
arcade-mcp-server = { workspace = true }
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = [
|
|
"libs/arcade-cli/arcade_cli",
|
|
"libs/arcade-evals/arcade_evals",
|
|
]
|
|
|
|
[tool.uv.workspace]
|
|
members = [
|
|
"libs/arcade-core",
|
|
"libs/arcade-tdk",
|
|
"libs/arcade-serve",
|
|
"libs/arcade-mcp-server",
|
|
]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.10"
|
|
disallow_untyped_defs = true
|
|
disallow_any_unimported = true
|
|
no_implicit_optional = true
|
|
check_untyped_defs = true
|
|
warn_return_any = true
|
|
warn_unused_ignores = true
|
|
show_error_codes = true
|
|
ignore_missing_imports = true
|
|
exclude = [
|
|
'.*{{.*}}.*' # Ignore files that have names that use Jinja template syntax
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["libs/tests"]
|
|
python_files = ["test_*.py"]
|
|
python_classes = ["Test*"]
|
|
python_functions = ["test_*"]
|
|
addopts = [
|
|
"--strict-markers",
|
|
"--strict-config",
|
|
"--verbose",
|
|
"--cov=libs",
|
|
"--cov-report=term-missing",
|
|
"--cov-report=html",
|
|
"--cov-report=xml",
|
|
]
|
|
|
|
[tool.coverage.run]
|
|
source = ["libs"]
|
|
omit = [
|
|
"*/tests/*",
|
|
"*/test_*",
|
|
"*/__pycache__/*",
|
|
]
|
|
|
|
[tool.coverage.report]
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"def __repr__",
|
|
"raise AssertionError",
|
|
"raise NotImplementedError",
|
|
"if __name__ == .__main__.:",
|
|
"if TYPE_CHECKING:",
|
|
]
|
|
|
|
[tool.ruff]
|
|
target-version = "py310"
|
|
line-length = 100
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "N", "UP", "RUF"]
|
|
ignore = ["E501", "S105"]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"__init__.py" = ["F401"]
|