From 1b56e94696bcaa769b70ef0e817134b09a86b23f Mon Sep 17 00:00:00 2001 From: Zeitsperre <10819524+Zeitsperre@users.noreply.github.com> Date: Wed, 9 Oct 2024 16:06:04 -0400 Subject: [PATCH 1/9] add svg converter --- docs/conf.py | 3 ++- environment-rtd.yml | 2 +- pyproject.toml | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 4b0214a2..a34ae1f9 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -47,6 +47,7 @@ "sphinx_click", "sphinx_codeautolink", "sphinx_copybutton", + "sphinxcontrib.cairosvgconverter", # "sphinxcontrib.autodoc_pydantic", # FIXME: Does not seem to be compatible with RavenPy codebase. ] @@ -126,7 +127,7 @@ # The suffix(es) of source filenames. # You can specify multiple suffix as a dictionary of suffix: filetype -source_suffix = {'.rst': 'restructuredtext'} +source_suffix = {".rst": "restructuredtext"} # The master toctree document. master_doc = "index" diff --git a/environment-rtd.yml b/environment-rtd.yml index 4bc8d07b..19627f54 100644 --- a/environment-rtd.yml +++ b/environment-rtd.yml @@ -33,7 +33,7 @@ dependencies: - sphinx-codeautolink - sphinx-copybutton - sphinx-rtd-theme >=1.0 - - sphinxcontrib-napoleon + - sphinxcontrib-svg2pdfconverter - typing_extensions - wheel # - xarray # mocked diff --git a/pyproject.toml b/pyproject.toml index c98480c3..354ef819 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -123,6 +123,7 @@ docs = [ "sphinx-codeautolink", "sphinx-copybutton", "sphinx-rtd-theme >=1.0", + "sphinxcontrib-svg2pdfconverter >=1.2.3", "xesmf" ] gis = [ From 16d0bc7a19ea4f6293af0d03be507ad380637d61 Mon Sep 17 00:00:00 2001 From: Zeitsperre <10819524+Zeitsperre@users.noreply.github.com> Date: Wed, 9 Oct 2024 17:04:46 -0400 Subject: [PATCH 2/9] add cairosvg --- environment-rtd.yml | 1 + pyproject.toml | 1 + 2 files changed, 2 insertions(+) diff --git a/environment-rtd.yml b/environment-rtd.yml index 19627f54..0982b69c 100644 --- a/environment-rtd.yml +++ b/environment-rtd.yml @@ -6,6 +6,7 @@ dependencies: - python >=3.9,<3.10 # fixed to reduce solver time - raven-hydro >=0.3.1,<1.0 - autodoc-pydantic + - cairosvg - click >=8.0.0 # - clisops # mocked - gdal >=3.1 diff --git a/pyproject.toml b/pyproject.toml index 354ef819..fd0131da 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -95,6 +95,7 @@ dev = [ docs = [ "autodoc-pydantic", "birdhouse-birdy", + "cairosvg", "cartopy", "clisops", "gcsfs", From 334af976c07ebfb875a49b5303143cb8469d8740 Mon Sep 17 00:00:00 2001 From: Trevor James Smith <10819524+Zeitsperre@users.noreply.github.com> Date: Thu, 10 Oct 2024 11:06:07 -0400 Subject: [PATCH 3/9] try enabling latex element --- docs/conf.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index a34ae1f9..638c33fa 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -209,16 +209,16 @@ latex_elements = { # The paper size ('letterpaper' or 'a4paper'). # - # 'papersize': 'letterpaper', + 'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). # - # 'pointsize': '10pt', + 'pointsize': '10pt', # Additional stuff for the LaTeX preamble. # - # 'preamble': '', + 'preamble': '', # Latex figure (float) alignment # - # 'figure_align': 'htbp', + 'figure_align': 'htbp', } # Grouping the document tree into LaTeX files. List of tuples From 6cf6e0c45f65a8ad75428b2b6505fca242f88fa1 Mon Sep 17 00:00:00 2001 From: Trevor James Smith <10819524+Zeitsperre@users.noreply.github.com> Date: Thu, 10 Oct 2024 11:31:07 -0400 Subject: [PATCH 4/9] update description, bump python version --- docs/conf.py | 2 +- environment-rtd.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 638c33fa..42f4f4b6 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -246,7 +246,7 @@ "RavenPy Documentation", author, "ravenpy", - "One line description of project.", + "A Python wrapper to setup and run the hydrologic modelling framework Raven.", "Miscellaneous", ), ] diff --git a/environment-rtd.yml b/environment-rtd.yml index 0982b69c..8aac010c 100644 --- a/environment-rtd.yml +++ b/environment-rtd.yml @@ -3,7 +3,7 @@ channels: - conda-forge - defaults dependencies: - - python >=3.9,<3.10 # fixed to reduce solver time + - python >=3.10,<3.11 # fixed to reduce solver time - raven-hydro >=0.3.1,<1.0 - autodoc-pydantic - cairosvg From 7d7b36464a3e50751e860e914e10cd757f57aa1b Mon Sep 17 00:00:00 2001 From: Trevor James Smith <10819524+Zeitsperre@users.noreply.github.com> Date: Thu, 10 Oct 2024 12:26:37 -0400 Subject: [PATCH 5/9] try making the badge table only render for HTML --- README.rst | 24 +++++++++++++----------- docs/Makefile | 7 ++++--- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/README.rst b/README.rst index 0d80fde6..0cdacd54 100644 --- a/README.rst +++ b/README.rst @@ -2,17 +2,19 @@ RavenPy ======= -+----------------------------+-----------------------------------------------------+ -| Versions | |pypi| |versions| | -+----------------------------+-----------------------------------------------------+ -| Documentation and Support | |docs| | -+----------------------------+-----------------------------------------------------+ -| Open Source | |license| |ossf| | -+----------------------------+-----------------------------------------------------+ -| Coding Standards | |black| |ruff| |pre-commit| | -+----------------------------+-----------------------------------------------------+ -| Development Status | |status| |build| |coveralls| | -+----------------------------+-----------------------------------------------------+ +.. only:: not latex + + +----------------------------+-----------------------------------------------------+ + | Versions | |pypi| |versions| | + +----------------------------+-----------------------------------------------------+ + | Documentation and Support | |docs| | + +----------------------------+-----------------------------------------------------+ + | Open Source | |license| |ossf| | + +----------------------------+-----------------------------------------------------+ + | Coding Standards | |black| |ruff| |pre-commit| | + +----------------------------+-----------------------------------------------------+ + | Development Status | |status| |build| |coveralls| | + +----------------------------+-----------------------------------------------------+ A Python wrapper to setup and run the hydrologic modelling framework Raven_. diff --git a/docs/Makefile b/docs/Makefile index 3edd182b..24cda968 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -1,9 +1,10 @@ # Minimal makefile for Sphinx documentation # -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = python -msphinx +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build SPHINXPROJ = ravenpy SOURCEDIR = . BUILDDIR = _build From f3422ebcbbf90a464c3fdc2e803bb8cfb643ce31 Mon Sep 17 00:00:00 2001 From: Trevor James Smith <10819524+Zeitsperre@users.noreply.github.com> Date: Thu, 10 Oct 2024 12:31:38 -0400 Subject: [PATCH 6/9] try another approach --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 0cdacd54..a3172f73 100644 --- a/README.rst +++ b/README.rst @@ -2,7 +2,7 @@ RavenPy ======= -.. only:: not latex +.. raw:: html +----------------------------+-----------------------------------------------------+ | Versions | |pypi| |versions| | From 50ca0360f09e21cebdd9fd14e673da698ff859db Mon Sep 17 00:00:00 2001 From: Trevor James Smith <10819524+Zeitsperre@users.noreply.github.com> Date: Thu, 10 Oct 2024 12:52:46 -0400 Subject: [PATCH 7/9] Add a workaround --- README.rst | 25 ++++++----- docs/conf.py | 24 +++++++++++ docs/readme.rst | 107 +++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 142 insertions(+), 14 deletions(-) diff --git a/README.rst b/README.rst index a3172f73..c57818f0 100644 --- a/README.rst +++ b/README.rst @@ -2,19 +2,18 @@ RavenPy ======= -.. raw:: html - - +----------------------------+-----------------------------------------------------+ - | Versions | |pypi| |versions| | - +----------------------------+-----------------------------------------------------+ - | Documentation and Support | |docs| | - +----------------------------+-----------------------------------------------------+ - | Open Source | |license| |ossf| | - +----------------------------+-----------------------------------------------------+ - | Coding Standards | |black| |ruff| |pre-commit| | - +----------------------------+-----------------------------------------------------+ - | Development Status | |status| |build| |coveralls| | - +----------------------------+-----------------------------------------------------+ ++----------------------------+-----------------------------------------------------+ +| Versions | |pypi| |versions| | ++----------------------------+-----------------------------------------------------+ +| Documentation and Support | |docs| | ++----------------------------+-----------------------------------------------------+ +| Open Source | |license| |ossf| | ++----------------------------+-----------------------------------------------------+ +| Coding Standards | |black| |ruff| |pre-commit| | ++----------------------------+-----------------------------------------------------+ +| Development Status | |status| |build| |coveralls| | ++----------------------------+-----------------------------------------------------+ + A Python wrapper to setup and run the hydrologic modelling framework Raven_. diff --git a/docs/conf.py b/docs/conf.py index 42f4f4b6..21ed4871 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -20,11 +20,35 @@ import os import sys from datetime import date +from pathlib import Path sys.path.insert(0, os.path.abspath("..")) import ravenpy # noqa: E402 +# -- Workarounds ------------------------------------------------------ + +def rebuild_readme(): + """Rebuild the readme.rst file from the README.md file. + + This is a workaround to remove the MarkDown table found in the README.rst + when building the docs specifically for latex output. + """ + + with Path("../README.rst").open(encoding="utf-8") as f: + readme = f.read() + + # Remove the badge table + readme = readme.replace("=======\nRavenPy\n=======", "=======\nRavenPy\n=======\n\n.. only:: not latex") + readme = readme.replace("\n+-", "\n +-") + readme = readme.replace("\n|", "\n |") + + with Path("readme.rst").open("w", encoding="utf-8") as f: + f.write(readme) + +rebuild_readme() + + # -- General configuration --------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. diff --git a/docs/readme.rst b/docs/readme.rst index 72a33558..1df38f06 100644 --- a/docs/readme.rst +++ b/docs/readme.rst @@ -1 +1,106 @@ -.. include:: ../README.rst +======= +RavenPy +======= + +.. only:: not latex + + +----------------------------+-----------------------------------------------------+ + | Versions | |pypi| |versions| | + +----------------------------+-----------------------------------------------------+ + | Documentation and Support | |docs| | + +----------------------------+-----------------------------------------------------+ + | Open Source | |license| |ossf| | + +----------------------------+-----------------------------------------------------+ + | Coding Standards | |black| |ruff| |pre-commit| | + +----------------------------+-----------------------------------------------------+ + | Development Status | |status| |build| |coveralls| | + +----------------------------+-----------------------------------------------------+ + + +A Python wrapper to setup and run the hydrologic modelling framework Raven_. + +* Free software: MIT license +* Documentation: https://ravenpy.readthedocs.io + +`RavenPy` is a Python wrapper for Raven_, accompanied by utility functions that facilitate model configuration, calibration, and evaluation. + +Raven_ is an hydrological modeling framework that lets hydrologists build hydrological models by combining different hydrological processes together. It can also be used to emulate a variety of existing lumped and distributed models. Model structure, parameters, initial conditions and forcing files are configured in text files, which Raven parses to build and run hydrological simulations. A detailed description about modeling capability of Raven_ can be found in the `docs`_. + +`RavenPy` provides a Python interface to Raven_, automating the creation of configuration files and allowing the model to be launched from Python. Results, or errors, are automatically parsed and exposed within the programming environment. This facilitates the launch of parallel simulations, multi-model prediction ensembles, sensitivity analyses and other experiments involving a large number of model runs. + +Note that version 0.12 includes major changes compared to the previous 0.11 release, and breaks backward compatibility. The benefits of these changes are a much more intuitive interface for configuring and running the model. + +Features +-------- + +* Configure, run and parse Raven outputs from Python +* Utility command to create grid weight files +* Extract physiographic information about watersheds +* Algorithms to estimate model parameters from ungauged watersheds +* Exposes outputs (flow, storage) as `xarray.DataArray` objects + +Install +------- + +Please see the detailed `installation docs`_. + +Acknowledgements +---------------- + +RavenPy's development has been funded by CANARIE_ and Ouranos_ and would be not be possible without the help of Juliane Mai and James Craig. + +This package was created with Cookiecutter_ and the `Ouranosinc/cookiecutter-pypackage`_ project template. + +.. _CANARIE: https://www.canarie.ca +.. _Cookiecutter: https://github.com/cookiecutter/cookiecutter +.. _Ouranos: https://www.ouranos.ca +.. _Ouranosinc/cookiecutter-pypackage: https://github.com/Ouranosinc/cookiecutter-pypackage +.. _Raven: https://raven.uwaterloo.ca +.. _docs: https://raven.uwaterloo.ca/files/v3.8/RavenManual_v3.8.pdf +.. _installation docs: https://ravenpy.readthedocs.io/en/latest/installation.html +.. _raven-hydro: https://github.com/Ouranosinc/raven-hydro + + +.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg + :target: https://github.com/psf/black + :alt: Python Black + +.. |build| image:: https://github.com/CSHS-CWRA/RavenPy/actions/workflows/main.yml/badge.svg + :target: https://github.com/CSHS-CWRA/RavenPy/actions + :alt: Build Status + +.. |coveralls| image:: https://coveralls.io/repos/github/CSHS-CWRA/RavenPy/badge.svg + :target: https://coveralls.io/github/CSHS-CWRA/RavenPy + :alt: Coveralls + +.. |docs| image:: https://readthedocs.org/projects/RavenPy/badge/?version=latest + :target: https://ravenpy.readthedocs.io/en/latest/?version=latest + :alt: Documentation Status + +.. |license| image:: https://img.shields.io/github/license/CSHS-CWRA/RavenPy.svg + :target: https://github.com/CSHS-CWRA/RavenPy/blob/master/LICENSE + :alt: License + +.. |ossf| image:: https://api.securityscorecards.dev/projects/github.com/CSHS-CWRA/RavenPy/badge + :target: https://securityscorecards.dev/viewer/?uri=github.com/CSHS-CWRA/RavenPy + :alt: OpenSSF Scorecard + +.. |pre-commit| image:: https://results.pre-commit.ci/badge/github/CSHS-CWRA/RavenPy/master.svg + :target: https://results.pre-commit.ci/latest/github/CSHS-CWRA/RavenPy/master + :alt: pre-commit.ci status + +.. |pypi| image:: https://img.shields.io/pypi/v/RavenPy.svg + :target: https://pypi.python.org/pypi/RavenPy + :alt: PyPI + +.. |ruff| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json + :target: https://github.com/astral-sh/ruff + :alt: Ruff + +.. |status| image:: https://www.repostatus.org/badges/latest/active.svg + :target: https://www.repostatus.org/#active + :alt: Project Status: Active - The project has reached a stable, usable state and is being actively developed. + +.. |versions| image:: https://img.shields.io/pypi/pyversions/RavenPy.svg + :target: https://pypi.python.org/pypi/RavenPy + :alt: Supported Python Versions From af8fe847d532bf0de0ece0d2aa6a888fbdb34f85 Mon Sep 17 00:00:00 2001 From: Trevor James Smith <10819524+Zeitsperre@users.noreply.github.com> Date: Thu, 10 Oct 2024 13:35:23 -0400 Subject: [PATCH 8/9] add readme.rst to .gitignore --- .gitignore | 1 + docs/conf.py | 7 ++-- docs/readme.rst | 106 ------------------------------------------------ 3 files changed, 4 insertions(+), 110 deletions(-) delete mode 100644 docs/readme.rst diff --git a/.gitignore b/.gitignore index 8bec6832..a8f33d97 100644 --- a/.gitignore +++ b/.gitignore @@ -73,6 +73,7 @@ docs/.jupyter_cache docs/apidoc/modules.rst docs/apidoc/ravenpy*.rst docs/jupyter_execute +docs/readme.rst # PyBuilder target/ diff --git a/docs/conf.py b/docs/conf.py index 21ed4871..14f5aa7d 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -29,10 +29,10 @@ # -- Workarounds ------------------------------------------------------ def rebuild_readme(): - """Rebuild the readme.rst file from the README.md file. + """Rebuild the readme.rst file from the top-level README.rst file. - This is a workaround to remove the MarkDown table found in the README.rst - when building the docs specifically for latex output. + This is a workaround to remove the badge table found in the README.rst + when building the docs specifically for latex/pdf output. """ with Path("../README.rst").open(encoding="utf-8") as f: @@ -66,7 +66,6 @@ def rebuild_readme(): "sphinx.ext.todo", "sphinx.ext.viewcode", "IPython.sphinxext.ipython_console_highlighting", - # "nbsphinx", "myst_nb", "sphinx_click", "sphinx_codeautolink", diff --git a/docs/readme.rst b/docs/readme.rst deleted file mode 100644 index 1df38f06..00000000 --- a/docs/readme.rst +++ /dev/null @@ -1,106 +0,0 @@ -======= -RavenPy -======= - -.. only:: not latex - - +----------------------------+-----------------------------------------------------+ - | Versions | |pypi| |versions| | - +----------------------------+-----------------------------------------------------+ - | Documentation and Support | |docs| | - +----------------------------+-----------------------------------------------------+ - | Open Source | |license| |ossf| | - +----------------------------+-----------------------------------------------------+ - | Coding Standards | |black| |ruff| |pre-commit| | - +----------------------------+-----------------------------------------------------+ - | Development Status | |status| |build| |coveralls| | - +----------------------------+-----------------------------------------------------+ - - -A Python wrapper to setup and run the hydrologic modelling framework Raven_. - -* Free software: MIT license -* Documentation: https://ravenpy.readthedocs.io - -`RavenPy` is a Python wrapper for Raven_, accompanied by utility functions that facilitate model configuration, calibration, and evaluation. - -Raven_ is an hydrological modeling framework that lets hydrologists build hydrological models by combining different hydrological processes together. It can also be used to emulate a variety of existing lumped and distributed models. Model structure, parameters, initial conditions and forcing files are configured in text files, which Raven parses to build and run hydrological simulations. A detailed description about modeling capability of Raven_ can be found in the `docs`_. - -`RavenPy` provides a Python interface to Raven_, automating the creation of configuration files and allowing the model to be launched from Python. Results, or errors, are automatically parsed and exposed within the programming environment. This facilitates the launch of parallel simulations, multi-model prediction ensembles, sensitivity analyses and other experiments involving a large number of model runs. - -Note that version 0.12 includes major changes compared to the previous 0.11 release, and breaks backward compatibility. The benefits of these changes are a much more intuitive interface for configuring and running the model. - -Features --------- - -* Configure, run and parse Raven outputs from Python -* Utility command to create grid weight files -* Extract physiographic information about watersheds -* Algorithms to estimate model parameters from ungauged watersheds -* Exposes outputs (flow, storage) as `xarray.DataArray` objects - -Install -------- - -Please see the detailed `installation docs`_. - -Acknowledgements ----------------- - -RavenPy's development has been funded by CANARIE_ and Ouranos_ and would be not be possible without the help of Juliane Mai and James Craig. - -This package was created with Cookiecutter_ and the `Ouranosinc/cookiecutter-pypackage`_ project template. - -.. _CANARIE: https://www.canarie.ca -.. _Cookiecutter: https://github.com/cookiecutter/cookiecutter -.. _Ouranos: https://www.ouranos.ca -.. _Ouranosinc/cookiecutter-pypackage: https://github.com/Ouranosinc/cookiecutter-pypackage -.. _Raven: https://raven.uwaterloo.ca -.. _docs: https://raven.uwaterloo.ca/files/v3.8/RavenManual_v3.8.pdf -.. _installation docs: https://ravenpy.readthedocs.io/en/latest/installation.html -.. _raven-hydro: https://github.com/Ouranosinc/raven-hydro - - -.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg - :target: https://github.com/psf/black - :alt: Python Black - -.. |build| image:: https://github.com/CSHS-CWRA/RavenPy/actions/workflows/main.yml/badge.svg - :target: https://github.com/CSHS-CWRA/RavenPy/actions - :alt: Build Status - -.. |coveralls| image:: https://coveralls.io/repos/github/CSHS-CWRA/RavenPy/badge.svg - :target: https://coveralls.io/github/CSHS-CWRA/RavenPy - :alt: Coveralls - -.. |docs| image:: https://readthedocs.org/projects/RavenPy/badge/?version=latest - :target: https://ravenpy.readthedocs.io/en/latest/?version=latest - :alt: Documentation Status - -.. |license| image:: https://img.shields.io/github/license/CSHS-CWRA/RavenPy.svg - :target: https://github.com/CSHS-CWRA/RavenPy/blob/master/LICENSE - :alt: License - -.. |ossf| image:: https://api.securityscorecards.dev/projects/github.com/CSHS-CWRA/RavenPy/badge - :target: https://securityscorecards.dev/viewer/?uri=github.com/CSHS-CWRA/RavenPy - :alt: OpenSSF Scorecard - -.. |pre-commit| image:: https://results.pre-commit.ci/badge/github/CSHS-CWRA/RavenPy/master.svg - :target: https://results.pre-commit.ci/latest/github/CSHS-CWRA/RavenPy/master - :alt: pre-commit.ci status - -.. |pypi| image:: https://img.shields.io/pypi/v/RavenPy.svg - :target: https://pypi.python.org/pypi/RavenPy - :alt: PyPI - -.. |ruff| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json - :target: https://github.com/astral-sh/ruff - :alt: Ruff - -.. |status| image:: https://www.repostatus.org/badges/latest/active.svg - :target: https://www.repostatus.org/#active - :alt: Project Status: Active - The project has reached a stable, usable state and is being actively developed. - -.. |versions| image:: https://img.shields.io/pypi/pyversions/RavenPy.svg - :target: https://pypi.python.org/pypi/RavenPy - :alt: Supported Python Versions From 20a8d37d1badd2e0938d6648572c0db0352c9bf4 Mon Sep 17 00:00:00 2001 From: Trevor James Smith <10819524+Zeitsperre@users.noreply.github.com> Date: Thu, 10 Oct 2024 13:39:44 -0400 Subject: [PATCH 9/9] update CHANGELOG.rst --- CHANGELOG.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 1a9ca3a6..534ec201 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -20,6 +20,7 @@ Internal changes * Added `setuptools` to the `gis` build recipe to ensure that the `gdal` bindings are built successfully. (PR #400) * Modified the sub-basin and channel profile extraction functions to correctly set the river length to zero and set default values for reach attributes in sub-basins with no channel routing (i.e., sub-basins with lakes or headwater basins). (issue #354, PR #401) * Improved the HBV-EC emulator by adding parameter information (name, definition, and Raven default values) and fixed the variable name for the adiabatic temperature lapse rate. (PR #404) +* Modified the `sphinx` configuration to better support SVG and to remove incompatible elements from the PDF build. (PR #407) v0.15.0 (2024-06-20) --------------------