holmes-rs 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. holmes_rs-0.3.0/CHANGELOG.md +43 -0
  2. holmes_rs-0.3.0/Cargo.lock +723 -0
  3. holmes_rs-0.3.0/Cargo.toml +45 -0
  4. holmes_rs-0.3.0/LICENSE +7 -0
  5. holmes_rs-0.3.0/PKG-INFO +310 -0
  6. holmes_rs-0.3.0/README.md +289 -0
  7. holmes_rs-0.3.0/pyproject.toml +34 -0
  8. holmes_rs-0.3.0/python/holmes_rs/__init__.py +23 -0
  9. holmes_rs-0.3.0/python/holmes_rs/__init__.pyi +30 -0
  10. holmes_rs-0.3.0/python/holmes_rs/calibration/__init__.pyi +5 -0
  11. holmes_rs-0.3.0/python/holmes_rs/calibration/sce.pyi +47 -0
  12. holmes_rs-0.3.0/python/holmes_rs/hydro/__init__.pyi +7 -0
  13. holmes_rs-0.3.0/python/holmes_rs/hydro/bucket.pyi +12 -0
  14. holmes_rs-0.3.0/python/holmes_rs/hydro/cequeau.pyi +12 -0
  15. holmes_rs-0.3.0/python/holmes_rs/hydro/gr4j.pyi +12 -0
  16. holmes_rs-0.3.0/python/holmes_rs/metrics.pyi +15 -0
  17. holmes_rs-0.3.0/python/holmes_rs/pet/__init__.pyi +5 -0
  18. holmes_rs-0.3.0/python/holmes_rs/pet/oudin.pyi +8 -0
  19. holmes_rs-0.3.0/python/holmes_rs/snow/__init__.pyi +5 -0
  20. holmes_rs-0.3.0/python/holmes_rs/snow/cemaneige.pyi +14 -0
  21. holmes_rs-0.3.0/rustfmt.toml +2 -0
  22. holmes_rs-0.3.0/src/calibration/mod.rs +17 -0
  23. holmes_rs-0.3.0/src/calibration/sce.rs +909 -0
  24. holmes_rs-0.3.0/src/calibration/utils.rs +184 -0
  25. holmes_rs-0.3.0/src/errors.rs +100 -0
  26. holmes_rs-0.3.0/src/hydro/bucket.rs +189 -0
  27. holmes_rs-0.3.0/src/hydro/cequeau.rs +216 -0
  28. holmes_rs-0.3.0/src/hydro/gr4j.rs +252 -0
  29. holmes_rs-0.3.0/src/hydro/mod.rs +28 -0
  30. holmes_rs-0.3.0/src/hydro/utils.rs +151 -0
  31. holmes_rs-0.3.0/src/lib.rs +30 -0
  32. holmes_rs-0.3.0/src/metrics.rs +292 -0
  33. holmes_rs-0.3.0/src/pet/mod.rs +13 -0
  34. holmes_rs-0.3.0/src/pet/oudin.rs +68 -0
  35. holmes_rs-0.3.0/src/pet/utils.rs +148 -0
  36. holmes_rs-0.3.0/src/snow/cemaneige.rs +235 -0
  37. holmes_rs-0.3.0/src/snow/mod.rs +22 -0
  38. holmes_rs-0.3.0/src/snow/utils.rs +208 -0
  39. holmes_rs-0.3.0/src/utils.rs +45 -0
  40. holmes_rs-0.3.0/tests/common/fixtures.rs +75 -0
  41. holmes_rs-0.3.0/tests/common/helpers.rs +123 -0
  42. holmes_rs-0.3.0/tests/common/mod.rs +2 -0
  43. holmes_rs-0.3.0/tests/fixtures/README.md +29 -0
  44. holmes_rs-0.3.0/tests/fixtures/calibration_scenario.json +6 -0
  45. holmes_rs-0.3.0/tests/fixtures/observations_constant.csv +11 -0
  46. holmes_rs-0.3.0/tests/fixtures/observations_normal.csv +32 -0
  47. holmes_rs-0.3.0/tests/integration/calibration_workflow.rs +692 -0
  48. holmes_rs-0.3.0/tests/integration/full_simulation.rs +518 -0
  49. holmes_rs-0.3.0/tests/integration.rs +12 -0
  50. holmes_rs-0.3.0/tests/python_integration/README.md +50 -0
  51. holmes_rs-0.3.0/tests/python_integration/conftest.py +52 -0
  52. holmes_rs-0.3.0/tests/python_integration/test_calibration.py +652 -0
  53. holmes_rs-0.3.0/tests/python_integration/test_hydro.py +433 -0
  54. holmes_rs-0.3.0/tests/python_integration/test_metrics.py +178 -0
  55. holmes_rs-0.3.0/tests/python_integration/test_pet.py +160 -0
  56. holmes_rs-0.3.0/tests/python_integration/test_snow.py +286 -0
  57. holmes_rs-0.3.0/tests/unit/calibration/mod.rs +2 -0
  58. holmes_rs-0.3.0/tests/unit/calibration/sce_tests.rs +1224 -0
  59. holmes_rs-0.3.0/tests/unit/calibration/utils_tests.rs +392 -0
  60. holmes_rs-0.3.0/tests/unit/hydro/bucket_tests.rs +496 -0
  61. holmes_rs-0.3.0/tests/unit/hydro/cequeau_tests.rs +671 -0
  62. holmes_rs-0.3.0/tests/unit/hydro/gr4j_tests.rs +564 -0
  63. holmes_rs-0.3.0/tests/unit/hydro/mod.rs +3 -0
  64. holmes_rs-0.3.0/tests/unit/metrics_tests.rs +514 -0
  65. holmes_rs-0.3.0/tests/unit/pet/mod.rs +1 -0
  66. holmes_rs-0.3.0/tests/unit/pet/oudin_tests.rs +514 -0
  67. holmes_rs-0.3.0/tests/unit/snow/cemaneige_tests.rs +1201 -0
  68. holmes_rs-0.3.0/tests/unit/snow/mod.rs +1 -0
  69. holmes_rs-0.3.0/tests/unit.rs +21 -0
