ALLSHIFT/pyproject.toml
robert 702647d84e Updated the parameter names contained within the matlab controller david1606
TBD: parameters outside the controller, parameters contained on the old parameter doc
2026-09-11 13:05:38 +00: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"]