symfluence 0.7.7__tar.gz → 0.7.9__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.
- {symfluence-0.7.7 → symfluence-0.7.9}/.gitignore +6 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/PKG-INFO +1 -1
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/binary_commands.py +87 -4
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/services/build_snippets.py +19 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/services/tool_installer.py +16 -2
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/model_configs.py +17 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/model_configs_hydrology.py +74 -6
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/hdf5_safety.py +105 -9
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/coupling/adapters/process_adapters.py +11 -14
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/base_dataset.py +19 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/processors/taudem_executor.py +11 -1
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/build_instructions.py +9 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clmparflow/runner.py +8 -1
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/distributed.py +15 -8
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/build_instructions.py +17 -19
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/calibration/parameter_manager.py +5 -5
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/config.py +13 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/preprocessor.py +62 -19
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/runner.py +8 -1
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/vic/build_instructions.py +9 -4
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/watflood/build_instructions.py +49 -13
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wrfhydro/calibration/worker.py +2 -1
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wrfhydro/runner.py +9 -1
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/core/base_plotter.py +2 -2
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/config_template_comprehensive.yaml +25 -26
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/config_template_comprehensive_nested.yaml +4 -1
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/symfluence_version.py +1 -1
- {symfluence-0.7.7 → symfluence-0.7.9}/0_config_files/README.md +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/LICENSE +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/MANIFEST.in +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/README.md +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/01_point_vertical_flux_estimation/.gitignore +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/01_point_vertical_flux_estimation/01a_point_scale_snotel.ipynb +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/01_point_vertical_flux_estimation/01b_point_scale_fluxnet.ipynb +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/01_point_vertical_flux_estimation/config_fluxnet_CA-NS7.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/01_point_vertical_flux_estimation/config_paradise.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/01_point_vertical_flux_estimation/configs/config_paradise_summa_optimization.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/01_point_vertical_flux_estimation/configs/config_paradise_swe_only.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/.gitignore +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/02a_basin_lumped.ipynb +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/02b_basin_semi_distributed.ipynb +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/02b_troute_routing.ipynb +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/02c_basin_distributed.ipynb +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/config_basin_lumped.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/config_basin_lumped_anvil.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/config_elevation_distributed.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/config_iceland_tutorial.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/config_north_america_tutorial.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/config_semi_distributed.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_bow_rdrs_optimization.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_bow_summa_optimization.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_durance_france_summa_calibration.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_ellioaar_calibration.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_ellioaar_fluxcom_et.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_ellioaar_grace_tws.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_ellioaar_profiling.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_ellioaar_summa_optimization.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_fyris_calibration.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_fyris_esa_sm.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_fyris_ismn.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_fyris_smap.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_fyris_summa_optimization.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_gulkana_dual_calibration.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_gulkana_full_pipeline.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_obrien_creek_rhessys_vmfire.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_provo_summa_optimization.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_sca_modis.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/02_watershed_modelling/configs/config_wolverine_glacier.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/03_large_domain_simulation/.gitignore +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/03_large_domain_simulation/03a_domain_regional.ipynb +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/03_large_domain_simulation/03b_domain_continental.ipynb +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/03_large_domain_simulation/config_iceland_tutorial.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/03_large_domain_simulation/config_north_america_tutorial.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/04_workshop_notebooks/04a_logan_river_workshop.ipynb +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/04_workshop_notebooks/04b_provo_river_workshop.ipynb +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/04_workshop_notebooks/04c_sagehen_creek_workshop.ipynb +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/04_workshop_notebooks/config_logan_river_lumped.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/04_workshop_notebooks/config_provo_river_lumped.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/04_workshop_notebooks/config_sagehen_creek_coupled.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/examples/README.md +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/npm/README.md +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/pyproject.toml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/__main__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/agent/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/agent/agent_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/agent/api_client.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/agent/code_analyzer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/agent/code_search.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/agent/conversation_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/agent/file_operations.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/agent/pr_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/agent/system_prompts.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/agent/test_runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/agent/tool_executor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/agent/tool_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/argument_parser.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/binary_service.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/agent_commands.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/base.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/config_commands.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/data_commands.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/doctor_commands.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/example_commands.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/fews_commands.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/gui_commands.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/job_commands.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/project_commands.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/tui_commands.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/commands/workflow_commands.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/console.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/exit_codes.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/external_tools_build_commands.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/external_tools_config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/init_presets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/preset_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/services/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/services/base.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/services/build_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/services/build_schema.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/services/initialization.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/services/job_scheduler.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/services/notebook.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/services/system_deps.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/services/system_diagnostics.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/services/tool_validator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/validators.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/wizard/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/wizard/project_wizard.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/wizard/prompts.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/wizard/questions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli/wizard/state.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/cli.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/_bootstrap.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/base_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/canonical_mappings.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/coercion.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/config_loader.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/constants.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/defaults.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/factories.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/flattening.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/introspection.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/legacy_aliases.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/mapping_validation.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/base.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/data.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/domain.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/evaluation.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/forcing.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/model_config_types.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/model_configs_integrated.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/model_configs_ml_fire.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/model_configs_routing.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/optimization.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/paths.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/root.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/state_config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/system.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/transformers.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/constants.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/exceptions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/file_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/mixins/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/mixins/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/mixins/configurable.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/mixins/file_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/mixins/logging.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/mixins/project.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/mixins/shapefile.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/mixins/timing.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/mixins/validation.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/path_resolver.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/profiling/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/profiling/io_profiler.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/profiling/platform_monitors.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/profiling/profiler_context.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/profiling/system_io_profiler.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/provenance.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/registries.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/result.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/stage_marker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/system.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/validation.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/coupling/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/coupling/adapters/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/coupling/adapters/jax_adapters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/coupling/bmi_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/coupling/diagnostics.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/coupling/graph_builder.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/coupling/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/acquisition_service.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/base.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/cleanup_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/cloud_downloader.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/aorc.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/appeears_base.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/aridity_index.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/ascat_sm.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/bedrock_depth.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/canopy_height.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/cds_datasets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/chirps.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/cmc_snow.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/cnes_grgs_tws.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/conus404.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/daymet.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/dem.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/earthaccess_base.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/em_earth.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/era5.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/era5_cds.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/era5_land.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/era5_processing.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/esa_cci_sm.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/fluxcom_et.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/fluxnet.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/fluxnet_constants.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/glacier.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/gldas_tws.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/gleam_et.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/glhymps.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/globsnow.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/glwd.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/gpm.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/grace.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/grdc.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/gssurgo.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/hrrr.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/hydrolakes.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/hydrosheds.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/ims_snow.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/ismn.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/jrc_water.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/landcover.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/merit_basins.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/merit_hydro.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/merra2.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/modis.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/modis_et.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/modis_lai.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/modis_lst.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/modis_ndvi.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/modis_sca.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/mswep.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/nex_gddp.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/nws_hydrofabric.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/openet.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/pelletier.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/polaris.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/rdrs.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/root_zone_storage.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/sentinel1_sm.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/sentinel2_snow.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/smap.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/smos_sm.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/snodas.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/soilgrids.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/soilgrids_properties.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/ssebop.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/tdx_hydro.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/viirs_snow.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/handlers/wokam.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/maf_pipeline.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/maf_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/mixins/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/mixins/chunked.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/mixins/retry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/mixins/spatial.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/observed_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/acquisition/zonal_stats_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/base_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/cache/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/cache/forcing_cache.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/data_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/model_ready/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/model_ready/attributes_builder.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/model_ready/cf_conventions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/model_ready/forcings_builder.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/model_ready/observations_builder.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/model_ready/path_resolver.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/model_ready/source_metadata.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/model_ready/store_builder.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/base.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/canopy_height.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/canswe.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/chirps.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/cmc_snow.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/cnes_grgs_tws.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/daymet.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/era5_land.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/fluxcom.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/fluxnet.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/ggmn.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/gldas_tws.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/gleam.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/gpm.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/grace.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/grdc.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/hubeau.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/ims_snow.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/jrc_water.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/lamah_ice.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/modis_et.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/modis_lai.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/modis_lst.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/modis_snow.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/modis_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/mswep.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/openet.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/sentinel1_sm.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/smhi.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/snodas.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/snotel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/soil_moisture.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/ssebop.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/usgs.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/viirs_snow.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/handlers/wsc.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/paths.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/observation/registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/path_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/attribute_processing.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/attribute_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/attribute_processors/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/attribute_processors/base.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/attribute_processors/climate.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/attribute_processors/elevation.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/attribute_processors/geology.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/attribute_processors/hydrology.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/attribute_processors/landcover.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/attribute_processors/soil.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/attribute_processors/utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/cfif/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/cfif/units.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/cfif/variables.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_alignment_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/aorc_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/carra_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/casr_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/cerra_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/conus404_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/dataset_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/daymet_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/era5_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/hrrr_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/nex_gddp_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/rdrs_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/elevation_calculator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/em_earth_integrator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/forcing_resampler.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/geospatial_statistics.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/remapping_weights.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/resampling/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/resampling/elevation_calculator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/resampling/file_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/resampling/file_validator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/resampling/geometry_validator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/resampling/point_scale_extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/resampling/shapefile_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/resampling/weight_applier.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/resampling/weight_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/shapefile_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/time_window_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/utils/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/utils/archive_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/utils/netcdf_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/utils/spatial_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/utils/variable_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data_assimilation/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data_assimilation/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data_assimilation/da_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data_assimilation/diagnostics.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data_assimilation/enkf/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data_assimilation/enkf/enkf_algorithm.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data_assimilation/enkf/ensemble_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data_assimilation/enkf/observation_operator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data_assimilation/enkf/perturbation.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data_assimilation/enkf/state_vector.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data_assimilation/output.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/analysis_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/analysis_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/base.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/benchmarking.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/evaluators/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/evaluators/base.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/evaluators/et.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/evaluators/groundwater.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/evaluators/snow.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/evaluators/soil_moisture.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/evaluators/streamflow.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/evaluators/tws.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/koopman_analysis.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/metric_transformer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/metrics.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/metrics_core.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/metrics_hydrograph.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/metrics_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/metrics_types.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/output_file_locator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/sensitivity_analysis.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/structure_ensemble.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/utilities/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/evaluation/utilities/streamflow_metrics.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/fews/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/fews/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/fews/exceptions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/fews/id_map.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/fews/netcdf_cf.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/fews/pi_diagnostics.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/fews/pi_xml.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/fews/post_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/fews/pre_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/fews/run_info.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/fews/state.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/coordinate_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/delineation.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/delineation_protocol.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/delineation_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/discretization/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/discretization/artifacts.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/discretization/attributes/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/discretization/attributes/aspect.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/discretization/attributes/combined.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/discretization/attributes/elevation.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/discretization/attributes/grus.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/discretization/attributes/landclass.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/discretization/attributes/radiation.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/discretization/attributes/soilclass.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/discretization/core.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/domain_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/exceptions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/base/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/base/base_delineator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/base/base_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/delineators/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/delineators/coastal_delineator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/delineators/distributed_delineator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/delineators/grid_delineator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/delineators/lumped_delineator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/delineators/point_delineator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/delineators/subsetter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/methods/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/methods/curvature.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/methods/drop_analysis.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/methods/multi_scale.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/methods/slope_area.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/methods/stream_threshold.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/processors/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/processors/gdal_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/processors/geometry_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/processors/graph_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/processors/stream_burner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/utils/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/utils/crs_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/utils/io_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/utils/validation.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geometry_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/raster_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/app.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/analysis_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/attributes_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/calibration_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/command_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/config_editor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/data_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/discretization_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/domain_browser.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/domain_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/forcings_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/gauge_setup_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/iterative_run_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/log_viewer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/map_view.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/model_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/progress_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/raster_layer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/results_viewer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/components/workflow_runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/data/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/data/gauge_provider.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/data/gauge_store.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/data/results_loader.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/models/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/models/config_params.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/models/workflow_state.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/server.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/utils/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/utils/config_bridge.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/utils/telemetry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/gui/utils/threading_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/main_cli.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/adapters/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/adapters/adapter_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/adapters/base_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/base/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/base/base_config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/base/base_extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/base/base_postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/base/base_preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/base/base_runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/base/protocols.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/base/standard_postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/cfuse/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/cfuse/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/cfuse/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/cfuse/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/cfuse/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/cfuse/calibration/targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/cfuse/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/cfuse/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/cfuse/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/cfuse/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/cfuse/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/cfuse/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/domain_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/forcing_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/nuopc_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clm/surface_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clmparflow/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clmparflow/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clmparflow/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clmparflow/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clmparflow/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clmparflow/calibration/targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clmparflow/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clmparflow/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clmparflow/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clmparflow/plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clmparflow/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/clmparflow/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/config/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/config/model_config_schema.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/crhm/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/crhm/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/crhm/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/crhm/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/crhm/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/crhm/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/crhm/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/crhm/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/crhm/parameters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/crhm/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/crhm/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/crhm/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/droute/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/droute/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/droute/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/droute/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/droute/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/droute/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/droute/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/droute/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/droute/mixins.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/droute/network_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/droute/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/droute/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/droute/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/execution/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/execution/model_executor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/execution/spatial_orchestrator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/execution/unified_executor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/calibration/file_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/calibration/metrics_calculation.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/calibration/model_execution.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/calibration/multi_gauge_metrics.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/calibration/parameter_application.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/calibration/parameter_regionalization.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/calibration/targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/calibration/transfer_functions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/elevation_band_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/forcing_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/forcing_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/init_preset.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/structure_analyzer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/subcatchment_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/synthetic_data_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/utilities/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/utilities/mizuroute_converter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/fuse/visualizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gnn/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gnn/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gnn/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gnn/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gnn/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gnn/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gnn/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gnn/model.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gnn/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gnn/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gnn/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gr/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gr/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gr/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gr/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gr/calibration/targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gr/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gr/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gr/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gr/forcing_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gr/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gr/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gr/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gr/visualizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gsflow/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gsflow/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gsflow/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gsflow/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gsflow/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gsflow/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gsflow/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gsflow/coupling.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gsflow/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gsflow/parameters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gsflow/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gsflow/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/gsflow/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/compare_solvers.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/hbv_ode.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/losses.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/model.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/network.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/optimizers.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/parameters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/regionalization.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/routing.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hbv/time_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hechms/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hechms/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hechms/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hechms/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hechms/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hechms/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hechms/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hechms/losses.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hechms/model.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hechms/parameters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hechms/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hechms/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hechms/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/calibration/targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/config_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/forcing_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/forcing_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/geodata_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/hype/visualizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ignacio/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ignacio/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ignacio/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ignacio/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ignacio/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ignacio/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ignacio/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ignacio/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ignacio/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ignacio/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ignacio/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/jfuse/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/jfuse/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/jfuse/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/jfuse/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/jfuse/calibration/transfer_functions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/jfuse/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/jfuse/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/jfuse/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/jfuse/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/jfuse/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/jfuse/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/lstm/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/lstm/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/lstm/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/lstm/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/lstm/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/lstm/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/lstm/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/lstm/model.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/lstm/plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/lstm/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/lstm/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/lstm/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/lstm/visualizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/forcing_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/preprocessing/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/preprocessing/class_file_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/preprocessing/config_defaults.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/preprocessing/config_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/preprocessing/data_preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/preprocessing/ddb_file_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/preprocessing/drainage_database.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/preprocessing/forcing_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/preprocessing/gru_count_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/preprocessing/meshflow_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/preprocessing/parameter_fixer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/preprocessing/run_options_builder.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mesh/visualizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mhm/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mhm/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mhm/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mhm/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mhm/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mhm/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mhm/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mhm/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mhm/parameters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mhm/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mhm/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mhm/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mixins/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mixins/dataset_builder.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mixins/model_component.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mixins/observation_loader.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mixins/output_converter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mixins/pet_calculator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mixins/slurm_execution.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mixins/spatial_mode_mixin.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mixins/subprocess_execution.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mizuroute/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mizuroute/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mizuroute/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mizuroute/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mizuroute/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mizuroute/control_writer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mizuroute/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mizuroute/mixins.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mizuroute/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mizuroute/remap_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mizuroute/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/mizuroute/topology_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/model_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/calibration/targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/coupling.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/modflow/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/calibration/targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/config_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/forcing_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/ngen/visualizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/calibration/targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/coupling.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/parflow/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/calibration/targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/coupling.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/pihm/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/prms/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/prms/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/prms/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/prms/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/prms/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/prms/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/prms/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/prms/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/prms/parameters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/prms/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/prms/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/prms/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/registries/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/registries/component_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/registries/config_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/registries/result_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/build_script.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/calibration/targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/climate_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/definitions_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/fire_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/flow_table_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/forcing_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/rhessys/worldfile_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/forcing_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/losses.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/model.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/parameters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/sacsma/sacsma.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/snow17/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/snow17/bmi.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/snow17/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/snow17/model.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/snow17/parameters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/spatial_modes.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/state/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/state/exceptions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/state/manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/state/mixin.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/state/types.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/attributes_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/calibration/optimizer_mixin.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/calibration/targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/config_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/forcing_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/forcing_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/glacier_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/init_preset.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/structure_analyzer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/summa/visualizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/basin_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/forcing_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/parameters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/routing_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/swat/subbasin_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/templates/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/templates/model_template.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/topmodel/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/topmodel/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/topmodel/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/topmodel/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/topmodel/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/topmodel/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/topmodel/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/topmodel/losses.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/topmodel/model.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/topmodel/parameters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/topmodel/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/topmodel/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/topmodel/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/troute/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/troute/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/troute/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/troute/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/troute/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/troute/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/troute/plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/troute/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/troute/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/troute/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/utilities/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/utilities/base_forcing_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/utilities/data_quality_handler.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/utilities/forcing_data_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/utilities/routing_decider.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/vic/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/vic/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/vic/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/vic/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/vic/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/vic/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/vic/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/vic/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/vic/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/vic/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/watflood/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/watflood/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/watflood/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/watflood/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/watflood/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/watflood/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/watflood/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/watflood/forcing_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/watflood/parameters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/watflood/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/watflood/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/watflood/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wflow/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wflow/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wflow/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wflow/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wflow/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wflow/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wflow/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wflow/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wflow/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wflow/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wflow/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wmfire/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wmfire/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wmfire/fire_def_generator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wmfire/fire_grid.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wmfire/fuel_calculator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wmfire/ignition.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wmfire/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wrfhydro/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wrfhydro/build_instructions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wrfhydro/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wrfhydro/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wrfhydro/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wrfhydro/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wrfhydro/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wrfhydro/parameters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wrfhydro/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/wrfhydro/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/calibration/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/calibration/optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/calibration/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/calibration/worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/extractor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/forcing_adapter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/losses.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/model.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/parameters.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/postprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/preprocessor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/models/xinanjiang/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/calibration_targets/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/calibration_targets/base.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/calibration_targets/fuse_calibration_targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/calibration_targets/gr_calibration_targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/calibration_targets/hype_calibration_targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/calibration_targets/ngen_calibration_targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/calibration_targets/rhessys_calibration_targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/calibration_targets/summa_calibration_targets.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/core/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/core/base_parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/core/directory_conventions.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/core/model_executor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/core/parameter_bounds_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/core/parameter_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/core/results_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/core/transformers.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/gradient/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/gradient/optimizers.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/gradient/schedulers.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/gradient/utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/gradient_optimization.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/parallel/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/parallel/config_updater.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/parallel/directory_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/parallel/execution_strategies/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/parallel/execution_strategies/base.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/parallel/execution_strategies/mpi.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/parallel/execution_strategies/process_pool.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/parallel/execution_strategies/sequential.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/parallel/local_scratch_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/parallel/task_distributor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/parallel/worker_environment.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/parallel_execution.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/results_tracking.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/retry_execution.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/mixins/summa_optimizer_mixin.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/model_optimizers/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/objectives/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/objectives/base.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/objectives/multivariate.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/objectives/registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimization_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimization_results_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/abc.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/adam.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/async_dds.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/base_algorithm.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/basin_hopping.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/bayesian_optimization.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/cmaes.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/config_schema.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/dds.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/de.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/dream.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/ga.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/glue.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/lbfgs.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/moead.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/nelder_mead.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/nsga2.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/pso.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/sce_ua.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/algorithms/simulated_annealing.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/base_model_optimizer.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/component_factory.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/evaluators/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/evaluators/population_evaluator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/evaluators/task_builder.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/final_evaluation/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/final_evaluation/file_manager_updater.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/final_evaluation/model_decisions_updater.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/final_evaluation/orchestrator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/final_evaluation/results_saver.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/final_evaluation/runner.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/metrics_tracker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/multiobjective/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/optimizers/multiobjective/nsga2_operators.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/parameter_managers/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/base_worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/inmemory_worker.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/summa/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/summa/dds_optimization.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/summa/error_logging.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/summa/metrics_calculation.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/summa/model_execution.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/summa/netcdf_utilities.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/summa/parameter_application.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/summa/worker_orchestration.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/summa/worker_safety.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/utilities/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/optimization/workers/utilities/streamflow_metrics.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/project/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/project/logging_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/project/manager_factory.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/project/pour_point_workflow.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/project/project_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/project/workflow_orchestrator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/config/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/config/plot_config.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/core/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/core/dataframe_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/core/decorators.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/core/plot_utils.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/core/shapefile_helper.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/orchestrators/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/orchestrators/calibration_orchestrator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/orchestrators/diagnostics_orchestrator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/orchestrators/model_output_orchestrator.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/panels/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/panels/base_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/panels/fdc_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/panels/metrics_table_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/panels/monthly_boxplot_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/panels/residual_analysis_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/panels/scatter_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/panels/timeseries_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotter_registry.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/analysis_plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/benchmark_plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/diagnostic_plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/domain_plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/forcing_comparison_plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/hydrograph_plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/model_comparison/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/model_comparison/_comparison.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/model_comparison/_core.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/model_comparison/_data_loading.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/model_comparison/_overview.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/model_comparison/plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/model_comparison_plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/model_results_plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/optimization_plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/snow_plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/plotters/workflow_diagnostic_plotter.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/processors/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/processors/data_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/processors/metrics_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/processors/spatial_processor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/reporting/reporting_manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/CLM/clm5_params.nc +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/FUSE/fm_catch.txt +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/FUSE/fuse_zConstraints_snow.txt +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/FUSE/fuse_zDecisions_902.txt +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/FUSE/fuse_zNumerix.txt +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/FUSE/input_info.txt +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/MESH/MESH_input_reservoir.txt +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/MESH/MESH_input_soil_levels.txt +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/MESH/MESH_input_streamflow.txt +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/MESH/MESH_parameters.txt +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/NOAH/parameters/GENPARM.TBL +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/NOAH/parameters/MPTABLE.TBL +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/NOAH/parameters/SOILPARM.TBL +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/SUMMA/TBL_GENPARM.TBL +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/SUMMA/TBL_MPTABLE.TBL +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/SUMMA/TBL_SOILPARM.TBL +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/SUMMA/TBL_VEGPARM.TBL +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/SUMMA/basinParamInfo.txt +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/SUMMA/localParamInfo.txt +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/SUMMA/modelDecisions.txt +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/SUMMA/outputControl.txt +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/TEST/README.md +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/mizuRoute/param.nml.default +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/troute/sample_config_MCOnly.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/base_settings/troute/sample_config_MC_with_waterbodies.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/README.md +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/camelsspat_template.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/config_quickstart_minimal.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/config_quickstart_minimal_nested.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/examples/README.md +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/examples/config_basin_notebook.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/examples/config_continental_tutorial.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/examples/config_fluxnet_notebook.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/examples/config_iceland_tutorial.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/fluxnet_template.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/config_templates/norswe_template.yaml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/manager.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/resources/system_deps.yml +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/app.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/constants.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/screens/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/screens/calibration.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/screens/command_palette.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/screens/dashboard.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/screens/help.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/screens/path_prompt.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/screens/results_compare.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/screens/run_browser.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/screens/run_detail.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/screens/slurm_monitor.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/screens/workflow_launcher.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/services/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/services/calibration_data.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/services/data_dir.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/services/run_history.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/services/slurm_service.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/services/workflow_service.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/theme.tcss +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/widgets/__init__.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/widgets/config_tree.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/widgets/domain_list.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/widgets/log_panel.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/widgets/metrics_table.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/widgets/run_summary_table.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/widgets/slurm_table.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/widgets/sparkline.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/tui/widgets/step_progress.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/symfluence/workflow_steps.py +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/tests/unit/cli/README.md +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/tools/README.md +0 -0
- {symfluence-0.7.7 → symfluence-0.7.9}/tools/npm/README.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: symfluence
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.9
|
|
4
4
|
Summary: SYnergistic Modelling Framework for Linking and Unifying Earth-system Nexii for Computational Exploration
|
|
5
5
|
Project-URL: Homepage, https://symfluence.org
|
|
6
6
|
Project-URL: Source, https://github.com/DarriEy/SYMFLUENCE
|
|
@@ -386,13 +386,96 @@ class BinaryCommands(BaseCommand):
|
|
|
386
386
|
"""
|
|
387
387
|
cmd = [str(binary_path)] + args
|
|
388
388
|
try:
|
|
389
|
-
|
|
389
|
+
# Use a pseudo-tty for stdout so C/C++ child processes use
|
|
390
|
+
# line-buffered output. Without this, completion messages
|
|
391
|
+
# (e.g. ngen's "Finished N timesteps") are lost when the
|
|
392
|
+
# process segfaults during cleanup before flushing its buffer.
|
|
393
|
+
# stderr is piped separately so we can filter noisy WARN lines.
|
|
394
|
+
pty_master_fd = None
|
|
395
|
+
stdout_target = sys.stdout
|
|
396
|
+
|
|
397
|
+
if sys.platform != "win32":
|
|
398
|
+
try:
|
|
399
|
+
import os as _os
|
|
400
|
+
import pty as _pty
|
|
401
|
+
pty_master_fd, pty_slave_fd = _pty.openpty()
|
|
402
|
+
stdout_target = pty_slave_fd
|
|
403
|
+
except (OSError, ImportError):
|
|
404
|
+
pass
|
|
405
|
+
|
|
406
|
+
proc = subprocess.Popen(
|
|
390
407
|
cmd,
|
|
391
408
|
stdin=sys.stdin,
|
|
392
|
-
stdout=
|
|
393
|
-
stderr=
|
|
409
|
+
stdout=stdout_target,
|
|
410
|
+
stderr=subprocess.PIPE,
|
|
394
411
|
)
|
|
395
|
-
|
|
412
|
+
|
|
413
|
+
# Close the slave end in the parent — only the child writes to it
|
|
414
|
+
if pty_master_fd is not None:
|
|
415
|
+
import os as _os
|
|
416
|
+
_os.close(pty_slave_fd)
|
|
417
|
+
|
|
418
|
+
# Read from pty master and forward to real stdout
|
|
419
|
+
import threading
|
|
420
|
+
|
|
421
|
+
def _forward_pty():
|
|
422
|
+
try:
|
|
423
|
+
while True:
|
|
424
|
+
data = _os.read(pty_master_fd, 8192)
|
|
425
|
+
if not data:
|
|
426
|
+
break
|
|
427
|
+
sys.stdout.buffer.write(data)
|
|
428
|
+
sys.stdout.buffer.flush()
|
|
429
|
+
except OSError:
|
|
430
|
+
pass # pty closed when child exits
|
|
431
|
+
finally:
|
|
432
|
+
_os.close(pty_master_fd)
|
|
433
|
+
|
|
434
|
+
pty_thread = threading.Thread(target=_forward_pty, daemon=True)
|
|
435
|
+
pty_thread.start()
|
|
436
|
+
|
|
437
|
+
# Stream stderr but filter out repetitive WARN lines
|
|
438
|
+
# (e.g. ngen emits thousands of unit-conversion warnings per timestep)
|
|
439
|
+
warn_count = 0
|
|
440
|
+
for raw_line in proc.stderr:
|
|
441
|
+
line = raw_line.decode("utf-8", errors="replace")
|
|
442
|
+
if line.startswith("WARN:"):
|
|
443
|
+
warn_count += 1
|
|
444
|
+
continue
|
|
445
|
+
sys.stderr.write(line)
|
|
446
|
+
sys.stderr.flush()
|
|
447
|
+
|
|
448
|
+
proc.wait()
|
|
449
|
+
|
|
450
|
+
if pty_master_fd is not None:
|
|
451
|
+
pty_thread.join(timeout=2)
|
|
452
|
+
|
|
453
|
+
if warn_count > 0:
|
|
454
|
+
sys.stderr.write(f"[suppressed {warn_count:,} repetitive warnings]\n")
|
|
455
|
+
sys.stderr.flush()
|
|
456
|
+
|
|
457
|
+
# Ensure terminal gets a clean newline after binary output
|
|
458
|
+
try:
|
|
459
|
+
sys.stdout.write("\n")
|
|
460
|
+
sys.stdout.flush()
|
|
461
|
+
except (OSError, ValueError):
|
|
462
|
+
pass
|
|
463
|
+
|
|
464
|
+
rc = proc.returncode
|
|
465
|
+
# Treat SIGSEGV during cleanup as success if the binary name
|
|
466
|
+
# is known to crash on teardown (e.g. ngen with Fortran BMI modules).
|
|
467
|
+
# Signal 11 (SIGSEGV) maps to exit code -11 or 128+11=139 or 256-11=245.
|
|
468
|
+
if rc in (-11, 139, 245):
|
|
469
|
+
tool_name = binary_path.name
|
|
470
|
+
print(
|
|
471
|
+
f"Note: {tool_name} exited with signal 11 (SIGSEGV) during cleanup. "
|
|
472
|
+
f"This is a known issue with Fortran BMI module teardown and does not "
|
|
473
|
+
f"affect simulation results.",
|
|
474
|
+
file=sys.stderr,
|
|
475
|
+
)
|
|
476
|
+
rc = 0
|
|
477
|
+
|
|
478
|
+
return rc
|
|
396
479
|
except FileNotFoundError:
|
|
397
480
|
print(f"Binary not found: {binary_path}", file=sys.stderr)
|
|
398
481
|
return ExitCode.BINARY_ERROR
|
|
@@ -1068,6 +1068,25 @@ detect_or_build_flex() {
|
|
|
1068
1068
|
return 0
|
|
1069
1069
|
fi
|
|
1070
1070
|
|
|
1071
|
+
# Prefer Homebrew flex on macOS — Apple's /usr/bin/flex calls /usr/bin/gm4
|
|
1072
|
+
# which was removed in macOS Sequoia (15.x)
|
|
1073
|
+
if [ -x /opt/homebrew/opt/flex/bin/flex ]; then
|
|
1074
|
+
echo "Found Homebrew flex: /opt/homebrew/opt/flex/bin/flex"
|
|
1075
|
+
export PATH="/opt/homebrew/opt/flex/bin:$PATH"
|
|
1076
|
+
flex --version | head -1
|
|
1077
|
+
FLEX_FOUND=true
|
|
1078
|
+
# Homebrew flex includes libfl
|
|
1079
|
+
local brew_flex_lib="/opt/homebrew/opt/flex/lib"
|
|
1080
|
+
if [ -f "$brew_flex_lib/libfl.a" ] || [ -f "$brew_flex_lib/libfl.dylib" ]; then
|
|
1081
|
+
echo "Found Homebrew libfl"
|
|
1082
|
+
LIBFL_FOUND=true
|
|
1083
|
+
export FLEX_LIB_DIR="$brew_flex_lib"
|
|
1084
|
+
export LDFLAGS="${LDFLAGS:-} -L${FLEX_LIB_DIR}"
|
|
1085
|
+
export LIBRARY_PATH="${FLEX_LIB_DIR}:${LIBRARY_PATH:-}"
|
|
1086
|
+
fi
|
|
1087
|
+
return 0
|
|
1088
|
+
fi
|
|
1089
|
+
|
|
1071
1090
|
# Check if flex binary is available in PATH
|
|
1072
1091
|
if command -v flex >/dev/null 2>&1; then
|
|
1073
1092
|
echo "Found flex: $(command -v flex)"
|
|
@@ -572,6 +572,7 @@ class ToolInstaller(BaseService):
|
|
|
572
572
|
# Check required tools
|
|
573
573
|
if tool_info.get("requires"):
|
|
574
574
|
required_tools = tool_info.get("requires", [])
|
|
575
|
+
missing_required_tool = False
|
|
575
576
|
for req_tool in required_tools:
|
|
576
577
|
req_tool_info = self.external_tools.get(req_tool, {})
|
|
577
578
|
req_tool_dir = install_base_dir / req_tool_info.get(
|
|
@@ -584,7 +585,10 @@ class ToolInstaller(BaseService):
|
|
|
584
585
|
self._console.error(error_msg)
|
|
585
586
|
installation_results["errors"].append(error_msg)
|
|
586
587
|
installation_results["failed"].append(tool_name)
|
|
587
|
-
|
|
588
|
+
missing_required_tool = True
|
|
589
|
+
break
|
|
590
|
+
if missing_required_tool:
|
|
591
|
+
continue
|
|
588
592
|
|
|
589
593
|
# Run build commands
|
|
590
594
|
if tool_info.get("build_commands"):
|
|
@@ -601,7 +605,17 @@ class ToolInstaller(BaseService):
|
|
|
601
605
|
installation_results["successful"].append(tool_name)
|
|
602
606
|
|
|
603
607
|
# Verify installation
|
|
604
|
-
self._verify_installation(tool_name, tool_info, tool_install_dir)
|
|
608
|
+
verified = self._verify_installation(tool_name, tool_info, tool_install_dir)
|
|
609
|
+
if not verified:
|
|
610
|
+
installation_results["errors"].append(
|
|
611
|
+
f"{tool_name}: installation verification failed"
|
|
612
|
+
)
|
|
613
|
+
if tool_name in installation_results["successful"]:
|
|
614
|
+
installation_results["successful"] = [
|
|
615
|
+
t for t in installation_results["successful"] if t != tool_name
|
|
616
|
+
]
|
|
617
|
+
if tool_name not in installation_results["failed"]:
|
|
618
|
+
installation_results["failed"].append(tool_name)
|
|
605
619
|
|
|
606
620
|
except subprocess.CalledProcessError as e:
|
|
607
621
|
if repository_url:
|
|
@@ -205,6 +205,23 @@ class ModelConfig(BaseModel):
|
|
|
205
205
|
if values.get(field_name) is None:
|
|
206
206
|
values[field_name] = config_cls()
|
|
207
207
|
|
|
208
|
+
# Forward deprecated ENABLE_* keys into the ngen sub-dict so
|
|
209
|
+
# NGENConfig._migrate_enable_flags can pick them up (handles flat
|
|
210
|
+
# configs where these land at the ModelConfig level).
|
|
211
|
+
_enable_keys = ('ENABLE_SLOTH', 'ENABLE_PET', 'ENABLE_NOAH', 'ENABLE_CFE')
|
|
212
|
+
found = {k: values[k] for k in _enable_keys if k in values}
|
|
213
|
+
if found:
|
|
214
|
+
ngen_dict = values.get('ngen')
|
|
215
|
+
if ngen_dict is None:
|
|
216
|
+
ngen_dict = {}
|
|
217
|
+
values['ngen'] = ngen_dict
|
|
218
|
+
if isinstance(ngen_dict, dict):
|
|
219
|
+
for k, v in found.items():
|
|
220
|
+
ngen_dict.setdefault(k, v)
|
|
221
|
+
# Remove from top level so Pydantic doesn't reject them
|
|
222
|
+
for k in found:
|
|
223
|
+
values.pop(k, None)
|
|
224
|
+
|
|
208
225
|
return values
|
|
209
226
|
|
|
210
227
|
__all__ = [
|
{symfluence-0.7.7 → symfluence-0.7.9}/symfluence/core/config/models/model_configs_hydrology.py
RENAMED
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
"""Hydrological model configuration classes."""
|
|
5
5
|
|
|
6
|
+
import warnings
|
|
6
7
|
from typing import Any, Dict, List, Literal, Optional, Union
|
|
7
8
|
|
|
8
|
-
from pydantic import BaseModel, Field
|
|
9
|
+
from pydantic import BaseModel, Field, model_validator
|
|
9
10
|
|
|
10
11
|
from .base import FROZEN_CONFIG
|
|
11
12
|
from .model_config_types import SpatialModeType
|
|
@@ -283,12 +284,79 @@ class NGENConfig(BaseModel):
|
|
|
283
284
|
alias='NGEN_PET_PARAMS_TO_CALIBRATE'
|
|
284
285
|
)
|
|
285
286
|
active_catchment_id: Optional[str] = Field(default=None, alias='NGEN_ACTIVE_CATCHMENT_ID')
|
|
286
|
-
#
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
287
|
+
# Parameter bounds overrides (per-module)
|
|
288
|
+
cfe_param_bounds: Optional[Dict[str, Any]] = Field(default=None, alias='NGEN_CFE_PARAM_BOUNDS')
|
|
289
|
+
noah_param_bounds: Optional[Dict[str, Any]] = Field(default=None, alias='NGEN_NOAH_PARAM_BOUNDS')
|
|
290
|
+
pet_param_bounds: Optional[Dict[str, Any]] = Field(default=None, alias='NGEN_PET_PARAM_BOUNDS')
|
|
291
|
+
# Module selection (replaces individual ENABLE_* flags)
|
|
292
|
+
modules_selected: str = Field(default='SLOTH,PET,CFE', alias='NGEN_MODULES_SELECTED')
|
|
291
293
|
noah_et_fallback: str = Field(default='ETRAN', alias='NGEN_NOAH_ET_FALLBACK')
|
|
294
|
+
|
|
295
|
+
@model_validator(mode='before')
|
|
296
|
+
@classmethod
|
|
297
|
+
def _migrate_enable_flags(cls, values: Any) -> Any:
|
|
298
|
+
"""Auto-migrate deprecated ENABLE_* flags to NGEN_MODULES_SELECTED."""
|
|
299
|
+
if not isinstance(values, dict):
|
|
300
|
+
return values
|
|
301
|
+
|
|
302
|
+
# Check for any legacy ENABLE_* keys
|
|
303
|
+
enable_keys = {
|
|
304
|
+
'ENABLE_SLOTH': ('SLOTH', True),
|
|
305
|
+
'ENABLE_PET': ('PET', True),
|
|
306
|
+
'ENABLE_NOAH': ('NOAH', False),
|
|
307
|
+
'ENABLE_CFE': ('CFE', True),
|
|
308
|
+
}
|
|
309
|
+
found_legacy = {k: v for k, v in enable_keys.items() if k in values}
|
|
310
|
+
|
|
311
|
+
if not found_legacy:
|
|
312
|
+
return values
|
|
313
|
+
|
|
314
|
+
# Only migrate if NGEN_MODULES_SELECTED is not already explicitly set
|
|
315
|
+
if 'NGEN_MODULES_SELECTED' in values or 'modules_selected' in values:
|
|
316
|
+
# Remove stale legacy keys so they don't cause Pydantic errors
|
|
317
|
+
for k in found_legacy:
|
|
318
|
+
values.pop(k, None)
|
|
319
|
+
return values
|
|
320
|
+
|
|
321
|
+
# Build modules list from legacy flags
|
|
322
|
+
modules = []
|
|
323
|
+
for key, (mod_name, default_on) in enable_keys.items():
|
|
324
|
+
raw = values.get(key, default_on)
|
|
325
|
+
# Handle string booleans from YAML
|
|
326
|
+
if isinstance(raw, str):
|
|
327
|
+
enabled = raw.lower() in ('true', '1', 'yes')
|
|
328
|
+
else:
|
|
329
|
+
enabled = bool(raw)
|
|
330
|
+
if enabled:
|
|
331
|
+
modules.append(mod_name)
|
|
332
|
+
|
|
333
|
+
values['NGEN_MODULES_SELECTED'] = ','.join(modules)
|
|
334
|
+
|
|
335
|
+
# Remove legacy keys
|
|
336
|
+
for k in found_legacy:
|
|
337
|
+
values.pop(k, None)
|
|
338
|
+
|
|
339
|
+
warnings.warn(
|
|
340
|
+
"ENABLE_SLOTH/ENABLE_PET/ENABLE_NOAH/ENABLE_CFE are deprecated. "
|
|
341
|
+
f"Use NGEN_MODULES_SELECTED: '{values['NGEN_MODULES_SELECTED']}' instead.",
|
|
342
|
+
DeprecationWarning,
|
|
343
|
+
stacklevel=2,
|
|
344
|
+
)
|
|
345
|
+
return values
|
|
346
|
+
|
|
347
|
+
@model_validator(mode='after')
|
|
348
|
+
def _validate_calibrate_subset(self) -> 'NGENConfig':
|
|
349
|
+
"""Ensure modules_to_calibrate is a subset of modules_selected."""
|
|
350
|
+
selected = {m.strip().upper() for m in self.modules_selected.split(',') if m.strip()}
|
|
351
|
+
calibrate = {m.strip().upper() for m in self.modules_to_calibrate.split(',') if m.strip()}
|
|
352
|
+
not_selected = calibrate - selected
|
|
353
|
+
if not_selected:
|
|
354
|
+
raise ValueError(
|
|
355
|
+
f"NGEN_MODULES_TO_CALIBRATE contains modules not in NGEN_MODULES_SELECTED: "
|
|
356
|
+
f"{not_selected}. Either add them to NGEN_MODULES_SELECTED or remove them "
|
|
357
|
+
f"from NGEN_MODULES_TO_CALIBRATE."
|
|
358
|
+
)
|
|
359
|
+
return self
|
|
292
360
|
run_troute: bool = Field(default=True, alias='NGEN_RUN_TROUTE')
|
|
293
361
|
|
|
294
362
|
|
|
@@ -28,8 +28,12 @@ Usage:
|
|
|
28
28
|
"""
|
|
29
29
|
|
|
30
30
|
import gc
|
|
31
|
+
import logging
|
|
31
32
|
import os
|
|
32
|
-
from
|
|
33
|
+
from pathlib import Path
|
|
34
|
+
from typing import Dict, Optional
|
|
35
|
+
|
|
36
|
+
logger = logging.getLogger(__name__)
|
|
33
37
|
|
|
34
38
|
# =============================================================================
|
|
35
39
|
# Environment Variable Constants
|
|
@@ -53,6 +57,12 @@ THREAD_ENV_VARS: Dict[str, str] = {
|
|
|
53
57
|
}
|
|
54
58
|
"""Environment variables to force single-threaded execution in numerical libraries."""
|
|
55
59
|
|
|
60
|
+
# Module-level flag: set to True when h5py and netCDF4 link against different
|
|
61
|
+
# libhdf5 builds. When True, the h5netcdf engine fallback in
|
|
62
|
+
# BaseDatasetHandler.open_dataset() must be skipped because importing h5py
|
|
63
|
+
# would corrupt netcdf4's HDF5 state for the rest of the process.
|
|
64
|
+
hdf5_library_conflict: bool = False
|
|
65
|
+
|
|
56
66
|
|
|
57
67
|
# =============================================================================
|
|
58
68
|
# Configuration Functions
|
|
@@ -84,22 +94,20 @@ def configure_hdf5_safety(disable_tqdm_monitor: bool = True) -> None:
|
|
|
84
94
|
else:
|
|
85
95
|
os.environ.setdefault(key, value)
|
|
86
96
|
|
|
87
|
-
# Configure xarray to minimize file caching
|
|
88
|
-
# h5netcdf is more stable than netCDF4 for concurrent access
|
|
97
|
+
# Configure xarray to minimize file caching
|
|
89
98
|
try:
|
|
90
99
|
import xarray as xr
|
|
91
100
|
xr.set_options(
|
|
92
101
|
file_cache_maxsize=1, # Minimal file cache
|
|
93
102
|
)
|
|
94
|
-
# Try to set h5netcdf as default backend if available
|
|
95
|
-
try:
|
|
96
|
-
import h5netcdf # noqa: F401
|
|
97
|
-
# h5netcdf is available, will be used when backend='h5netcdf'
|
|
98
|
-
except ImportError:
|
|
99
|
-
pass # h5netcdf not available, will fall back to netCDF4
|
|
100
103
|
except (ImportError, AttributeError):
|
|
101
104
|
pass # xarray not yet imported or doesn't support this option
|
|
102
105
|
|
|
106
|
+
# Check for conflicting HDF5 library builds (e.g. pip h5py + pip netCDF4
|
|
107
|
+
# each bundling their own libhdf5). Must run BEFORE any h5py/h5netcdf
|
|
108
|
+
# import to avoid poisoning the process.
|
|
109
|
+
_check_hdf5_library_conflict()
|
|
110
|
+
|
|
103
111
|
# Disable tqdm monitor thread to prevent segfaults
|
|
104
112
|
if disable_tqdm_monitor:
|
|
105
113
|
_disable_tqdm_monitor()
|
|
@@ -212,6 +220,94 @@ def clear_xarray_cache() -> None:
|
|
|
212
220
|
# Internal Helpers
|
|
213
221
|
# =============================================================================
|
|
214
222
|
|
|
223
|
+
def _find_bundled_libhdf5(pkg_name: str) -> Optional[Path]:
|
|
224
|
+
"""Find a bundled libhdf5 shipped inside a pip wheel for *pkg_name*.
|
|
225
|
+
|
|
226
|
+
Pip wheels for h5py and netCDF4 vendor their own private copy of
|
|
227
|
+
libhdf5 into a ``<pkg>.libs/`` (Linux) or ``<pkg>/.dylibs/``
|
|
228
|
+
(macOS) directory next to the package. Conda-installed packages
|
|
229
|
+
instead link against a single shared ``$CONDA_PREFIX/lib/libhdf5``
|
|
230
|
+
and have no bundled copy.
|
|
231
|
+
|
|
232
|
+
Returns the resolved path to the bundled libhdf5, or None if the
|
|
233
|
+
package is not installed or does not bundle its own copy.
|
|
234
|
+
"""
|
|
235
|
+
try:
|
|
236
|
+
import importlib.util
|
|
237
|
+
spec = importlib.util.find_spec(pkg_name)
|
|
238
|
+
if spec is None or spec.origin is None:
|
|
239
|
+
return None
|
|
240
|
+
pkg_dir = Path(spec.origin).parent
|
|
241
|
+
|
|
242
|
+
# Linux pip wheels: <site-packages>/<pkg>.libs/libhdf5-*.so*
|
|
243
|
+
# macOS pip wheels: <site-packages>/<pkg>/.dylibs/libhdf5*.dylib
|
|
244
|
+
search_dirs = [
|
|
245
|
+
pkg_dir.parent / f"{pkg_name}.libs", # Linux
|
|
246
|
+
pkg_dir / ".dylibs", # macOS (inside pkg)
|
|
247
|
+
]
|
|
248
|
+
# netCDF4 pip wheel uses the distribution name "netcdf4" (lowercase)
|
|
249
|
+
if pkg_name == "netCDF4":
|
|
250
|
+
search_dirs.append(pkg_dir.parent / "netcdf4.libs")
|
|
251
|
+
|
|
252
|
+
for d in search_dirs:
|
|
253
|
+
if not d.is_dir():
|
|
254
|
+
continue
|
|
255
|
+
for f in d.iterdir():
|
|
256
|
+
name = f.name.lower()
|
|
257
|
+
if 'libhdf5' in name and 'libhdf5_hl' not in name:
|
|
258
|
+
return f.resolve()
|
|
259
|
+
except Exception: # noqa: BLE001
|
|
260
|
+
pass
|
|
261
|
+
return None
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
def _check_hdf5_library_conflict() -> None:
|
|
265
|
+
"""Detect conflicting libhdf5 builds between h5py and netCDF4.
|
|
266
|
+
|
|
267
|
+
When both packages are pip-installed, each bundles its own private
|
|
268
|
+
copy of ``libhdf5`` (with different build hashes). If h5py is
|
|
269
|
+
imported first, its libhdf5 symbols shadow netCDF4's, corrupting
|
|
270
|
+
HDF5 global state and causing ``NetCDF: HDF error`` on every
|
|
271
|
+
subsequent netcdf4 operation — even reads.
|
|
272
|
+
|
|
273
|
+
This check runs at startup (before any h5py import) by looking for
|
|
274
|
+
bundled libhdf5 files in pip wheel vendor directories — no Python
|
|
275
|
+
HDF5 modules are imported.
|
|
276
|
+
|
|
277
|
+
Sets the module-level ``hdf5_library_conflict`` flag and logs a
|
|
278
|
+
warning with clear fix instructions.
|
|
279
|
+
"""
|
|
280
|
+
global hdf5_library_conflict
|
|
281
|
+
|
|
282
|
+
h5py_lib = _find_bundled_libhdf5('h5py')
|
|
283
|
+
nc4_lib = _find_bundled_libhdf5('netCDF4')
|
|
284
|
+
|
|
285
|
+
if h5py_lib is None or nc4_lib is None:
|
|
286
|
+
# At least one package doesn't bundle its own libhdf5 (likely
|
|
287
|
+
# conda-installed or not present at all). No conflict.
|
|
288
|
+
return
|
|
289
|
+
|
|
290
|
+
if h5py_lib == nc4_lib:
|
|
291
|
+
return # Same file — no conflict
|
|
292
|
+
|
|
293
|
+
hdf5_library_conflict = True
|
|
294
|
+
logger.warning(
|
|
295
|
+
"h5py and netCDF4 bundle DIFFERENT libhdf5 builds:\n"
|
|
296
|
+
" h5py → %s\n"
|
|
297
|
+
" netCDF4 → %s\n"
|
|
298
|
+
"Importing h5py will corrupt netcdf4's HDF5 state, causing "
|
|
299
|
+
"'NetCDF: HDF error' on all subsequent operations.\n"
|
|
300
|
+
"Fix: install both from the same package manager:\n"
|
|
301
|
+
" conda: pip uninstall h5py netCDF4 -y && conda install h5py netcdf4\n"
|
|
302
|
+
" pip: pip install --force-reinstall --no-binary h5py --no-binary "
|
|
303
|
+
"netCDF4 h5py netCDF4\n"
|
|
304
|
+
"The h5netcdf engine fallback will be DISABLED for this session to "
|
|
305
|
+
"prevent the conflict from being triggered.",
|
|
306
|
+
h5py_lib,
|
|
307
|
+
nc4_lib,
|
|
308
|
+
)
|
|
309
|
+
|
|
310
|
+
|
|
215
311
|
def _disable_tqdm_monitor() -> None:
|
|
216
312
|
"""Disable tqdm's background monitor thread."""
|
|
217
313
|
try:
|
|
@@ -97,10 +97,7 @@ class SUMMAProcessComponent(ProcessComponent):
|
|
|
97
97
|
return {"runoff": runoff, "soil_drainage": drainage}
|
|
98
98
|
except Exception as e: # noqa: BLE001 — must-not-raise contract
|
|
99
99
|
logger.error(f"Failed to read SUMMA outputs: {e}")
|
|
100
|
-
|
|
101
|
-
"runoff": torch.zeros(1),
|
|
102
|
-
"soil_drainage": torch.zeros(1),
|
|
103
|
-
}
|
|
100
|
+
raise RuntimeError("Failed to read SUMMA outputs") from e
|
|
104
101
|
|
|
105
102
|
|
|
106
103
|
class MizuRouteProcessComponent(ProcessComponent):
|
|
@@ -171,7 +168,7 @@ class MizuRouteProcessComponent(ProcessComponent):
|
|
|
171
168
|
return {"discharge": discharge}
|
|
172
169
|
except Exception as e: # noqa: BLE001 — must-not-raise contract
|
|
173
170
|
logger.error(f"Failed to read mizuRoute outputs: {e}")
|
|
174
|
-
|
|
171
|
+
raise RuntimeError("Failed to read mizuRoute outputs") from e
|
|
175
172
|
|
|
176
173
|
|
|
177
174
|
class ParFlowProcessComponent(ProcessComponent):
|
|
@@ -254,7 +251,7 @@ class ParFlowProcessComponent(ProcessComponent):
|
|
|
254
251
|
)}
|
|
255
252
|
except Exception as e: # noqa: BLE001 — must-not-raise contract
|
|
256
253
|
logger.error(f"Failed to read ParFlow outputs: {e}")
|
|
257
|
-
|
|
254
|
+
raise RuntimeError("Failed to read ParFlow outputs") from e
|
|
258
255
|
|
|
259
256
|
|
|
260
257
|
class MODFLOWProcessComponent(ProcessComponent):
|
|
@@ -336,7 +333,7 @@ class MODFLOWProcessComponent(ProcessComponent):
|
|
|
336
333
|
)}
|
|
337
334
|
except Exception as e: # noqa: BLE001 — must-not-raise contract
|
|
338
335
|
logger.error(f"Failed to read MODFLOW outputs: {e}")
|
|
339
|
-
|
|
336
|
+
raise RuntimeError("Failed to read MODFLOW outputs") from e
|
|
340
337
|
|
|
341
338
|
|
|
342
339
|
class MESHProcessComponent(ProcessComponent):
|
|
@@ -410,7 +407,7 @@ class MESHProcessComponent(ProcessComponent):
|
|
|
410
407
|
)}
|
|
411
408
|
except Exception as e: # noqa: BLE001 — must-not-raise contract
|
|
412
409
|
logger.error(f"Failed to read MESH outputs: {e}")
|
|
413
|
-
|
|
410
|
+
raise RuntimeError("Failed to read MESH outputs") from e
|
|
414
411
|
|
|
415
412
|
|
|
416
413
|
class TRouteProcessComponent(ProcessComponent):
|
|
@@ -485,10 +482,13 @@ class TRouteProcessComponent(ProcessComponent):
|
|
|
485
482
|
ds.close()
|
|
486
483
|
return {"discharge": discharge}
|
|
487
484
|
ds.close()
|
|
488
|
-
|
|
485
|
+
raise KeyError(
|
|
486
|
+
"No supported discharge variable found in t-route output "
|
|
487
|
+
"(expected one of flow, streamflow, discharge, q_lateral)"
|
|
488
|
+
)
|
|
489
489
|
except Exception as e: # noqa: BLE001 — must-not-raise contract
|
|
490
490
|
logger.error(f"Failed to read t-route outputs: {e}")
|
|
491
|
-
|
|
491
|
+
raise RuntimeError("Failed to read t-route outputs") from e
|
|
492
492
|
|
|
493
493
|
|
|
494
494
|
class CLMProcessComponent(ProcessComponent):
|
|
@@ -578,7 +578,4 @@ class CLMProcessComponent(ProcessComponent):
|
|
|
578
578
|
}
|
|
579
579
|
except Exception as e: # noqa: BLE001 — must-not-raise contract
|
|
580
580
|
logger.error(f"Failed to read CLM outputs: {e}")
|
|
581
|
-
|
|
582
|
-
"runoff": torch.zeros(1),
|
|
583
|
-
"evapotranspiration": torch.zeros(1),
|
|
584
|
-
}
|
|
581
|
+
raise RuntimeError("Failed to read CLM outputs") from e
|
{symfluence-0.7.7 → symfluence-0.7.9}/symfluence/data/preprocessing/dataset_handlers/base_dataset.py
RENAMED
|
@@ -481,6 +481,10 @@ class BaseDatasetHandler(ABC, ConfigMixin):
|
|
|
481
481
|
or the parallel filesystem does not support POSIX file locking),
|
|
482
482
|
retries with h5netcdf using ``lock=False``.
|
|
483
483
|
|
|
484
|
+
If a libhdf5 build conflict between h5py and netCDF4 was detected at
|
|
485
|
+
startup, the h5netcdf fallback is skipped (importing h5py would
|
|
486
|
+
corrupt the netcdf4 backend for the rest of the process).
|
|
487
|
+
|
|
484
488
|
Args:
|
|
485
489
|
path: Path to the NetCDF file
|
|
486
490
|
**kwargs: Additional arguments passed to xr.open_dataset
|
|
@@ -494,6 +498,21 @@ class BaseDatasetHandler(ABC, ConfigMixin):
|
|
|
494
498
|
msg = str(e).lower()
|
|
495
499
|
if not any(pat.lower() in msg for pat in self._HDF_ERROR_PATTERNS):
|
|
496
500
|
raise
|
|
501
|
+
|
|
502
|
+
# If h5py and netCDF4 bundle different libhdf5 builds, falling
|
|
503
|
+
# back to h5netcdf would import h5py and poison the netcdf4
|
|
504
|
+
# backend for the rest of the process. Fail fast with a
|
|
505
|
+
# clear message instead.
|
|
506
|
+
from symfluence.core.hdf5_safety import hdf5_library_conflict
|
|
507
|
+
if hdf5_library_conflict:
|
|
508
|
+
raise OSError(
|
|
509
|
+
f"netcdf4 engine failed on {Path(path).name} and the "
|
|
510
|
+
f"h5netcdf fallback is disabled because h5py and netCDF4 "
|
|
511
|
+
f"link against different libhdf5 builds. Fix: "
|
|
512
|
+
f"pip uninstall h5py netCDF4 -y && "
|
|
513
|
+
f"conda install h5py netcdf4"
|
|
514
|
+
) from e
|
|
515
|
+
|
|
497
516
|
self.logger.warning(
|
|
498
517
|
f"netcdf4 engine failed on {Path(path).name} (likely HDF5 "
|
|
499
518
|
f"library conflict or file-locking issue), retrying with "
|
{symfluence-0.7.7 → symfluence-0.7.9}/symfluence/geospatial/geofabric/processors/taudem_executor.py
RENAMED
|
@@ -92,18 +92,28 @@ class TauDEMExecutor:
|
|
|
92
92
|
Detect the best available MPI launcher.
|
|
93
93
|
|
|
94
94
|
Respects MPI_LAUNCHER config override. Otherwise uses smart detection:
|
|
95
|
+
- Checks for bundled mpirun in taudem_dir (npm dist/bin/ layout)
|
|
95
96
|
- If OpenMPI is detected, always use mpirun (OpenMPI's own launcher)
|
|
96
97
|
since srun requires SLURM PMI support that OpenMPI often lacks.
|
|
97
98
|
- If srun is available AND has PMI support, use srun (Intel MPI, MPICH).
|
|
98
99
|
- Falls back to mpirun, then None.
|
|
99
100
|
|
|
100
101
|
Returns:
|
|
101
|
-
'srun', 'mpirun', or None if no MPI launcher found
|
|
102
|
+
Path to mpirun, 'srun', 'mpirun', or None if no MPI launcher found
|
|
102
103
|
"""
|
|
103
104
|
override = self.config.get('MPI_LAUNCHER')
|
|
104
105
|
if override and shutil.which(override):
|
|
105
106
|
return override
|
|
106
107
|
|
|
108
|
+
# Check for bundled mpirun next to TauDEM tools (npm layout)
|
|
109
|
+
bundled = os.path.join(self.taudem_dir, 'mpirun')
|
|
110
|
+
if os.path.isfile(bundled) and os.access(bundled, os.X_OK):
|
|
111
|
+
self.logger.debug("Using bundled MPI launcher: %s", bundled)
|
|
112
|
+
# Set OPAL_PREFIX so OpenMPI finds its data files
|
|
113
|
+
prefix = os.path.dirname(self.taudem_dir)
|
|
114
|
+
os.environ.setdefault('OPAL_PREFIX', prefix)
|
|
115
|
+
return bundled
|
|
116
|
+
|
|
107
117
|
has_srun = shutil.which("srun") is not None
|
|
108
118
|
has_mpirun = shutil.which("mpirun") is not None
|
|
109
119
|
|
|
@@ -516,6 +516,15 @@ if [ $? -ne 0 ]; then
|
|
|
516
516
|
exit 1
|
|
517
517
|
fi
|
|
518
518
|
|
|
519
|
+
# Export NetCDF paths so PIO's CMake can find NetCDF C/Fortran libraries.
|
|
520
|
+
# CIME injects these into XML but PIO's CMakeLists.txt needs them as env vars
|
|
521
|
+
# or in CMAKE_PREFIX_PATH for find_package(NetCDF) to work.
|
|
522
|
+
if [ -n "${NETCDF_C:-}" ]; then
|
|
523
|
+
export NetCDF_C_PATH="${NETCDF_C}"
|
|
524
|
+
export CMAKE_PREFIX_PATH="${NETCDF_C}:${NETCDF_FORTRAN:-$NETCDF_C}:${CMAKE_PREFIX_PATH:-}"
|
|
525
|
+
echo "Exported NetCDF_C_PATH=$NETCDF_C for PIO CMake discovery"
|
|
526
|
+
fi
|
|
527
|
+
|
|
519
528
|
# Build (CIME case.build uses GMAKE_J for parallelism, not --parallel)
|
|
520
529
|
echo "Running case.build..."
|
|
521
530
|
NCORES=$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 2)
|
|
@@ -18,6 +18,7 @@ from typing import Optional
|
|
|
18
18
|
|
|
19
19
|
from symfluence.core.exceptions import ModelExecutionError, symfluence_error_handler
|
|
20
20
|
from symfluence.core.mixins.project import resolve_data_subdir
|
|
21
|
+
from symfluence.core.mpi_utils import find_mpirun
|
|
21
22
|
from symfluence.models.base.base_runner import BaseModelRunner
|
|
22
23
|
from symfluence.models.registry import ModelRegistry
|
|
23
24
|
|
|
@@ -140,7 +141,13 @@ class CLMParFlowRunner(BaseModelRunner):
|
|
|
140
141
|
|
|
141
142
|
num_procs = self._get_num_procs()
|
|
142
143
|
if num_procs > 1:
|
|
143
|
-
|
|
144
|
+
mpirun = find_mpirun(pf_exe)
|
|
145
|
+
if mpirun is None:
|
|
146
|
+
raise ModelExecutionError(
|
|
147
|
+
"MPI launcher (mpirun/mpiexec) not found. "
|
|
148
|
+
"Install OpenMPI or use the npm package which bundles it."
|
|
149
|
+
)
|
|
150
|
+
cmd = [mpirun, '-np', str(num_procs), str(pf_exe), runname]
|
|
144
151
|
else:
|
|
145
152
|
cmd = [str(pf_exe), runname]
|
|
146
153
|
|