Consolidates the currently applicable dependency updates into one PR, including the closed Dependabot backlog such as #1241, plus dependency surfaces that were not covered by the repository's previous pip-only Dependabot configuration.
Cleanup of test warnings.
Most importent:
* GitPython + pypdf security hardening.
* Uvicorn WebSocket close/backpressure/header fixes for server/dashboard reliability.
* FastAPI dependency-memory/OpenAPI improvements for the API process.
* Bokeh WebSocket/resource-leak/prefix fixes for EOSdash and proxied deployments.
* cachebox cancellation/lock cleanup fixes for long-running/concurrent work.
* pandas 3.0.5 avoiding the yanked 3.0.4 datetime/segfault build.
* Ruff security-lint and pydocstyle correctness fixes, plus faster release builds via PGO.
* platformdirs malformed-XDG and duplicate-directory fixes for deployment portability.
* CI action modernization, regenerated uv.lock, and expanded Dependabot coverage.
Runtime dependencies
cachebox: 6.1.2 → 6.2.2
fastapi: 0.139.2 → 0.141.1
python-fasthtml: 0.14.9 → 0.14.11
MonsterUI: 1.0.46 → 1.0.47
bokeh: 3.9.1 → 3.9.2
uvicorn: 0.51.0 → 0.52.4 (build(deps): bump uvicorn from 0.51.0 to 0.52.3 #1241, refreshed to latest patch)
pandas: 3.0.3 → 3.0.5
platformdirs: 4.11.0 → 4.11.3
Development/test dependencies
pandas-stubs: 3.0.3.260530 → 3.0.5.260730
types-PyYAML: 6.0.12.20260518 → 6.0.12.20260724
GitPython: 3.1.53 → 3.1.58 (security/fix releases)
coverage: 7.15.2 → 7.15.4
pypdf: 6.14.2 → 6.16.1 (includes security fixes)
Pre-commit/tooling
ruff-pre-commit: v0.15.21 → v0.16.3
synchronize pandas-stubs, types-docutils, and types-PyYAML pins with pyproject.toml
CI / repository dependencies
Python 3.13.9 → 3.13.15 in CI, Docker, .env, and local Docker Make targets
actions/checkout → v7 in pytest, pre-commit, CodeQL, and release workflows
actions/setup-python → v7 in pytest, pre-commit, and release workflows
actions/upload-artifact → v7 in pytest workflow
actions/stale: v9.1.0 → v11.0.0 (SHA-pinned)
regenerate uv.lock from the final dependency pins so locked/frozen installs match pyproject.toml
Future update coverage
Expand Dependabot from pip-only to also monitor:
GitHub Actions
Docker
The existing open docutils 0.23 update (#1085) is intentionally excluded because it has separate compatibility/ignore handling and should remain isolated.
docker-build.yml was audited and is already using the newer action generations, so no changes were needed there.
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Add a PV forecast provider that calculates the forecast using a PVLib system model
and weather forecast from the EOS weather forecast provider.
Additional module and inverter models can be easily added as the database
is build from PVLib and SAM databases and a bundled csv file.
The module model and inververt model names are provided by new endpoints
to be used in configuration.
The provider is based on the fantastic work of EMHASS. See
https://github.com/davidusb-geek/emhass/blob/master/src/emhass/forecast.py
A short description of the provider is added to the documentation.
Besides the new features there are the fixes and improvements:
* feat: improve EOSdash config page
* fix: kex_to_series for start_datetime
Make key_to_series always start the series at start_datetime.
* fix: default provider for GENETIC and GENETIC0 optimization
To make the default less dependent on internet servers (with API changes and
availability issues) the default for PVForecast is set to PVForecastPVLib
and for ElecPrice to ElecPriceFixed. The default weather provider is changed
to OpenMeteo.
* fix: EOSdash display resampled prediction values
Make EOSdash display resampled prediction values where resampling fits to
the prediction value type. Use bar width that fits to 15 minutes value samples.
* chore: add a UI hints system to EOSdash
The UI hints system eases the definition of forms for configuration items.
There are also forms for items in maps and lists. These forms allow to add and delete
items to/ from maps and lists. The forms ensure that all required fields of newly
added items are filled.
* chore: Create an enum for valid optimization algorithms
* chore. Make config also provide the available energy management modes.
Used for configuration hints.
* chore: Randomize default device id in configuration
Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
This change introduces a GitHub Action to automate release creation, including
proper tagging and automatic addition of a development marker to the version.
A hash is also appended to development versions to make their state easier to
distinguish.
Tests and release documentation have been updated to reflect the revised
release workflow. Several files now retrieve the current version dynamically.
The test --full-run option has been rename to --finalize to make
clear it is to do commit finalization testing.
Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
Improve documentation generation and add tests for documentation.
Extend sphinx by todo directive.
The configuration table is now split into several tables. The test
is adapted accordingly.
There is a new test that checks the docstrings to be compliant to the
RST format as used by sphinx to create the documentation. We can not
use Markdown in docstrings. The docstrings are adapted accordingly.
An additional test checks that the documentation can be build with sphinx.
This test takes very long is only enabled in full run (aka. ci) mode.
Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>