Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add reduction_factor to TabulatedRatingCurve #562

Closed
wants to merge 13 commits into from
Closed
2 changes: 1 addition & 1 deletion .github/workflows/core_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
arch:
- x64
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Micromamba
uses: mamba-org/setup-micromamba@v1
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
arch:
- x64
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- uses: julia-actions/setup-julia@v1
with:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/pre-commit_auto_update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@ name: Pre-commit

on:
schedule:
# every monday morning
- cron: "0 7 * * MON"
# At 03:00 on day 1 of the month
- cron: "0 3 1 * *"
# on demand
workflow_dispatch:

jobs:
auto-update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ssh-key: ${{ secrets.SSH_PRIVATE_KEY }}
- uses: actions/setup-python@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pre-commit_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: "3.11"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/python_lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Micromamba
uses: mamba-org/setup-micromamba@v1
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/python_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
arch:
- x86
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Setup Micromamba
uses: mamba-org/setup-micromamba@v1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/qgis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
steps:

- name: Check out repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Launching docker compose
run: ./start.sh
- name: Running tests
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,36 +6,32 @@
<options>
<option name="artifactRules" value="python\ribasim_api\tests\temp =&gt; test_output.zip" />
</options>
<disabled-settings>
<setting-ref ref="RQ_436" />
</disabled-settings>
<parameters>
<param name="conda_env_path" value="%system.teamcity.build.checkoutDir%/libribasim_test_env" />
</parameters>
<build-runners>
<runner id="RUNNER_1501" name="Set up virtual environment" type="simpleRunner">
<parameters>
<param name="script.content"><![CDATA[if exist "%conda_env_path%" rd /q /s "%conda_env_path%"
call conda create --prefix "%conda_env_path%" python=3.10]]></param>
<param name="teamcity.build.workingDir" value="imod_coupler" />
call conda env create --file environment.yml -p "%conda_env_path%"]]></param>
<param name="teamcity.step.mode" value="default" />
<param name="use.custom.script" value="true" />
</parameters>
</runner>
<runner id="RUNNER_1502" name="Install Python packages" type="simpleRunner">
<parameters>
<param name="script.content"><![CDATA[call conda activate "%conda_env_path%"
call pip install --editable "python/ribasim"
call pip install --editable "python/ribasim_testmodels"
call pip install --editable "python/ribasim_api[tests]"]]></param>
pip install "python/ribasim"
pip install "python/ribasim_testmodels"
pip install "python/ribasim_api"]]></param>
<param name="teamcity.step.mode" value="default" />
<param name="use.custom.script" value="true" />
</parameters>
</runner>
<runner id="RUNNER_1503" name="Run tests" type="simpleRunner">
<parameters>
<param name="script.content"><![CDATA[call conda activate "%conda_env_path%"
call pytest tests --basetemp=tests/temp --junitxml="report.xml"]]></param>
pytest tests --basetemp=tests/temp --junitxml="report.xml"]]></param>
<param name="teamcity.build.workingDir" value="python/ribasim_api" />
<param name="teamcity.step.mode" value="default" />
<param name="use.custom.script" value="true" />
Expand All @@ -46,8 +42,7 @@ call pytest tests --basetemp=tests/temp --junitxml="report.xml"]]></param>
<vcs-entry-ref root-id="Ribasim_Ribasim_Ribasim" />
</vcs-settings>
<requirements>
<equals id="RQ_436" name="teamcity.agent.jvm.os.name" value="Windows 10" />
<does-not-equal id="RQ_96" name="system.agent.name" value="c-teamcity0358" />
<equals id="RQ_315" name="env.OS" value="Windows_NT" />
</requirements>
<build-triggers>
<build-trigger id="TRIGGER_64" type="buildDependencyTrigger">
Expand Down Expand Up @@ -78,7 +73,7 @@ call pytest tests --basetemp=tests/temp --junitxml="report.xml"]]></param>
</build-extensions>
<artifact-dependencies>
<dependency id="ARTIFACT_DEPENDENCY_570" sourceBuildTypeId="Ribasim_RibasimJl_BuildLibribasimWindows" cleanDestination="true">
<revisionRule name="lastSuccessful" revision="latest.lastSuccessful" />
<revisionRule name="lastSuccessful" revision="latest.lastSuccessful" branch="+:&lt;default&gt;&#xD;&#xA;+:ref" />
<artifact sourcePath="libribasim.zip!** =&gt; build/create_binaries/libribasim&#xD;&#xA;" />
</dependency>
</artifact-dependencies>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<build-type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uuid="d5e2515e-f7f0-4248-9df0-928bb0db1362" paused="true" xsi:noNamespaceSchemaLocation="https://www.jetbrains.com/teamcity/schemas/2021.1/project-config.xsd">
<name>Test ribasim_cli - Windows</name>
<description />
<settings>
<options>
<option name="artifactRules" value="build\ribasim_cli\tests\temp =&gt; test_output.zip" />
</options>
<parameters>
<param name="conda_env_path" value="%system.teamcity.build.checkoutDir%/ribasim_cli_test_env" />
</parameters>
<build-runners>
<runner id="RUNNER_1501" name="Set up virtual environment" type="simpleRunner">
<parameters>
<param name="script.content"><![CDATA[if exist "%conda_env_path%" rd /q /s "%conda_env_path%"
call conda env create --file environment.yml -p "%conda_env_path%"]]></param>
<param name="teamcity.step.mode" value="default" />
<param name="use.custom.script" value="true" />
</parameters>
</runner>
<runner id="RUNNER_1502" name="Install Python packages" type="simpleRunner">
<parameters>
<param name="script.content"><![CDATA[call conda activate "%conda_env_path%"
pip install --no-deps "python/ribasim"
pip install --no-deps "python/ribasim_testmodels"]]></param>
<param name="teamcity.step.mode" value="default" />
<param name="use.custom.script" value="true" />
</parameters>
</runner>
<runner id="RUNNER_1503" name="Run tests" type="simpleRunner">
<parameters>
<param name="script.content"><![CDATA[call conda activate "%conda_env_path%"
pytest tests --basetemp=tests/temp --junitxml="report.xml"]]></param>
<param name="teamcity.build.workingDir" value="build/ribasim_cli" />
<param name="teamcity.step.mode" value="default" />
<param name="use.custom.script" value="true" />
</parameters>
</runner>
</build-runners>
<vcs-settings>
<vcs-entry-ref root-id="Ribasim_Ribasim_Ribasim" />
</vcs-settings>
<requirements>
<equals id="RQ_310" name="env.OS" value="Windows_NT" />
</requirements>
<build-triggers>
<build-trigger id="TRIGGER_64" type="buildDependencyTrigger">
<parameters>
<param name="afterSuccessfulBuildOnly" value="true" />
<param name="branchFilter" value="+:&lt;default&gt;" />
<param name="dependsOn" value="BuildRibasimCliWindows" />
</parameters>
</build-trigger>
</build-triggers>
<build-extensions>
<extension id="BUILD_EXT_142" type="commit-status-publisher">
<parameters>
<param name="github_authentication_type" value="token" />
<param name="github_host" value="https://api.github.com" />
<param name="publisherId" value="githubStatusPublisher" />
<param name="secure:github_access_token" value="credentialsJSON:71420214-373c-4ccd-ba32-2ea886843f62" />
<param name="vcsRootId" value="Ribasim_Ribasim_Ribasim" />
</parameters>
</extension>
<extension id="BUILD_EXT_145" type="xml-report-plugin">
<parameters>
<param name="xmlReportParsing.reportDirs" value="build/ribasim_cli/report.xml" />
<param name="xmlReportParsing.reportType" value="junit" />
<param name="xmlReportParsing.verboseOutput" value="true" />
</parameters>
</extension>
</build-extensions>
<artifact-dependencies>
<dependency id="ARTIFACT_DEPENDENCY_570" sourceBuildTypeId="BuildRibasimCliWindows" cleanDestination="true">
<revisionRule name="lastSuccessful" revision="latest.lastSuccessful" />
<artifact sourcePath="ribasim_cli.zip!** =&gt; build/create_binaries/ribasim_cli&#xD;&#xA;" />
</dependency>
</artifact-dependencies>
<cleanup />
</settings>
</build-type>

