- Flatten opportunity into top-level portfolio and opportunity commands - Add interactive config get/set/key/secret with type coercion - Rewrite --doc to show TUI vs JSON schema per command - Unify agent mode output to JSON only - Make init prompt for API key/secret interactively - Fix coin tab completion alias binding - Fix set_config_value reading from wrong path - Fail loudly on invalid numeric config values Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
52 lines
1.0 KiB
TOML
52 lines
1.0 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "coinhunter"
|
|
version = "2.1.1"
|
|
description = "Binance-first trading CLI for balances, market data, opportunity scanning, and execution."
|
|
readme = "README.md"
|
|
license = {text = "MIT"}
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"binance-connector>=3.9.0",
|
|
"shtab>=1.7.0",
|
|
"tomli>=2.0.1; python_version < '3.11'",
|
|
"tomli-w>=1.0.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8.0",
|
|
"ruff>=0.5.0",
|
|
"mypy>=1.10.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
coinhunter = "coinhunter.cli:main"
|
|
coin = "coinhunter.cli:main"
|
|
|
|
[tool.setuptools]
|
|
package-dir = {"" = "src"}
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
addopts = "-v"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "W", "UP", "B", "C4", "SIM"]
|
|
ignore = ["E501"]
|
|
|
|
[tool.ruff.lint.pydocstyle]
|
|
convention = "google"
|
|
|
|
[tool.mypy]
|
|
python_version = "3.10"
|
|
warn_return_any = true
|
|
warn_unused_ignores = true
|
|
ignore_missing_imports = true
|