@@ -0,0 +1,43 @@
1
+ # Changelog
2
+
3
+ All notable changes to the holmes-rs Rust extension will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.3.0] - 2026-01-31
9
+
10
+ ### Added
11
+ - CEQUEAU hydrological model (`hydro::cequeau`) with 9 parameters, surface/groundwater routing, and unit hydrograph delay
12
+ - Python bindings and type stubs for the CEQUEAU module (`init`, `simulate`, `param_names`)
13
+ - `param_descriptions` constant for all hydro models (GR4J, bucket, CEQUEAU) with human-readable parameter descriptions, exposed via Python bindings and type stubs
14
+
15
+ ### Changed
16
+ - Renamed bucket model parameters from descriptive names (`c_soil`, `alpha`, `k_r`, `delta`, `beta`, `k_t`) to generic names (`x1`–`x6`), matching the convention used by GR4J and CEQUEAU
17
+ - Simplified `WrongModel` error messages to remove hardcoded model lists
18
+
19
+ ## [0.2.3] - 2026-01-24
20
+
21
+ ### Added
22
+ - `warmup_steps` parameter to `Sce::init()` and `Sce::step()` methods
23
+ - Allows excluding initial warmup period from objective function calculations
24
+ - Ensures metrics are computed only on the user-requested evaluation period
25
+
26
+ ## [0.2.2] - 2026-01-17
27
+
28
+ ### Changed
29
+ - Made snow model parameters (`temperature`, `elevation_bands`, `median_elevation`) optional in SCE calibration API
30
+ - Updated `Sce::init()` and `Sce::step()` to accept `Option` types for snow-related parameters
31
+ - Calibration without snow model no longer requires temperature or elevation data
32
+
33
+ ### Added
34
+ - `MissingSnowParams` error variant to `CalibrationError` for clearer error handling when snow model is configured but required parameters are missing
35
+
36
+ ## [0.2.1] - 2026-01-11
37
+
38
+ ### Added
39
+ - Anti-fragility improvements for more robust error handling and recovery
40
+ - Comprehensive README with usage examples, model documentation, and API reference
41
+ - MIT LICENSE file
42
+ - Package metadata in pyproject.toml (authors, license, repository URLs)
43
+ - Exception type stubs (`HolmesError`, `HolmesNumericalError`, `HolmesValidationError`) in type hints