4 changes: 2 additions & 2 deletions build/libribasim/Manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -855,10 +855,10 @@ uuid = "ae029012-a4dd-5104-9daa-d747884805df"
version = "1.3.0"

[[deps.Ribasim]]
deps = ["Arrow", "BasicModelInterface", "CodecLz4", "CodecZstd", "ComponentArrays", "Configurations", "DBInterface", "DataInterpolations", "DataStructures", "Dates", "Dictionaries", "DiffEqCallbacks", "FiniteDiff", "Graphs", "IterTools", "Legolas", "Logging", "LoggingExtras", "OrdinaryDiffEq", "SQLite", "SciMLBase", "SparseArrays", "StructArrays", "Tables", "TerminalLoggers", "TimerOutputs", "TranscodingStreams"]
deps = ["Arrow", "BasicModelInterface", "CodecLz4", "CodecZstd", "ComponentArrays", "Configurations", "DBInterface", "DataInterpolations", "DataStructures", "Dates", "Dictionaries", "DiffEqCallbacks", "FiniteDiff", "ForwardDiff", "Graphs", "IterTools", "Legolas", "Logging", "LoggingExtras", "OrdinaryDiffEq", "PreallocationTools", "SQLite", "SciMLBase", "SparseArrays", "StructArrays", "Tables", "TerminalLoggers", "TimerOutputs", "TranscodingStreams"]
path = "../../core"
uuid = "aac5e3d9-0b8f-4d4f-8241-b1a7a9632635"
version = "0.1.0"
version = "0.2.0"

[[deps.RuntimeGeneratedFunctions]]
deps = ["ExprTools", "SHA", "Serialization"]
Expand Down
4 changes: 2 additions & 2 deletions build/ribasim_cli/Manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -855,10 +855,10 @@ uuid = "ae029012-a4dd-5104-9daa-d747884805df"
version = "1.3.0"

