- 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>
52 lines
2 KiB
TOML
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"]
|