Files
hanzoai_agent/sdk/python/pyproject.toml
T
zeekayandHanzo Dev 116fc35319 The web3 extension imports, and says what is missing
eth-account was declared nowhere, so importing the shipped extension
failed on a clean install and its tests took the suite's collection with
them. It is a web3 extra now, which dev names once.

web3_agent and web3_network are no longer exported: they are written
against an agent model this package does not have — InferenceResult,
State, Router, RouterFn, a network module, and two sibling modules that
do not exist either. Importing them from the package __init__ made all
of it unimportable, including the two modules that are sound. Whether
this SDK grows a network model is a decision, not a rename.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-11 04:10:09 -07:00

102 lines
3.2 KiB
TOML

[build-system]
requires = ["setuptools>=45", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "hanzo_agents"
version = "0.1.41-rc.2"
description = "Python SDK for the Hanzo Agents control plane"
readme = "README.md"
license = {text = "Apache-2.0"}
authors = [
{name = "Hanzo Agents Maintainers"}
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Software Development :: Libraries :: Python Modules",
]
requires-python = ">=3.8,<3.14"
dependencies = [
"fastapi",
"uvicorn",
"requests>=2.28",
"pydantic>=2.0",
"hanzo-llm>=1.0.0",
"psutil",
"PyYAML>=6.0",
"aiohttp>=3.8",
"websockets",
"fal-client>=0.5.0"
]
keywords = ["hanzo_agents", "sdk", "agents"]
[project.urls]
Homepage = "https://github.com/hanzoai/agents"
Documentation = "https://github.com/hanzoai/agents/tree/main/docs"
Issues = "https://github.com/hanzoai/agents/issues"
[tool.setuptools.packages.find]
where = ["."]
include = ["hanzo_agents*"]
exclude = ["tests*", "examples*"]
[project.optional-dependencies]
# The web3 extension imports eth_account at module scope, so importing
# hanzo_agents.extensions.web3 from a clean install failed until this existed —
# and its tests took the whole suite's collection down with them.
web3 = [
"eth-account>=0.11,<1",
]
dev = [
# Named once, here, so the dev environment can run every test this project
# ships rather than most of them.
"hanzo-agents[web3]",
"pytest>=7.4,<9",
"pytest-asyncio>=0.21,<0.24",
"pytest-cov>=4.1,<5",
"responses>=0.23,<0.26",
"respx>=0.20,<0.22",
"freezegun>=1.2,<2",
"syrupy>=4,<5",
"hypothesis>=6.88,<7",
"pytest-socket>=0.6,<0.8",
]
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
markers = [
"smoke: fast sanity checks",
"functional: end-to-end behavior within SDK boundaries",
"contract: API/interface stability tests",
"unit: isolated unit tests",
"integration: tests that can touch network/services",
"mcp: tests that exercise MCP/network interactions"
]
addopts = "-ra -q -m \"not mcp\" --strict-markers --strict-config --cov=hanzo_agents.client --cov=hanzo_agents.agent_field_handler --cov=hanzo_agents.execution_context --cov=hanzo_agents.execution_state --cov=hanzo_agents.memory --cov=hanzo_agents.rate_limiter --cov=hanzo_agents.result_cache --cov-report=term-missing:skip-covered"
asyncio_mode = "auto"
[tool.coverage.run]
source = ["hanzo_agents"]
omit = [
"hanzo_agents/agent_mcp.py",
"hanzo_agents/dynamic_skills.py",
"hanzo_agents/mcp_client.py",
"hanzo_agents/mcp_manager.py",
"hanzo_agents/mcp_stdio_bridge.py",
"hanzo_agents/logger.py",
"hanzo_agents/types.py",
]