[[deps.Ribasim]]
deps = ["Arrow", "BasicModelInterface", "CodecLz4", "CodecZstd", "ComponentArrays", "Configurations", "DBInterface", "DataInterpolations", "DataStructures", "Dates", "Dictionaries", "DiffEqCallbacks", "FiniteDiff", "Graphs", "IterTools", "Legolas", "Logging", "LoggingExtras", "OrdinaryDiffEq", "SQLite", "SciMLBase", "SparseArrays", "StructArrays", "Tables", "TerminalLoggers", "TimerOutputs", "TranscodingStreams"]
deps = ["Arrow", "BasicModelInterface", "CodecLz4", "CodecZstd", "ComponentArrays", "Configurations", "DBInterface", "DataInterpolations", "DataStructures", "Dates", "Dictionaries", "DiffEqCallbacks", "FiniteDiff", "ForwardDiff", "Graphs", "IterTools", "Legolas", "Logging", "LoggingExtras", "OrdinaryDiffEq", "PreallocationTools", "SQLite", "SciMLBase", "SparseArrays", "StructArrays", "Tables", "TerminalLoggers", "TimerOutputs", "TranscodingStreams"]
path = "../../core"
uuid = "aac5e3d9-0b8f-4d4f-8241-b1a7a9632635"
version = "0.1.0"
version = "0.2.0"

[[deps.RuntimeGeneratedFunctions]]
deps = ["ExprTools", "SHA", "Serialization"]
Expand Down
31 changes: 31 additions & 0 deletions build/ribasim_cli/tests/test_models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import subprocess
from pathlib import Path

import pytest
import ribasim
import ribasim_testmodels


@pytest.mark.parametrize(
"model_constructor",
map(ribasim_testmodels.__dict__.get, ribasim_testmodels.__all__),
)
def test_ribasim_cli(model_constructor, tmp_path):
model = model_constructor()
assert isinstance(model, ribasim.Model)
model.write(tmp_path)

executable = (
Path(__file__).parents[2]
/ "create_binaries"
/ "ribasim_cli"
/ "bin"
/ "ribasim.exe"
)
config_file = str(tmp_path / f"{model.modelname}.toml")
result = subprocess.run([executable, config_file])

if model.modelname.startswith("invalid"):
assert result.returncode != 0
else:
assert result.returncode == 0
6 changes: 5 additions & 1 deletion core/Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "Ribasim"
uuid = "aac5e3d9-0b8f-4d4f-8241-b1a7a9632635"
authors = ["Deltares and contributors"]
version = "0.1.0"
version = "0.2.0"

[deps]
Arrow = "69666777-d1a9-59fb-9406-91d4454c9d45"
Expand All @@ -17,12 +17,14 @@ Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
Dictionaries = "85a47980-9c8c-11e8-2b9f-f7ca1fa99fb4"
DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def"
FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41"
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
IterTools = "c8e1da08-722c-5040-9ed9-7db0dc04731e"
Legolas = "741b9549-f6ed-4911-9fbf-4a1c0c97f0cd"
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
LoggingExtras = "e6f89c97-d47a-5376-807f-9c37f3926c36"
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
PreallocationTools = "d236fae5-4411-538c-8e31-a6e3d9e00b46"
SQLite = "0aa819cd-b072-5ff4-a722-6bc24af294d9"
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
Expand All @@ -45,11 +47,13 @@ DataStructures = "0.18"
Dictionaries = "0.3.25"
DiffEqCallbacks = "2.29.1"
FiniteDiff = "2.21"
ForwardDiff = "0.10"
Graphs = "1.6"
IterTools = "1.4"
Legolas = "0.5"
LoggingExtras = "1"
OrdinaryDiffEq = "6.7"
PreallocationTools = "0.4"
SQLite = "1.5.1"
SciMLBase = "1.60"
StructArrays = "0.6.13"
Expand Down
5 changes: 3 additions & 2 deletions core/src/Ribasim.jl
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@ using ComponentArrays: ComponentVector
using DataInterpolations: LinearInterpolation, derivative
using Dates
using DBInterface: execute, prepare
using Dictionaries: Indices, Dictionary, gettoken, gettokenvalue, dictionary
using Dictionaries: Indices, Dictionary, gettoken, dictionary
using ForwardDiff: pickchunksize
using DiffEqCallbacks
using Graphs: DiGraph, add_edge!, adjacency_matrix, inneighbors, outneighbors
using Legolas: Legolas, @schema, @version, validate, SchemaVersion, declared
using Logging: current_logger, min_enabled_level, with_logger
using LoggingExtras: EarlyFilteredLogger, LevelOverrideLogger
using OrdinaryDiffEq
using PreallocationTools: DiffCache, FixedSizeDiffCache, get_tmp
using SciMLBase
using SparseArrays
using SQLite: SQLite, DB, Query, esc_id
Expand All @@ -32,7 +34,6 @@ TimerOutputs.complement!()

include("validation.jl")
include("solve.jl")
include("jac.jl")
include("config.jl")
using .config
include("utils.jl")
Expand Down
Loading