03f723f7fc
NiceGUI è la dashboard ufficiale (port 8080, dark/neon palette, 3 pagine:
/, /convergence, /genomes). La porta è ora parametrica via env
SWARM_DASHBOARD_PORT, letta in ui.run() — Docker la usa anche per
healthcheck e label Traefik.
docker-compose.yml: entrypoint del servizio dashboard cambiato da
streamlit a python -m multi_swarm.dashboard.nicegui_app. Default porta
8080 ovunque (.env, .env.example, compose, healthcheck).
Rimossi i file legacy della vecchia GUI Streamlit:
- src/multi_swarm/dashboard/streamlit_app.py
- src/multi_swarm/dashboard/aquarium.py (helper canvas HTML5)
- src/multi_swarm/dashboard/pages/{01_overview,02_ga_convergence,
03_genomes,04_aquarium}.py
- tests/integration/test_streamlit_smoke.py
pyproject.toml: rimossa la dep streamlit; uv.lock rigenerato (10 deps
transitive eliminate: pydeck, watchdog, jsonschema, pillow, ecc.).
README aggiornato (architettura, comando dashboard, sezione Dashboard
ora descrive NiceGUI con riferimento al deploy Docker via Traefik).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
61 lines
1.3 KiB
TOML
61 lines
1.3 KiB
TOML
[project]
|
|
name = "multi-swarm"
|
|
version = "0.1.0"
|
|
description = "Multi-Swarm Coevolutive PoC trading swarm — Phase 1 lean spike"
|
|
authors = [{ name = "Adriano Dal Pastro", email = "adrianodalpastro@tielogic.com" }]
|
|
requires-python = ">=3.13"
|
|
dependencies = [
|
|
"pandas>=2.2",
|
|
"numpy>=2.1",
|
|
"scipy>=1.14",
|
|
"pydantic>=2.9",
|
|
"pydantic-settings>=2.6",
|
|
"sqlmodel>=0.0.22",
|
|
"openai>=1.55",
|
|
"httpx>=0.28",
|
|
"requests>=2.32",
|
|
"tenacity>=9.0",
|
|
"pyyaml>=6.0",
|
|
"plotly>=5.24",
|
|
"pyarrow>=18.0",
|
|
"nicegui>=3.11.1",
|
|
"yfinance>=1.3.0",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pytest>=8.3",
|
|
"pytest-mock>=3.14",
|
|
"pytest-asyncio>=0.24",
|
|
"responses>=0.25",
|
|
"ruff>=0.7",
|
|
"mypy>=1.13",
|
|
"types-requests>=2.32",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/multi_swarm"]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py313"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "W", "I", "N", "UP", "B", "RUF"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.13"
|
|
strict = true
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
addopts = "-v --tb=short"
|
|
markers = [
|
|
"integration: tests that require external services (Cerbero, LLM API)",
|
|
"slow: tests that take more than 5 seconds",
|
|
]
|