Files
bootnode/api/pyproject.toml
T
zeekay f46dc90a83 refactor: rename domain bootnode.dev → bootno.de
Update K8s manifests (Ingress hosts, CRD API groups, CORS origins),
ZAP schemas, pyproject.toml URLs, SDK docs import paths, e2e test
emails, and K8s annotations to use the canonical bootno.de domain.
2026-02-12 10:20:22 -08:00

117 lines
2.8 KiB
TOML

[project]
name = "bootnode"
version = "2.0.0"
description = "Blockchain Development Platform - Multi-chain RPC, Token API, NFT API, Smart Wallets, and more"
readme = "README.md"
license = { text = "BSD-3-Clause" }
requires-python = ">=3.12"
authors = [{ name = "Hanzo AI", email = "[email protected]" }]
keywords = ["blockchain", "ethereum", "web3", "rpc", "nft", "erc4337"]
classifiers = [
"Development Status :: 4 - Beta",
"Framework :: FastAPI",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
]
dependencies = [
"fastapi>=0.115.0",
"uvicorn[standard]>=0.32.0",
"pydantic[email]>=2.10.0",
"pydantic-settings>=2.6.0",
"sqlalchemy[asyncio]>=2.0.36",
"asyncpg>=0.30.0",
"alembic>=1.14.0",
"redis>=5.2.0",
"httpx>=0.28.0",
"websockets>=14.0",
"web3>=7.6.0",
"eth-abi>=5.0.0",
"eth-account>=0.13.0",
"python-jose[cryptography]>=3.3.0",
"bcrypt>=4.0.0",
"pyjwt>=2.8.0",
"python-multipart>=0.0.18",
"orjson>=3.10.0",
"structlog>=24.4.0",
"tenacity>=9.0.0",
"cachetools>=5.5.0",
# DataStore (ClickHouse)
"aiochclient>=2.6.0",
# Message Queue (Redis-based, @hanzo/mq compatible)
"arq>=0.26.0",
# Infrastructure Management
"kubernetes>=31.0.0",
"pydo>=0.8.0",
"docker>=7.0.0",
# ZAP Protocol (native Cap'n Proto RPC)
"pycapnp>=2.0.0",
]
[project.optional-dependencies]
dev = [
"pytest>=8.3.0",
"pytest-asyncio>=0.24.0",
"pytest-cov>=6.0.0",
"httpx>=0.28.0",
"ruff>=0.8.0",
"mypy>=1.13.0",
"pre-commit>=4.0.0",
]
# Hanzo SDKs - not published to PyPI yet
# In K8s, the KMS operator injects secrets as env vars directly
# hanzo = [
# "hanzo-kms>=1.0.0",
# "hanzo-iam>=1.0.0",
# ]
[project.scripts]
bootnode = "bootnode.cli:main"
[project.urls]
Homepage = "https://bootno.de"
Documentation = "https://docs.bootno.de"
Repository = "https://github.com/hanzoai/bootnode"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["bootnode"]
[tool.ruff]
target-version = "py312"
line-length = 100
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
"ARG", # flake8-unused-arguments
"SIM", # flake8-simplify
]
ignore = ["E501", "B008", "B904"]
[tool.ruff.lint.isort]
known-first-party = ["bootnode"]
[tool.mypy]
python_version = "3.12"
strict = true
plugins = ["pydantic.mypy"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
addopts = "-v --tb=short"