From 204cea1ad9c3ebc5d2a29b75a1a7d950357faf34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Sat, 15 Apr 2023 12:28:55 +0200 Subject: [PATCH 01/10] move to src based package structure --- .gitignore | 4 ++-- {ogs5py => src/ogs5py}/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/asc/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/asc/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/base.py | 0 {ogs5py => src/ogs5py}/fileclasses/bc/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/bc/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/cct/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/cct/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/ddc/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/ddc/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/fct/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/fct/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/gem/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/gem/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/gli/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/gli/checker.py | 0 {ogs5py => src/ogs5py}/fileclasses/gli/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/gli/generator.py | 0 {ogs5py => src/ogs5py}/fileclasses/gli/tools.py | 0 {ogs5py => src/ogs5py}/fileclasses/ic/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/ic/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/krc/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/krc/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/mcp/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/mcp/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/mfp/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/mfp/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/mmp/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/mmp/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/mpd/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/mpd/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/msh/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/msh/checker.py | 0 {ogs5py => src/ogs5py}/fileclasses/msh/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/msh/generator.py | 0 {ogs5py => src/ogs5py}/fileclasses/msh/gmsh.py | 0 {ogs5py => src/ogs5py}/fileclasses/msh/helpers.py | 0 {ogs5py => src/ogs5py}/fileclasses/msh/msh_io.py | 0 {ogs5py => src/ogs5py}/fileclasses/msh/tools.py | 0 {ogs5py => src/ogs5py}/fileclasses/msh/viewer.py | 0 {ogs5py => src/ogs5py}/fileclasses/msp/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/msp/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/num/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/num/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/out/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/out/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/pcs/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/pcs/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/pct/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/pct/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/pqc/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/pqc/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/rei/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/rei/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/rfd/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/rfd/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/st/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/st/core.py | 0 {ogs5py => src/ogs5py}/fileclasses/tim/__init__.py | 0 {ogs5py => src/ogs5py}/fileclasses/tim/core.py | 0 {ogs5py => src/ogs5py}/ogs.py | 0 {ogs5py => src/ogs5py}/reader/__init__.py | 0 {ogs5py => src/ogs5py}/reader/reader.py | 0 {ogs5py => src/ogs5py}/reader/techelper.py | 0 {ogs5py => src/ogs5py}/reader/tools.py | 0 {ogs5py => src/ogs5py}/reader/vtkhelper.py | 0 {ogs5py => src/ogs5py}/tools/__init__.py | 0 {ogs5py => src/ogs5py}/tools/download.py | 0 {ogs5py => src/ogs5py}/tools/output.py | 0 {ogs5py => src/ogs5py}/tools/script.py | 0 {ogs5py => src/ogs5py}/tools/tools.py | 0 {ogs5py => src/ogs5py}/tools/types.py | 0 {ogs5py => src/ogs5py}/tools/vtk_viewer.py | 0 75 files changed, 2 insertions(+), 2 deletions(-) rename {ogs5py => src/ogs5py}/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/asc/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/asc/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/base.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/bc/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/bc/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/cct/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/cct/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/ddc/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/ddc/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/fct/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/fct/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/gem/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/gem/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/gli/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/gli/checker.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/gli/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/gli/generator.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/gli/tools.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/ic/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/ic/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/krc/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/krc/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/mcp/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/mcp/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/mfp/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/mfp/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/mmp/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/mmp/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/mpd/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/mpd/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/msh/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/msh/checker.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/msh/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/msh/generator.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/msh/gmsh.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/msh/helpers.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/msh/msh_io.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/msh/tools.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/msh/viewer.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/msp/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/msp/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/num/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/num/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/out/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/out/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/pcs/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/pcs/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/pct/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/pct/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/pqc/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/pqc/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/rei/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/rei/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/rfd/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/rfd/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/st/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/st/core.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/tim/__init__.py (100%) rename {ogs5py => src/ogs5py}/fileclasses/tim/core.py (100%) rename {ogs5py => src/ogs5py}/ogs.py (100%) rename {ogs5py => src/ogs5py}/reader/__init__.py (100%) rename {ogs5py => src/ogs5py}/reader/reader.py (100%) rename {ogs5py => src/ogs5py}/reader/techelper.py (100%) rename {ogs5py => src/ogs5py}/reader/tools.py (100%) rename {ogs5py => src/ogs5py}/reader/vtkhelper.py (100%) rename {ogs5py => src/ogs5py}/tools/__init__.py (100%) rename {ogs5py => src/ogs5py}/tools/download.py (100%) rename {ogs5py => src/ogs5py}/tools/output.py (100%) rename {ogs5py => src/ogs5py}/tools/script.py (100%) rename {ogs5py => src/ogs5py}/tools/tools.py (100%) rename {ogs5py => src/ogs5py}/tools/types.py (100%) rename {ogs5py => src/ogs5py}/tools/vtk_viewer.py (100%) diff --git a/.gitignore b/.gitignore index 212226e..3702c4f 100644 --- a/.gitignore +++ b/.gitignore @@ -112,7 +112,7 @@ info/ *.cpp # generated version file -ogs5py/_version.py +src/ogs5py/_version.py # generated docs docs/source/examples/ @@ -126,4 +126,4 @@ docs/source/generated/ *.vtu *.vtr -*.vtk \ No newline at end of file +*.vtk diff --git a/ogs5py/__init__.py b/src/ogs5py/__init__.py similarity index 100% rename from ogs5py/__init__.py rename to src/ogs5py/__init__.py diff --git a/ogs5py/fileclasses/__init__.py b/src/ogs5py/fileclasses/__init__.py similarity index 100% rename from ogs5py/fileclasses/__init__.py rename to src/ogs5py/fileclasses/__init__.py diff --git a/ogs5py/fileclasses/asc/__init__.py b/src/ogs5py/fileclasses/asc/__init__.py similarity index 100% rename from ogs5py/fileclasses/asc/__init__.py rename to src/ogs5py/fileclasses/asc/__init__.py diff --git a/ogs5py/fileclasses/asc/core.py b/src/ogs5py/fileclasses/asc/core.py similarity index 100% rename from ogs5py/fileclasses/asc/core.py rename to src/ogs5py/fileclasses/asc/core.py diff --git a/ogs5py/fileclasses/base.py b/src/ogs5py/fileclasses/base.py similarity index 100% rename from ogs5py/fileclasses/base.py rename to src/ogs5py/fileclasses/base.py diff --git a/ogs5py/fileclasses/bc/__init__.py b/src/ogs5py/fileclasses/bc/__init__.py similarity index 100% rename from ogs5py/fileclasses/bc/__init__.py rename to src/ogs5py/fileclasses/bc/__init__.py diff --git a/ogs5py/fileclasses/bc/core.py b/src/ogs5py/fileclasses/bc/core.py similarity index 100% rename from ogs5py/fileclasses/bc/core.py rename to src/ogs5py/fileclasses/bc/core.py diff --git a/ogs5py/fileclasses/cct/__init__.py b/src/ogs5py/fileclasses/cct/__init__.py similarity index 100% rename from ogs5py/fileclasses/cct/__init__.py rename to src/ogs5py/fileclasses/cct/__init__.py diff --git a/ogs5py/fileclasses/cct/core.py b/src/ogs5py/fileclasses/cct/core.py similarity index 100% rename from ogs5py/fileclasses/cct/core.py rename to src/ogs5py/fileclasses/cct/core.py diff --git a/ogs5py/fileclasses/ddc/__init__.py b/src/ogs5py/fileclasses/ddc/__init__.py similarity index 100% rename from ogs5py/fileclasses/ddc/__init__.py rename to src/ogs5py/fileclasses/ddc/__init__.py diff --git a/ogs5py/fileclasses/ddc/core.py b/src/ogs5py/fileclasses/ddc/core.py similarity index 100% rename from ogs5py/fileclasses/ddc/core.py rename to src/ogs5py/fileclasses/ddc/core.py diff --git a/ogs5py/fileclasses/fct/__init__.py b/src/ogs5py/fileclasses/fct/__init__.py similarity index 100% rename from ogs5py/fileclasses/fct/__init__.py rename to src/ogs5py/fileclasses/fct/__init__.py diff --git a/ogs5py/fileclasses/fct/core.py b/src/ogs5py/fileclasses/fct/core.py similarity index 100% rename from ogs5py/fileclasses/fct/core.py rename to src/ogs5py/fileclasses/fct/core.py diff --git a/ogs5py/fileclasses/gem/__init__.py b/src/ogs5py/fileclasses/gem/__init__.py similarity index 100% rename from ogs5py/fileclasses/gem/__init__.py rename to src/ogs5py/fileclasses/gem/__init__.py diff --git a/ogs5py/fileclasses/gem/core.py b/src/ogs5py/fileclasses/gem/core.py similarity index 100% rename from ogs5py/fileclasses/gem/core.py rename to src/ogs5py/fileclasses/gem/core.py diff --git a/ogs5py/fileclasses/gli/__init__.py b/src/ogs5py/fileclasses/gli/__init__.py similarity index 100% rename from ogs5py/fileclasses/gli/__init__.py rename to src/ogs5py/fileclasses/gli/__init__.py diff --git a/ogs5py/fileclasses/gli/checker.py b/src/ogs5py/fileclasses/gli/checker.py similarity index 100% rename from ogs5py/fileclasses/gli/checker.py rename to src/ogs5py/fileclasses/gli/checker.py diff --git a/ogs5py/fileclasses/gli/core.py b/src/ogs5py/fileclasses/gli/core.py similarity index 100% rename from ogs5py/fileclasses/gli/core.py rename to src/ogs5py/fileclasses/gli/core.py diff --git a/ogs5py/fileclasses/gli/generator.py b/src/ogs5py/fileclasses/gli/generator.py similarity index 100% rename from ogs5py/fileclasses/gli/generator.py rename to src/ogs5py/fileclasses/gli/generator.py diff --git a/ogs5py/fileclasses/gli/tools.py b/src/ogs5py/fileclasses/gli/tools.py similarity index 100% rename from ogs5py/fileclasses/gli/tools.py rename to src/ogs5py/fileclasses/gli/tools.py diff --git a/ogs5py/fileclasses/ic/__init__.py b/src/ogs5py/fileclasses/ic/__init__.py similarity index 100% rename from ogs5py/fileclasses/ic/__init__.py rename to src/ogs5py/fileclasses/ic/__init__.py diff --git a/ogs5py/fileclasses/ic/core.py b/src/ogs5py/fileclasses/ic/core.py similarity index 100% rename from ogs5py/fileclasses/ic/core.py rename to src/ogs5py/fileclasses/ic/core.py diff --git a/ogs5py/fileclasses/krc/__init__.py b/src/ogs5py/fileclasses/krc/__init__.py similarity index 100% rename from ogs5py/fileclasses/krc/__init__.py rename to src/ogs5py/fileclasses/krc/__init__.py diff --git a/ogs5py/fileclasses/krc/core.py b/src/ogs5py/fileclasses/krc/core.py similarity index 100% rename from ogs5py/fileclasses/krc/core.py rename to src/ogs5py/fileclasses/krc/core.py diff --git a/ogs5py/fileclasses/mcp/__init__.py b/src/ogs5py/fileclasses/mcp/__init__.py similarity index 100% rename from ogs5py/fileclasses/mcp/__init__.py rename to src/ogs5py/fileclasses/mcp/__init__.py diff --git a/ogs5py/fileclasses/mcp/core.py b/src/ogs5py/fileclasses/mcp/core.py similarity index 100% rename from ogs5py/fileclasses/mcp/core.py rename to src/ogs5py/fileclasses/mcp/core.py diff --git a/ogs5py/fileclasses/mfp/__init__.py b/src/ogs5py/fileclasses/mfp/__init__.py similarity index 100% rename from ogs5py/fileclasses/mfp/__init__.py rename to src/ogs5py/fileclasses/mfp/__init__.py diff --git a/ogs5py/fileclasses/mfp/core.py b/src/ogs5py/fileclasses/mfp/core.py similarity index 100% rename from ogs5py/fileclasses/mfp/core.py rename to src/ogs5py/fileclasses/mfp/core.py diff --git a/ogs5py/fileclasses/mmp/__init__.py b/src/ogs5py/fileclasses/mmp/__init__.py similarity index 100% rename from ogs5py/fileclasses/mmp/__init__.py rename to src/ogs5py/fileclasses/mmp/__init__.py diff --git a/ogs5py/fileclasses/mmp/core.py b/src/ogs5py/fileclasses/mmp/core.py similarity index 100% rename from ogs5py/fileclasses/mmp/core.py rename to src/ogs5py/fileclasses/mmp/core.py diff --git a/ogs5py/fileclasses/mpd/__init__.py b/src/ogs5py/fileclasses/mpd/__init__.py similarity index 100% rename from ogs5py/fileclasses/mpd/__init__.py rename to src/ogs5py/fileclasses/mpd/__init__.py diff --git a/ogs5py/fileclasses/mpd/core.py b/src/ogs5py/fileclasses/mpd/core.py similarity index 100% rename from ogs5py/fileclasses/mpd/core.py rename to src/ogs5py/fileclasses/mpd/core.py diff --git a/ogs5py/fileclasses/msh/__init__.py b/src/ogs5py/fileclasses/msh/__init__.py similarity index 100% rename from ogs5py/fileclasses/msh/__init__.py rename to src/ogs5py/fileclasses/msh/__init__.py diff --git a/ogs5py/fileclasses/msh/checker.py b/src/ogs5py/fileclasses/msh/checker.py similarity index 100% rename from ogs5py/fileclasses/msh/checker.py rename to src/ogs5py/fileclasses/msh/checker.py diff --git a/ogs5py/fileclasses/msh/core.py b/src/ogs5py/fileclasses/msh/core.py similarity index 100% rename from ogs5py/fileclasses/msh/core.py rename to src/ogs5py/fileclasses/msh/core.py diff --git a/ogs5py/fileclasses/msh/generator.py b/src/ogs5py/fileclasses/msh/generator.py similarity index 100% rename from ogs5py/fileclasses/msh/generator.py rename to src/ogs5py/fileclasses/msh/generator.py diff --git a/ogs5py/fileclasses/msh/gmsh.py b/src/ogs5py/fileclasses/msh/gmsh.py similarity index 100% rename from ogs5py/fileclasses/msh/gmsh.py rename to src/ogs5py/fileclasses/msh/gmsh.py diff --git a/ogs5py/fileclasses/msh/helpers.py b/src/ogs5py/fileclasses/msh/helpers.py similarity index 100% rename from ogs5py/fileclasses/msh/helpers.py rename to src/ogs5py/fileclasses/msh/helpers.py diff --git a/ogs5py/fileclasses/msh/msh_io.py b/src/ogs5py/fileclasses/msh/msh_io.py similarity index 100% rename from ogs5py/fileclasses/msh/msh_io.py rename to src/ogs5py/fileclasses/msh/msh_io.py diff --git a/ogs5py/fileclasses/msh/tools.py b/src/ogs5py/fileclasses/msh/tools.py similarity index 100% rename from ogs5py/fileclasses/msh/tools.py rename to src/ogs5py/fileclasses/msh/tools.py diff --git a/ogs5py/fileclasses/msh/viewer.py b/src/ogs5py/fileclasses/msh/viewer.py similarity index 100% rename from ogs5py/fileclasses/msh/viewer.py rename to src/ogs5py/fileclasses/msh/viewer.py diff --git a/ogs5py/fileclasses/msp/__init__.py b/src/ogs5py/fileclasses/msp/__init__.py similarity index 100% rename from ogs5py/fileclasses/msp/__init__.py rename to src/ogs5py/fileclasses/msp/__init__.py diff --git a/ogs5py/fileclasses/msp/core.py b/src/ogs5py/fileclasses/msp/core.py similarity index 100% rename from ogs5py/fileclasses/msp/core.py rename to src/ogs5py/fileclasses/msp/core.py diff --git a/ogs5py/fileclasses/num/__init__.py b/src/ogs5py/fileclasses/num/__init__.py similarity index 100% rename from ogs5py/fileclasses/num/__init__.py rename to src/ogs5py/fileclasses/num/__init__.py diff --git a/ogs5py/fileclasses/num/core.py b/src/ogs5py/fileclasses/num/core.py similarity index 100% rename from ogs5py/fileclasses/num/core.py rename to src/ogs5py/fileclasses/num/core.py diff --git a/ogs5py/fileclasses/out/__init__.py b/src/ogs5py/fileclasses/out/__init__.py similarity index 100% rename from ogs5py/fileclasses/out/__init__.py rename to src/ogs5py/fileclasses/out/__init__.py diff --git a/ogs5py/fileclasses/out/core.py b/src/ogs5py/fileclasses/out/core.py similarity index 100% rename from ogs5py/fileclasses/out/core.py rename to src/ogs5py/fileclasses/out/core.py diff --git a/ogs5py/fileclasses/pcs/__init__.py b/src/ogs5py/fileclasses/pcs/__init__.py similarity index 100% rename from ogs5py/fileclasses/pcs/__init__.py rename to src/ogs5py/fileclasses/pcs/__init__.py diff --git a/ogs5py/fileclasses/pcs/core.py b/src/ogs5py/fileclasses/pcs/core.py similarity index 100% rename from ogs5py/fileclasses/pcs/core.py rename to src/ogs5py/fileclasses/pcs/core.py diff --git a/ogs5py/fileclasses/pct/__init__.py b/src/ogs5py/fileclasses/pct/__init__.py similarity index 100% rename from ogs5py/fileclasses/pct/__init__.py rename to src/ogs5py/fileclasses/pct/__init__.py diff --git a/ogs5py/fileclasses/pct/core.py b/src/ogs5py/fileclasses/pct/core.py similarity index 100% rename from ogs5py/fileclasses/pct/core.py rename to src/ogs5py/fileclasses/pct/core.py diff --git a/ogs5py/fileclasses/pqc/__init__.py b/src/ogs5py/fileclasses/pqc/__init__.py similarity index 100% rename from ogs5py/fileclasses/pqc/__init__.py rename to src/ogs5py/fileclasses/pqc/__init__.py diff --git a/ogs5py/fileclasses/pqc/core.py b/src/ogs5py/fileclasses/pqc/core.py similarity index 100% rename from ogs5py/fileclasses/pqc/core.py rename to src/ogs5py/fileclasses/pqc/core.py diff --git a/ogs5py/fileclasses/rei/__init__.py b/src/ogs5py/fileclasses/rei/__init__.py similarity index 100% rename from ogs5py/fileclasses/rei/__init__.py rename to src/ogs5py/fileclasses/rei/__init__.py diff --git a/ogs5py/fileclasses/rei/core.py b/src/ogs5py/fileclasses/rei/core.py similarity index 100% rename from ogs5py/fileclasses/rei/core.py rename to src/ogs5py/fileclasses/rei/core.py diff --git a/ogs5py/fileclasses/rfd/__init__.py b/src/ogs5py/fileclasses/rfd/__init__.py similarity index 100% rename from ogs5py/fileclasses/rfd/__init__.py rename to src/ogs5py/fileclasses/rfd/__init__.py diff --git a/ogs5py/fileclasses/rfd/core.py b/src/ogs5py/fileclasses/rfd/core.py similarity index 100% rename from ogs5py/fileclasses/rfd/core.py rename to src/ogs5py/fileclasses/rfd/core.py diff --git a/ogs5py/fileclasses/st/__init__.py b/src/ogs5py/fileclasses/st/__init__.py similarity index 100% rename from ogs5py/fileclasses/st/__init__.py rename to src/ogs5py/fileclasses/st/__init__.py diff --git a/ogs5py/fileclasses/st/core.py b/src/ogs5py/fileclasses/st/core.py similarity index 100% rename from ogs5py/fileclasses/st/core.py rename to src/ogs5py/fileclasses/st/core.py diff --git a/ogs5py/fileclasses/tim/__init__.py b/src/ogs5py/fileclasses/tim/__init__.py similarity index 100% rename from ogs5py/fileclasses/tim/__init__.py rename to src/ogs5py/fileclasses/tim/__init__.py diff --git a/ogs5py/fileclasses/tim/core.py b/src/ogs5py/fileclasses/tim/core.py similarity index 100% rename from ogs5py/fileclasses/tim/core.py rename to src/ogs5py/fileclasses/tim/core.py diff --git a/ogs5py/ogs.py b/src/ogs5py/ogs.py similarity index 100% rename from ogs5py/ogs.py rename to src/ogs5py/ogs.py diff --git a/ogs5py/reader/__init__.py b/src/ogs5py/reader/__init__.py similarity index 100% rename from ogs5py/reader/__init__.py rename to src/ogs5py/reader/__init__.py diff --git a/ogs5py/reader/reader.py b/src/ogs5py/reader/reader.py similarity index 100% rename from ogs5py/reader/reader.py rename to src/ogs5py/reader/reader.py diff --git a/ogs5py/reader/techelper.py b/src/ogs5py/reader/techelper.py similarity index 100% rename from ogs5py/reader/techelper.py rename to src/ogs5py/reader/techelper.py diff --git a/ogs5py/reader/tools.py b/src/ogs5py/reader/tools.py similarity index 100% rename from ogs5py/reader/tools.py rename to src/ogs5py/reader/tools.py diff --git a/ogs5py/reader/vtkhelper.py b/src/ogs5py/reader/vtkhelper.py similarity index 100% rename from ogs5py/reader/vtkhelper.py rename to src/ogs5py/reader/vtkhelper.py diff --git a/ogs5py/tools/__init__.py b/src/ogs5py/tools/__init__.py similarity index 100% rename from ogs5py/tools/__init__.py rename to src/ogs5py/tools/__init__.py diff --git a/ogs5py/tools/download.py b/src/ogs5py/tools/download.py similarity index 100% rename from ogs5py/tools/download.py rename to src/ogs5py/tools/download.py diff --git a/ogs5py/tools/output.py b/src/ogs5py/tools/output.py similarity index 100% rename from ogs5py/tools/output.py rename to src/ogs5py/tools/output.py diff --git a/ogs5py/tools/script.py b/src/ogs5py/tools/script.py similarity index 100% rename from ogs5py/tools/script.py rename to src/ogs5py/tools/script.py diff --git a/ogs5py/tools/tools.py b/src/ogs5py/tools/tools.py similarity index 100% rename from ogs5py/tools/tools.py rename to src/ogs5py/tools/tools.py diff --git a/ogs5py/tools/types.py b/src/ogs5py/tools/types.py similarity index 100% rename from ogs5py/tools/types.py rename to src/ogs5py/tools/types.py diff --git a/ogs5py/tools/vtk_viewer.py b/src/ogs5py/tools/vtk_viewer.py similarity index 100% rename from ogs5py/tools/vtk_viewer.py rename to src/ogs5py/tools/vtk_viewer.py From 004c5dbe11b590c279fbe645515a4279fa2105fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Sat, 15 Apr 2023 12:48:50 +0200 Subject: [PATCH 02/10] setup: use hatchling as build backend; drop py36 support --- MANIFEST.in | 6 --- pyproject.toml | 104 ++++++++++++++++++++++++++++++++++++++++++------- setup.cfg | 75 ----------------------------------- 3 files changed, 91 insertions(+), 94 deletions(-) delete mode 100644 MANIFEST.in delete mode 100644 setup.cfg diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index e35e283..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1,6 +0,0 @@ -prune * -graft ogs5py -graft tests - -include LICENSE README.md pyproject.toml setup.cfg -global-exclude __pycache__ *.py[cod] .* diff --git a/pyproject.toml b/pyproject.toml index 1a02c8a..e416e9a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,17 +1,99 @@ [build-system] requires = [ - "setuptools>=42", - "wheel", - "setuptools_scm[toml]>=3.5", + "hatchling>=1.8.0", + "hatch-vcs", ] -build-backend = "setuptools.build_meta" +build-backend = "hatchling.build" -[tool.setuptools_scm] -write_to = "ogs5py/_version.py" -write_to_template = "__version__ = '{version}'" -local_scheme = "no-local-version" +[project] +requires-python = ">=3.7" +name = "ogs5py" +description = "ogs5py: a python API for OpenGeoSys5" +authors = [ + {name = "Sebastian Müller, Falk Heße", email = "info@geostat-framework.org"}, +] +readme = "README.md" +license = "MIT" +dynamic = ["version"] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Intended Audience :: End Users/Desktop", + "Intended Audience :: Science/Research", + "Intended Audience :: Education", + "License :: OSI Approved :: MIT License", + "Natural Language :: English", + "Operating System :: Unix", + "Operating System :: Microsoft", + "Operating System :: MacOS", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: GIS", + "Topic :: Scientific/Engineering :: Hydrology", + "Topic :: Scientific/Engineering :: Mathematics", + "Topic :: Scientific/Engineering :: Physics", + "Topic :: Utilities", +] +dependencies = [ + "numpy>=1.14.5", + "pandas>=0.23.2", + "meshio>=4", + "lxml>=4", + "pexpect>=4", + "vtk>=9", +] + +[project.urls] +Homepage = "https://geostat-framework.org/#ogs5py" +Documentation = "https://ogs5py.readthedocs.io" +Source = "https://github.com/GeoStat-Framework/ogs5py" +Tracker = "https://github.com/GeoStat-Framework/ogs5py/issues" +Changelog = "https://github.com/GeoStat-Framework/ogs5py/blob/main/CHANGELOG.md" +Conda-Forge = "https://anaconda.org/conda-forge/ogs5py" + +[project.optional-dependencies] +check = [ + "black>=23,<24", + "isort[colors]<6", + "pydocstyle", +] +doc = [ + "m2r2>=0.2.8", + "numpydoc>=1.1", + "sphinx>=4", + "sphinx-rtd-theme>=1", +] +show = ["mayavi"] +gmsh = ["gmsh"] +test = ["pytest-cov>=3"] + +[tool.hatch.version] +source = "vcs" fallback_version = "0.0.0.dev0" +[tool.hatch.version.raw-options] +local_scheme = "no-local-version" + +[tool.hatch.build.hooks.vcs] +version-file = "src/ogs5py/_version.py" +template = "__version__ = '{version}'" + +[tool.hatch.build.targets.sdist] +include = [ + "/src", + "/tests", +] + +[tool.hatch.build.targets.wheel] +packages = ["src/ogs5py"] + [tool.isort] profile = "black" multi_line_output = 3 @@ -20,11 +102,7 @@ line_length = 79 [tool.black] exclude = "_version.py" line-length = 79 -target-version = [ - "py36", - "py37", - "py38", -] +target-version = ["py37"] [tool.coverage] [tool.coverage.run] diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index b7fbbff..0000000 --- a/setup.cfg +++ /dev/null @@ -1,75 +0,0 @@ -[metadata] -name = ogs5py -description = ogs5py: a python API for OpenGeoSys5 -long_description = file: README.md -long_description_content_type = text/markdown -url = https://github.com/GeoStat-Framework/ogs5py -author = Sebastian Müller, Falk Heße -author_email = info@geostat-framework.org -maintainer = Sebastian Müller -maintainer_email = info@geostat-framework.org -license = MIT -license_file = LICENSE -platforms = any -classifiers = - Development Status :: 5 - Production/Stable - Intended Audience :: Developers - Intended Audience :: End Users/Desktop - Intended Audience :: Science/Research - Intended Audience :: Education - License :: OSI Approved :: MIT License - Natural Language :: English - Operating System :: Unix - Operating System :: Microsoft - Operating System :: MacOS - Programming Language :: Python - Programming Language :: Python :: 3 - Programming Language :: Python :: 3 :: Only - Programming Language :: Python :: 3.6 - Programming Language :: Python :: 3.7 - Programming Language :: Python :: 3.8 - Programming Language :: Python :: 3.9 - Programming Language :: Python :: 3.10 - Topic :: Scientific/Engineering - Topic :: Scientific/Engineering :: GIS - Topic :: Scientific/Engineering :: Hydrology - Topic :: Scientific/Engineering :: Mathematics - Topic :: Scientific/Engineering :: Physics - Topic :: Utilities -project_urls = - Homepage = https://geostat-framework.org/#ogs5py - Documentation = https://ogs5py.readthedocs.io - Source = https://github.com/GeoStat-Framework/ogs5py - Tracker = https://github.com/GeoStat-Framework/ogs5py/issues - Changelog = https://github.com/GeoStat-Framework/ogs5py/blob/main/CHANGELOG.md - Conda-Forge = https://anaconda.org/conda-forge/ogs5py - -[options] -packages = find: -install_requires = - numpy>=1.14.5 - pandas>=0.23.2 - meshio>=4 - lxml>=4 - pexpect>=4 - vtk>=9 -python_requires = >=3.6 -zip_safe = False - -[options.packages.find] -exclude = - tests* - docs* - -[options.extras_require] -doc = - m2r2>=0.2.8 - numpydoc>=1.1 - sphinx>=4 - sphinx-rtd-theme>=1 -show = - mayavi -gmsh = - gmsh -test = - pytest-cov>=3 From f58675677fc6dd64c2ae3ab04c11b35c2a0005e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Sat, 15 Apr 2023 12:54:29 +0200 Subject: [PATCH 03/10] blackenend --- src/ogs5py/fileclasses/msh/msh_io.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ogs5py/fileclasses/msh/msh_io.py b/src/ogs5py/fileclasses/msh/msh_io.py index 617faac..18b5859 100755 --- a/src/ogs5py/fileclasses/msh/msh_io.py +++ b/src/ogs5py/fileclasses/msh/msh_io.py @@ -309,7 +309,6 @@ def load_ogs5msh_old(filepath, verbose=True, max_node_no=8, encoding=None): out = dcp(EMPTY_MSH) with open(filepath, "r", encoding=encoding) as msh: - head = msh.readline() if head.strip().startswith("#0#0#0#1#"): if verbose: @@ -443,7 +442,6 @@ def save_ogs5msh( print(str(top_com), file=msh) for i, mesh_i in enumerate(mesh): - if verbose: print("write 'FEM_MSH' number: " + str(i)) msh.write("#FEM_MSH\n") From 4db6cd745f24bfc683d316288db7df3f28498037 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Sat, 15 Apr 2023 12:54:51 +0200 Subject: [PATCH 04/10] CI: update checking --- .github/workflows/main.yml | 9 ++++----- pyproject.toml | 1 - 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3263d44..33a50e8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -26,16 +26,15 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Set up Python 3.8 + - name: Set up Python 3.9 uses: actions/setup-python@v2 with: - python-version: 3.8 + python-version: 3.9 - name: Install dependencies run: | python -m pip install --upgrade pip - pip install black 'isort[colors]<6' # 'pylint<3' - pip install --editable . + pip install --editable .[check] - name: black check run: | @@ -52,7 +51,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] - python-version: ['3.6', '3.7', '3.8', '3.9'] # '3.10' + python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] steps: - uses: actions/checkout@v2 diff --git a/pyproject.toml b/pyproject.toml index e416e9a..b1e42a8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,7 +62,6 @@ Conda-Forge = "https://anaconda.org/conda-forge/ogs5py" check = [ "black>=23,<24", "isort[colors]<6", - "pydocstyle", ] doc = [ "m2r2>=0.2.8", From 38b429dcd0add6cdfd11f6dfe562b3d44724fd4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Sat, 15 Apr 2023 12:55:56 +0200 Subject: [PATCH 05/10] numpy fixes --- src/ogs5py/fileclasses/msh/generator.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ogs5py/fileclasses/msh/generator.py b/src/ogs5py/fileclasses/msh/generator.py index 3820c96..db19e24 100644 --- a/src/ogs5py/fileclasses/msh/generator.py +++ b/src/ogs5py/fileclasses/msh/generator.py @@ -245,9 +245,9 @@ def radial( element_no = angles * (r_no - 1) if closed: node_no += 1 - elem_mid_arr = np.zeros((angles, 3), dtype=np.int) + elem_mid_arr = np.zeros((angles, 3), dtype=int) - element_arr = np.zeros((element_no, 4), dtype=np.int) + element_arr = np.zeros((element_no, 4), dtype=int) node_arr = np.zeros((node_no, 3)) for ri, re in enumerate(rad): @@ -279,9 +279,9 @@ def radial( element_no = angles * (r_no - 1) * (z_no - 1) if closed: node_no += z_no - elem_mid_arr = np.zeros((angles * (z_no - 1), 6), dtype=np.int) + elem_mid_arr = np.zeros((angles * (z_no - 1), 6), dtype=int) - element_arr = np.zeros((element_no, 8), dtype=np.int) + element_arr = np.zeros((element_no, 8), dtype=int) node_arr = np.zeros((node_no, 3)) # write nodes From ccf6f85d361045e649f254465b7707d2380742f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Sat, 15 Apr 2023 13:01:31 +0200 Subject: [PATCH 06/10] py310 fix for Iterator --- src/ogs5py/tools/tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ogs5py/tools/tools.py b/src/ogs5py/tools/tools.py index dccfc94..036f614 100644 --- a/src/ogs5py/tools/tools.py +++ b/src/ogs5py/tools/tools.py @@ -315,7 +315,7 @@ def format_content(content): if isinstance(content, STRTYPE): return [[content]] # convert iterators (like zip) - if isinstance(content, collections.Iterator): + if isinstance(content, collections.abc.Iterator): content = list(content) # check for a single content thats not a string try: From 6b2d3d15c4e77a342ebe895994915c20f63af393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Sat, 15 Apr 2023 13:05:28 +0200 Subject: [PATCH 07/10] VCS: git archives support --- .git_archival.txt | 4 ++++ .gitattributes | 1 + 2 files changed, 5 insertions(+) create mode 100644 .git_archival.txt create mode 100644 .gitattributes diff --git a/.git_archival.txt b/.git_archival.txt new file mode 100644 index 0000000..8fb235d --- /dev/null +++ b/.git_archival.txt @@ -0,0 +1,4 @@ +node: $Format:%H$ +node-date: $Format:%cI$ +describe-name: $Format:%(describe:tags=true,match=*[0-9]*)$ +ref-names: $Format:%D$ diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..00a7b00 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +.git_archival.txt export-subst From 53c8b49b569b3401f24c61bba8d5be16f861d9aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Sat, 15 Apr 2023 13:55:50 +0200 Subject: [PATCH 08/10] update classifiers --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index b1e42a8..854f00c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,11 +29,11 @@ classifiers = [ "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: GIS", "Topic :: Scientific/Engineering :: Hydrology", From 68aa24d6222586712dfc1a17363422b7646f8810 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Sat, 15 Apr 2023 14:58:21 +0200 Subject: [PATCH 09/10] simplify docs --- .gitignore | 2 +- LICENSE | 2 +- README.md | 2 +- docs/source/_static/custom.css | 3 + docs/source/_templates/autosummary/module.rst | 9 +++ docs/source/_templates/layout.html | 4 +- docs/source/{package.rst => api.rst} | 7 -- docs/source/conf.py | 20 +++-- docs/source/contents.rst | 4 +- docs/source/fileclasses.base.rst | 8 -- docs/source/fileclasses.gli.generator.rst | 8 -- docs/source/fileclasses.gli.rst | 13 ---- docs/source/fileclasses.msh.generator.rst | 8 -- docs/source/fileclasses.msh.rst | 13 ---- docs/source/fileclasses.rst | 15 ---- docs/source/reader.rst | 8 -- docs/source/tools.download.rst | 8 -- docs/source/tools.output.rst | 12 --- docs/source/tools.rst | 18 ----- docs/source/tools.script.rst | 8 -- docs/source/tools.tools.rst | 8 -- docs/source/tools.types.rst | 10 --- docs/source/tools.vtk_viewer.rst | 12 --- src/ogs5py/__init__.py | 10 ++- src/ogs5py/fileclasses/__init__.py | 4 +- src/ogs5py/fileclasses/base.py | 12 +-- src/ogs5py/fileclasses/gli/__init__.py | 5 +- src/ogs5py/fileclasses/gli/core.py | 2 +- src/ogs5py/fileclasses/gli/generator.py | 2 +- src/ogs5py/fileclasses/msh/__init__.py | 7 +- src/ogs5py/fileclasses/msh/core.py | 2 +- src/ogs5py/fileclasses/msh/generator.py | 2 +- src/ogs5py/ogs.py | 17 +---- src/ogs5py/reader/__init__.py | 2 +- src/ogs5py/tools/__init__.py | 14 ++-- src/ogs5py/tools/download.py | 4 +- src/ogs5py/tools/output.py | 21 +++++- src/ogs5py/tools/script.py | 6 +- src/ogs5py/tools/tools.py | 10 +-- src/ogs5py/tools/types.py | 75 +++++++++++++++++++ src/ogs5py/tools/vtk_viewer.py | 14 +++- 41 files changed, 183 insertions(+), 228 deletions(-) create mode 100644 docs/source/_static/custom.css create mode 100644 docs/source/_templates/autosummary/module.rst rename docs/source/{package.rst => api.rst} (54%) delete mode 100644 docs/source/fileclasses.base.rst delete mode 100644 docs/source/fileclasses.gli.generator.rst delete mode 100644 docs/source/fileclasses.gli.rst delete mode 100644 docs/source/fileclasses.msh.generator.rst delete mode 100644 docs/source/fileclasses.msh.rst delete mode 100644 docs/source/fileclasses.rst delete mode 100644 docs/source/reader.rst delete mode 100755 docs/source/tools.download.rst delete mode 100755 docs/source/tools.output.rst delete mode 100644 docs/source/tools.rst delete mode 100644 docs/source/tools.script.rst delete mode 100644 docs/source/tools.tools.rst delete mode 100644 docs/source/tools.types.rst delete mode 100755 docs/source/tools.vtk_viewer.rst diff --git a/.gitignore b/.gitignore index 3702c4f..6e82817 100644 --- a/.gitignore +++ b/.gitignore @@ -116,7 +116,7 @@ src/ogs5py/_version.py # generated docs docs/source/examples/ -docs/source/generated/ +docs/source/api/ # other settings .vscode/ diff --git a/LICENSE b/LICENSE index 16a02ab..ed38ae8 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2019 Sebastian Mueller +Copyright (c) 2023 Sebastian Mueller Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 7ec42f4..e4b85c2 100644 --- a/README.md +++ b/README.md @@ -178,7 +178,7 @@ You can contact us via . ## License -[MIT][gpl_link] © 2018-2022 (inspired by Falk Hesse and Miao Jing) +[MIT][gpl_link] © 2018-2023 (inspired by Falk Hesse and Miao Jing) This project is based on [OGSPY][ogspy_link]. diff --git a/docs/source/_static/custom.css b/docs/source/_static/custom.css new file mode 100644 index 0000000..e02ca17 --- /dev/null +++ b/docs/source/_static/custom.css @@ -0,0 +1,3 @@ +dl.py.property { + display: block !important; +} diff --git a/docs/source/_templates/autosummary/module.rst b/docs/source/_templates/autosummary/module.rst new file mode 100644 index 0000000..04aefe9 --- /dev/null +++ b/docs/source/_templates/autosummary/module.rst @@ -0,0 +1,9 @@ +{{ fullname | escape | underline}} + +.. currentmodule:: {{ fullname }} + +.. automodule:: {{ fullname }} + +.. raw:: latex + + \clearpage diff --git a/docs/source/_templates/layout.html b/docs/source/_templates/layout.html index 368174e..863fcc5 100644 --- a/docs/source/_templates/layout.html +++ b/docs/source/_templates/layout.html @@ -21,7 +21,7 @@

