feat(workspace): setup uv workspace con 2 member (multi-swarm-core + strategy-crypto)

- Root pyproject.toml come workspace coordinator (no codice, dev deps + tool config)
- src/multi_swarm_core/pyproject.toml: package core con dipendenze (pandas, openai, pydantic, ...)
- src/strategy_crypto/pyproject.toml: package strategia con multi-swarm-core come workspace dep
- Aggiunte env var GA_DB_PATH, STRATEGY_CRYPTO_DB_PATH, DASHBOARD_ROOT_PATH in .env.example
- Patch Dockerfile (commento, label, healthcheck per workspace)
- .gitignore: aggiunto .omc/ + state/*.db generico
- Rigenerato uv.lock dal workspace

uv tree mostra:
  strategy-crypto v0.1.0
  ├── multi-swarm-core v0.1.0
  ├── nicegui v3.12.0
  └── ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Adriano Dal Pastro
2026-05-15 17:45:53 +00:00
parent b6539802e0
commit cd4c3131d9
21 changed files with 318 additions and 752 deletions
+12 -27
View File
@@ -1,26 +1,16 @@
[project]
name = "multi-swarm"
name = "multi-swarm-coevolutive"
version = "0.1.0"
description = "Multi-Swarm Coevolutive PoC trading swarm — Phase 1 lean spike"
description = "Multi-Swarm Coevolutive: monorepo workspace (core + strategie)"
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",
]
[tool.uv.workspace]
members = ["src/multi_swarm_core", "src/strategy_crypto"]
[tool.uv.sources]
multi-swarm-core = { workspace = true }
strategy-crypto = { workspace = true }
[dependency-groups]
dev = [
@@ -31,15 +21,10 @@ dev = [
"ruff>=0.7",
"mypy>=1.13",
"types-requests>=2.32",
"multi-swarm-core",
"strategy-crypto",
]
[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"
@@ -52,7 +37,7 @@ python_version = "3.13"
strict = true
[tool.pytest.ini_options]
testpaths = ["tests"]
testpaths = ["src/multi_swarm_core/tests", "src/strategy_crypto/tests"]
addopts = "-v --tb=short"
markers = [
"integration: tests that require external services (Cerbero, LLM API)",