ALLSHIFT/pyproject.toml
pepe ef7857da31 Add shared Python environment, AICONTROL cluster folder, and CLAUDE.md
- Root pyproject.toml + uv.lock: one pinned Python 3.12 environment for every
  cluster (the Project Manual's rule), as a uv workspace; cluster code folders
  are workspace members.
- AICONTROL/: the AI & Control cluster package. spaces.py builds the 64-value
  observation and 4-value action spaces from configs/env.yaml; interface draft
  for the November session with Simulations; tests; clone-and-run README.
- .gitignore: Python environment, caches, W&B runs, raw data downloads.
- CLAUDE.md: repository guidance for Claude Code.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 14:15:02 +02:00

52 lines
2 KiB
TOML

# Team SHIFT — one pinned Python environment for every cluster.
#
# The Project Manual asks that everyone technical works in one repository from one pinned
# Python environment. This file is that environment. The exact versions live in uv.lock;
# `uv sync` at the repository root creates .venv/ with all of them, on any machine.
#
# Each cluster keeps its code in its own top-level folder (AICONTROL/, ...) as a workspace
# member: add the folder to [tool.uv.workspace] members and its package name to
# dependencies, and `uv sync` installs it in editable mode for everyone.
[project]
name = "shift"
version = "0.1.0"
description = "AI-managed hospital hydrogen microgrid — shared environment for all clusters"
requires-python = ">=3.12,<3.13"
dependencies = [
# tables, maths, plots, tests — everyone
"numpy>=2.0",
"pandas>=2.2",
"pyarrow>=17", # Parquet, the agreed format for machine-made tables
"scipy>=1.14",
"matplotlib>=3.9",
"pyyaml>=6.0", # YAML settings and scenario files
"pytest>=8.3",
# Simulations cluster
"pvlib>=0.11", # solar array model
"pyomo>=6.8", # optimisation problems for the benchmark controllers
"highspy>=1.8", # the HiGHS solver
# AI cluster
"gymnasium>=1.0", # the environment interface
"stable-baselines3>=2.4",# ready-made RL algorithms (pulls in torch)
"lightgbm>=4.5", # main forecasting model
"scikit-learn>=1.5", # forecast baselines, sensor checks
"optuna>=4.0", # settings search
"wandb>=0.18", # experiment logging (Weights & Biases)
"shap>=0.46", # explanations
"streamlit>=1.39", # dashboard
# cluster packages from this repository (editable, see [tool.uv.sources])
"aicontrol",
]
[tool.uv]
package = false # the root is an environment, not a library
[tool.uv.sources]
aicontrol = { workspace = true }
[tool.uv.workspace]
members = ["AICONTROL"]
[tool.pytest.ini_options]
testpaths = ["AICONTROL/tests"]