{% endblock %} diff --git a/docs/source/package.rst b/docs/source/api.rst similarity index 54% rename from docs/source/package.rst rename to docs/source/api.rst index ff054eb..9471d45 100644 --- a/docs/source/package.rst +++ b/docs/source/api.rst @@ -7,10 +7,3 @@ ogs5py API .. raw:: latex \clearpage - -.. toctree:: - :hidden: - - fileclasses.rst - reader.rst - tools.rst diff --git a/docs/source/conf.py b/docs/source/conf.py index 5ef5c6d..34743a2 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -49,7 +49,7 @@ def setup(app): "sphinx.ext.doctest", "sphinx.ext.intersphinx", "sphinx.ext.coverage", - "sphinx.ext.imgmath", + "sphinx.ext.mathjax", "sphinx.ext.ifconfig", "sphinx.ext.viewcode", "sphinx.ext.autosummary", @@ -69,7 +69,10 @@ def setup(app): # Notes in boxes napoleon_use_admonition_for_notes = True # Attributes like parameters -# napoleon_use_ivar = True +napoleon_use_ivar = True +# keep "Other Parameters" section +# https://github.com/sphinx-doc/sphinx/issues/10330 +napoleon_use_param = False # this is a nice class-doc layout numpydoc_show_class_members = True # class members have no separate file, so they are not in a toctree @@ -111,7 +114,7 @@ def setup(app): # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = "en" # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -143,14 +146,18 @@ def setup(app): # Toc options "collapse_navigation": False, "sticky_navigation": True, - "navigation_depth": 4, + "navigation_depth": 6, "includehidden": True, "titles_only": False, } # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -# html_static_path = ['_static'] +html_static_path = ["_static"] + +# These paths are either relative to html_static_path +# or fully qualified paths (eg. https://...) +html_css_files = ["custom.css"] # Custom sidebar templates, must be a dictionary that maps document names # to template names. @@ -236,11 +243,8 @@ def setup(app): # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - "Python 3.6": ("https://docs.python.org/3.6", None), "Python": ("https://docs.python.org/", None), "NumPy": ("http://docs.scipy.org/doc/numpy/", None), "matplotlib": ("http://matplotlib.org", None), "Sphinx": ("http://www.sphinx-doc.org/en/stable/", None), - # "hankel": ("https://hankel.readthedocs.io/en/latest/", None), - # "emcee": ("http://dfm.io/emcee/current/", None), } diff --git a/docs/source/contents.rst b/docs/source/contents.rst index afd0d9b..24d389a 100644 --- a/docs/source/contents.rst +++ b/docs/source/contents.rst @@ -4,9 +4,9 @@ Contents .. toctree:: :includehidden: - :maxdepth: 3 + :maxdepth: 5 index tutorials - package + api changelog diff --git a/docs/source/fileclasses.base.rst b/docs/source/fileclasses.base.rst deleted file mode 100644 index bdff8c6..0000000 --- a/docs/source/fileclasses.base.rst +++ /dev/null @@ -1,8 +0,0 @@ -ogs5py.fileclasses.base -======================= - -.. automodule:: ogs5py.fileclasses.base - -.. raw:: latex - - \clearpage \ No newline at end of file diff --git a/docs/source/fileclasses.gli.generator.rst b/docs/source/fileclasses.gli.generator.rst deleted file mode 100644 index 5dc5ecf..0000000 --- a/docs/source/fileclasses.gli.generator.rst +++ /dev/null @@ -1,8 +0,0 @@ -ogs5py.fileclasses.gli.generator -================================ - -.. automodule:: ogs5py.fileclasses.gli.generator - -.. raw:: latex - - \clearpage diff --git a/docs/source/fileclasses.gli.rst b/docs/source/fileclasses.gli.rst deleted file mode 100644 index e9d3224..0000000 --- a/docs/source/fileclasses.gli.rst +++ /dev/null @@ -1,13 +0,0 @@ -ogs5py.fileclasses.gli -====================== - -.. automodule:: ogs5py.fileclasses.gli - -.. raw:: latex - - \clearpage - -.. toctree:: - :hidden: - - fileclasses.gli.generator.rst diff --git a/docs/source/fileclasses.msh.generator.rst b/docs/source/fileclasses.msh.generator.rst deleted file mode 100644 index 49a8563..0000000 --- a/docs/source/fileclasses.msh.generator.rst +++ /dev/null @@ -1,8 +0,0 @@ -ogs5py.fileclasses.msh.generator -================================ - -.. automodule:: ogs5py.fileclasses.msh.generator - -.. raw:: latex - - \clearpage diff --git a/docs/source/fileclasses.msh.rst b/docs/source/fileclasses.msh.rst deleted file mode 100644 index b7bd08f..0000000 --- a/docs/source/fileclasses.msh.rst +++ /dev/null @@ -1,13 +0,0 @@ -ogs5py.fileclasses.msh -====================== - -.. automodule:: ogs5py.fileclasses.msh - -.. raw:: latex - - \clearpage - -.. toctree:: - :hidden: - - fileclasses.msh.generator.rst diff --git a/docs/source/fileclasses.rst b/docs/source/fileclasses.rst deleted file mode 100644 index ddc2c9d..0000000 --- a/docs/source/fileclasses.rst +++ /dev/null @@ -1,15 +0,0 @@ -ogs5py.fileclasses -================== - -.. automodule:: ogs5py.fileclasses - -.. raw:: latex - - \clearpage - -.. toctree:: - :hidden: - - fileclasses.base.rst - fileclasses.gli.rst - fileclasses.msh.rst diff --git a/docs/source/reader.rst b/docs/source/reader.rst deleted file mode 100644 index 3df45c5..0000000 --- a/docs/source/reader.rst +++ /dev/null @@ -1,8 +0,0 @@ -ogs5py.reader -============= - -.. automodule:: ogs5py.reader - -.. raw:: latex - - \clearpage \ No newline at end of file diff --git a/docs/source/tools.download.rst b/docs/source/tools.download.rst deleted file mode 100755 index 1147c3a..0000000 --- a/docs/source/tools.download.rst +++ /dev/null @@ -1,8 +0,0 @@ -ogs5py.tools.download -===================== - -.. automodule:: ogs5py.tools.download - -.. raw:: latex - - \clearpage \ No newline at end of file diff --git a/docs/source/tools.output.rst b/docs/source/tools.output.rst deleted file mode 100755 index 3336ad0..0000000 --- a/docs/source/tools.output.rst +++ /dev/null @@ -1,12 +0,0 @@ -ogs5py.tools.output -=================== - -.. automodule:: ogs5py.tools.output - :members: - :undoc-members: - :inherited-members: - :show-inheritance: - -.. raw:: latex - - \clearpage \ No newline at end of file diff --git a/docs/source/tools.rst b/docs/source/tools.rst deleted file mode 100644 index d270225..0000000 --- a/docs/source/tools.rst +++ /dev/null @@ -1,18 +0,0 @@ -ogs5py.tools -============ - -.. automodule:: ogs5py.tools - -.. raw:: latex - - \clearpage - -.. toctree:: - :hidden: - - tools.tools.rst - tools.script.rst - tools.types.rst - tools.download.rst - tools.output.rst - tools.vtk_viewer.rst \ No newline at end of file diff --git a/docs/source/tools.script.rst b/docs/source/tools.script.rst deleted file mode 100644 index e040f02..0000000 --- a/docs/source/tools.script.rst +++ /dev/null @@ -1,8 +0,0 @@ -ogs5py.tools.script -=================== - -.. automodule:: ogs5py.tools.script - -.. raw:: latex - - \clearpage \ No newline at end of file diff --git a/docs/source/tools.tools.rst b/docs/source/tools.tools.rst deleted file mode 100644 index 777a3f3..0000000 --- a/docs/source/tools.tools.rst +++ /dev/null @@ -1,8 +0,0 @@ -ogs5py.tools.tools -================== - -.. automodule:: ogs5py.tools.tools - -.. raw:: latex - - \clearpage \ No newline at end of file diff --git a/docs/source/tools.types.rst b/docs/source/tools.types.rst deleted file mode 100644 index 75fb8af..0000000 --- a/docs/source/tools.types.rst +++ /dev/null @@ -1,10 +0,0 @@ -ogs5py.tools.types -================== - -.. automodule:: ogs5py.tools.types - :members: - :undoc-members: - -.. raw:: latex - - \clearpage \ No newline at end of file diff --git a/docs/source/tools.vtk_viewer.rst b/docs/source/tools.vtk_viewer.rst deleted file mode 100755 index e0a2620..0000000 --- a/docs/source/tools.vtk_viewer.rst +++ /dev/null @@ -1,12 +0,0 @@ -ogs5py.tools.vtk_viewer -======================= - -.. automodule:: ogs5py.tools.vtk_viewer - :members: - :undoc-members: - :inherited-members: - :show-inheritance: - -.. raw:: latex - - \clearpage \ No newline at end of file diff --git a/src/ogs5py/__init__.py b/src/ogs5py/__init__.py index 4c88fbd..da2a586 100644 --- a/src/ogs5py/__init__.py +++ b/src/ogs5py/__init__.py @@ -11,9 +11,11 @@ =========== .. autosummary:: - fileclasses - reader - tools + :toctree: api + + fileclasses + reader + tools Classes ======= @@ -23,7 +25,7 @@ Class to setup an ogs model .. autosummary:: - :toctree: generated + :toctree: api OGS diff --git a/src/ogs5py/fileclasses/__init__.py b/src/ogs5py/fileclasses/__init__.py index a78502f..7489289 100644 --- a/src/ogs5py/fileclasses/__init__.py +++ b/src/ogs5py/fileclasses/__init__.py @@ -8,6 +8,8 @@ ^^^^^^^^^^^ .. autosummary:: + :toctree: + base gli msh @@ -17,7 +19,7 @@ Classes for all OGS5 Files .. autosummary:: - :toctree: generated + :toctree: ASC BC diff --git a/src/ogs5py/fileclasses/base.py b/src/ogs5py/fileclasses/base.py index 7182d43..aad4802 100644 --- a/src/ogs5py/fileclasses/base.py +++ b/src/ogs5py/fileclasses/base.py @@ -8,7 +8,7 @@ ^^^^^^^^^^^^ .. autosummary:: - :toctree: generated + :toctree: File LineFile @@ -500,7 +500,7 @@ def get_block(self, index=None, as_dict=True): return main_key, sub_key, cont def update_block(self, index=None, main_key=None, **block): - """ + r""" Update a Block from the actual file. Parameters @@ -536,7 +536,7 @@ def update_block(self, index=None, main_key=None, **block): self.add_block(index=index, **upd_block) def add_block(self, index=None, main_key=None, **block): - """ + r""" Add a new Block to the actual file. Keywords are the sub keywords of the actual file type: @@ -617,7 +617,7 @@ def add_block(self, index=None, main_key=None, **block): self.add_multi_content(block[skey], main_index=index) def append_to_block(self, index=None, **block): - """ + r""" Append data to an existing Block in the actual file. Keywords are the sub keywords of the actual file type: @@ -1125,7 +1125,7 @@ def __repr__(self): class MultiFile: - """ + r""" Class holding mulitple files of the same type. Parameters @@ -1182,7 +1182,7 @@ def __getattr__(self, attr): return None def add(self, *args, **kwargs): - """Add a new instance of the base class with *args and **kwargs.""" + r"""Add a new instance of the base class with given args and kwargs.""" kw = copy.deepcopy(self.standard) kw.update(kwargs) self.append(self._base(*args, **kw)) diff --git a/src/ogs5py/fileclasses/gli/__init__.py b/src/ogs5py/fileclasses/gli/__init__.py index 2012dd9..0d5afd7 100644 --- a/src/ogs5py/fileclasses/gli/__init__.py +++ b/src/ogs5py/fileclasses/gli/__init__.py @@ -9,13 +9,16 @@ The generators can be called with :any:`GLI.generate` .. autosummary:: + :toctree: + generator File Classes ^^^^^^^^^^^^ +.. currentmodule:: ogs5py.fileclasses + .. autosummary:: - :toctree: generated GLI GLIext diff --git a/src/ogs5py/fileclasses/gli/core.py b/src/ogs5py/fileclasses/gli/core.py index 2b5f4ac..fede9ff 100644 --- a/src/ogs5py/fileclasses/gli/core.py +++ b/src/ogs5py/fileclasses/gli/core.py @@ -481,7 +481,7 @@ def generate(self, generator="rectangular", **kwargs): """ Use a gli-generator from the generator module. - See: :any:`ogs5py.fileclasses.gli.generator` + See: :py:mod:`ogs5py.fileclasses.gli.generator` Parameters ---------- diff --git a/src/ogs5py/fileclasses/gli/generator.py b/src/ogs5py/fileclasses/gli/generator.py index af5de8d..6bced53 100644 --- a/src/ogs5py/fileclasses/gli/generator.py +++ b/src/ogs5py/fileclasses/gli/generator.py @@ -9,7 +9,7 @@ These generators can be called with :any:`GLI.generate` .. autosummary:: - :toctree: generated + :toctree: rectangular radial diff --git a/src/ogs5py/fileclasses/msh/__init__.py b/src/ogs5py/fileclasses/msh/__init__.py index 2dd0baa..36b7dbb 100644 --- a/src/ogs5py/fileclasses/msh/__init__.py +++ b/src/ogs5py/fileclasses/msh/__init__.py @@ -6,16 +6,19 @@ Subpackages ^^^^^^^^^^^ -The generators can be called with :any:`MSH.generate` +The generators can be called with :py:meth:`~ogs5py.fileclasses.MSH.generate` .. autosummary:: + :toctree: + generator File Class ^^^^^^^^^^ +.. currentmodule:: ogs5py.fileclasses + .. autosummary:: - :toctree: generated MSH diff --git a/src/ogs5py/fileclasses/msh/core.py b/src/ogs5py/fileclasses/msh/core.py index 17ef394..cdb3e61 100644 --- a/src/ogs5py/fileclasses/msh/core.py +++ b/src/ogs5py/fileclasses/msh/core.py @@ -1000,7 +1000,7 @@ def generate(self, generator="rectangular", **kwargs): """ Use a mesh-generator from the generator module. - See: :any:`ogs5py.fileclasses.msh.generator` + See: :py:mod:`ogs5py.fileclasses.msh.generator` Parameters ---------- diff --git a/src/ogs5py/fileclasses/msh/generator.py b/src/ogs5py/fileclasses/msh/generator.py index db19e24..8f96825 100644 --- a/src/ogs5py/fileclasses/msh/generator.py +++ b/src/ogs5py/fileclasses/msh/generator.py @@ -9,7 +9,7 @@ These generators can be called with :any:`MSH.generate` .. autosummary:: - :toctree: generated + :toctree: rectangular radial diff --git a/src/ogs5py/ogs.py b/src/ogs5py/ogs.py index cc27212..e7efe34 100644 --- a/src/ogs5py/ogs.py +++ b/src/ogs5py/ogs.py @@ -1,18 +1,5 @@ # -*- coding: utf-8 -*- -""" -Base Class for an OGS5 run. - -.. currentmodule:: ogs5py.ogs - -OGS Class -^^^^^^^^^ - -.. autosummary:: - - OGS - ----- -""" +"""Base Class for an OGS5 run.""" import glob import os import shutil @@ -1022,7 +1009,7 @@ def output_files(self, pcs=None, typ="VTK", element=None, output_dir=None): specify the PCS type that should be collected Possible values are: - - None/"" (no PCS_TYPE specified in *.out) + - None/"" (no PCS_TYPE specified in \*.out) - "NO_PCS" - "GROUNDWATER_FLOW" - "LIQUID_FLOW" diff --git a/src/ogs5py/reader/__init__.py b/src/ogs5py/reader/__init__.py index 038009d..c2fac3d 100644 --- a/src/ogs5py/reader/__init__.py +++ b/src/ogs5py/reader/__init__.py @@ -8,7 +8,7 @@ ^^^^^^ .. autosummary:: - :toctree: generated + :toctree: readvtk readpvd diff --git a/src/ogs5py/tools/__init__.py b/src/ogs5py/tools/__init__.py index 6204d43..332e633 100644 --- a/src/ogs5py/tools/__init__.py +++ b/src/ogs5py/tools/__init__.py @@ -8,10 +8,12 @@ ^^^^^^^^^^^ .. autosummary:: - tools - script - download - output - vtk_viewer - types + :toctree: + + tools + script + download + output + vtk_viewer + types """ diff --git a/src/ogs5py/tools/download.py b/src/ogs5py/tools/download.py index ba212d0..d5e65f1 100755 --- a/src/ogs5py/tools/download.py +++ b/src/ogs5py/tools/download.py @@ -10,14 +10,12 @@ A downloading routine to get the OSG5 executable. .. autosummary:: - :toctree: generated + :toctree: download_ogs add_exe reset_download OGS5PY_CONFIG - ----- """ import os import platform diff --git a/src/ogs5py/tools/output.py b/src/ogs5py/tools/output.py index 08d514c..073abaa 100755 --- a/src/ogs5py/tools/output.py +++ b/src/ogs5py/tools/output.py @@ -1,5 +1,20 @@ # -*- coding: utf-8 -*- -"""Tools for ogs5py output files (independent from VTK package).""" +""" +Tools for ogs5py output files (independent from VTK package). + +.. currentmodule:: ogs5py.tools.output + +Helpers +^^^^^^^ + +.. autosummary:: + :toctree: + + get_output_files + readpvd_single + split_ply_path + split_pnt_path +""" import glob import os import re @@ -288,7 +303,7 @@ def readpvd_single(infile): def get_output_files(task_root, task_id, pcs=None, typ="VTK", element=None): - """ + r""" Get a list of output file paths. Parameters @@ -301,7 +316,7 @@ def get_output_files(task_root, task_id, pcs=None, typ="VTK", element=None): specify the PCS type that should be collected Possible values are: - - None/"" (no PCS_TYPE specified in *.out) + - None/"" (no PCS_TYPE specified in \*.out) - "NO_PCS" - "GROUNDWATER_FLOW" - "LIQUID_FLOW" diff --git a/src/ogs5py/tools/script.py b/src/ogs5py/tools/script.py index 7946c42..587df1a 100644 --- a/src/ogs5py/tools/script.py +++ b/src/ogs5py/tools/script.py @@ -8,7 +8,7 @@ ^^^^^^^^^ .. autosummary:: - :toctree: generated + :toctree: gen_script @@ -16,7 +16,7 @@ ^^^^^^^ .. autosummary:: - :toctree: generated + :toctree: formater get_line @@ -24,8 +24,6 @@ add_block_file add_load_file add_list_file - ----- """ import os import shutil diff --git a/src/ogs5py/tools/tools.py b/src/ogs5py/tools/tools.py index 036f614..350b4c4 100644 --- a/src/ogs5py/tools/tools.py +++ b/src/ogs5py/tools/tools.py @@ -8,7 +8,7 @@ ^^^^^^^ .. autosummary:: - :toctree: generated + :toctree: Output @@ -16,7 +16,7 @@ ^^^^^^^^^^^^ .. autosummary:: - :toctree: generated + :toctree: search_mkey uncomment @@ -37,7 +37,7 @@ ^^^^^^^^^^^^^^^ .. autosummary:: - :toctree: generated + :toctree: rotate_points shift_points @@ -51,15 +51,13 @@ ^^^^^^^^^^^ .. autosummary:: - :toctree: generated + :toctree: unique_rows replace by_id specialrange generate_time - ----- """ import ast import collections diff --git a/src/ogs5py/tools/types.py b/src/ogs5py/tools/types.py index 263c4d2..07baa72 100644 --- a/src/ogs5py/tools/types.py +++ b/src/ogs5py/tools/types.py @@ -54,6 +54,81 @@ OGS_EXT MULTI_FILES +---- + +.. autodata:: EMPTY_GLI + +.. autodata:: GLI_KEYS + +.. autodata:: GLI_KEY_LIST + +.. autodata:: EMPTY_PLY + +.. autodata:: PLY_KEYS + +.. autodata:: PLY_KEY_LIST + +.. autodata:: PLY_TYPES + +.. autodata:: EMPTY_SRF + +.. autodata:: SRF_KEYS + +.. autodata:: SRF_KEY_LIST + +.. autodata:: SRF_TYPES + +.. autodata:: EMPTY_VOL + +.. autodata:: VOL_KEYS + +.. autodata:: VOL_KEY_LIST + +.. autodata:: VOL_TYPES + +.. autodata:: EMPTY_MSH + +.. autodata:: MESH_KEYS + +.. autodata:: MESH_DATA_KEYS + +.. autodata:: ELEM_1D + +.. autodata:: ELEM_2D + +.. autodata:: ELEM_3D + +.. autodata:: ELEM_DIM + +.. autodata:: ELEM_NAMES + +.. autodata:: ELEM_TYP + +.. autodata:: ELEM_TYP1D + +.. autodata:: ELEM_TYP2D + +.. autodata:: ELEM_TYP3D + +.. autodata:: VTK_TYP + +.. autodata:: MESHIO_NAMES + +.. autodata:: NODE_NO + +.. autodata:: STRTYPE + +.. autodata:: PCS_TYP + +.. autodata:: PCS_EXT + +.. autodata:: PRIM_VAR + +.. autodata:: PRIM_VAR_BY_PCS + +.. autodata:: OGS_EXT + +.. autodata:: MULTI_FILES """ import numpy as np diff --git a/src/ogs5py/tools/vtk_viewer.py b/src/ogs5py/tools/vtk_viewer.py index 64937ac..6183442 100755 --- a/src/ogs5py/tools/vtk_viewer.py +++ b/src/ogs5py/tools/vtk_viewer.py @@ -1,5 +1,17 @@ # -*- coding: utf-8 -*- -"""Viewer for a vtk file.""" +""" +Viewer for a vtk file. + +.. currentmodule:: ogs5py.tools.vtk_viewer + +Viewer +^^^^^^ + +.. autosummary:: + :toctree: + + show_vtk +""" # import os # os.environ["QT_API"] = "pyqt" # os.environ["ETS_TOOLKIT"] = "qt4" From 130dfaddc6f3eadd7f7af38c38da8663faff1d40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20M=C3=BCller?= Date: Sat, 15 Apr 2023 15:17:40 +0200 Subject: [PATCH 10/10] update changelog --- CHANGELOG.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 53d8b51..0a9fd96 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,21 @@ All notable changes to **ogs5py** will be documented in this file. +## [1.3.0] - 2023-04 + +See [#18](https://github.com/GeoStat-Framework/ogs5py/pull/18) + +### Enhancements +- move to `src/` base package structure +- use [hatchling](https://pypi.org/project/hatchling/) as build backend +- drop py36 support +- added archive support +- simplify documentation + +### Bugfixes +- remove usage of deprecated `np.int` + + ## [1.2.2] - 2022-05-25 ### Bugfixes @@ -185,7 +200,8 @@ All notable changes to **ogs5py** will be documented in this file. First release of ogs5py. -[Unreleased]: https://github.com/GeoStat-Framework/ogs5py/compare/v1.2.2...HEAD +[Unreleased]: https://github.com/GeoStat-Framework/ogs5py/compare/v1.3.0...HEAD +[1.3.0]: https://github.com/GeoStat-Framework/ogs5py/compare/v1.2.2...v1.3.0 [1.2.2]: https://github.com/GeoStat-Framework/ogs5py/compare/v1.2.1...v1.2.2 [1.2.1]: https://github.com/GeoStat-Framework/ogs5py/compare/v1.2.0...v1.2.1 [1.2.0]: https://github.com/GeoStat-Framework/ogs5py/compare/v1.1.1...v1.2.0