From 1751b9eac9a4377bab9159718acd4b743daed6fe Mon Sep 17 00:00:00 2001 From: Paloma Martinez <104762252+paloma-martinez@users.noreply.github.com> Date: Thu, 2 Oct 2025 08:49:17 +0200 Subject: [PATCH 1/3] DBG --- README.md | 118 +++++++++++++++++++++++------------------------------- 1 file changed, 50 insertions(+), 68 deletions(-) diff --git a/README.md b/README.md index be7caefaf..af7e9f3db 100644 --- a/README.md +++ b/README.md @@ -3,103 +3,86 @@ [![CI](https://github.com/GEOS-DEV/GEOS/actions/workflows/ci_tests.yml/badge.svg)](https://github.com/GEOS-DEV/geosPythonPackages/actions?query=branch%3Adevelop) [![docs](https://readthedocs.com/projects/geosx-geosx/badge/?version=latest)](https://geosx-geosx.readthedocs-hosted.com/projects/geosx-geospythonpackages/en/latest/) -Welcome to the GEOS Python Package Repository! -============================================== +Welcome to the GEOS Python Package Repository ! +=============================================== -This repository contains a set of python packages that are used alongside [GEOS](https://github.com/GEOS-DEV/GEOS). +The `geosPythonPackages` repository contains a set of python tools that are used alongside [GEOS](https://github.com/GEOS-DEV/GEOS). They include testing tools, pre- and post-processing filters and plugins, as well as diverse executables. You will find below a brief description of the different packages, please refer to the [Python Tools documentation](https://geosx-geosx.readthedocs-hosted.com/projects/geosx-geospythonpackages/en/latest/) for more details. -Package summary ---------------- +Packages organization +--------------------- -**WARNING: This repository is currently under refactoring to improve package organization, maintainability, and dependency management. The following describes the final package organisation. Some packages may still miss or contain code that will be move later.** +> [!WARNING] +> This repository is currently under refactoring to improve package organization, maintainability, and dependency management. The following describes the final package organisation. Some packages may still miss or contain code that will be moved later. -* `geos-ats` package includes tools for managing integrated tests for GEOS. -* `pygeos-tools` package adds a variety of tools for working with *pygeosx* objects. +* Data structures and processing packages + * `geos-ats`: tools for managing integrated tests for GEOS. + * `pygeos-tools`: variety of tools for working with *pygeosx* objects. + * `geos-utils`: basic utilities + * `geos-geomechanics`: geomechanics functions and data model + * `geos-mesh`: generic mesh processing tools + * `hdf5-wrapper`: wrapper to load hdf5 files + * `geos-xml-tools`: xml reader and writer dedicated to GEOS xml file +* User-oriented API packages + * `geos-processing`: GEOS pre- and post-processing VTK filters + * `xml-vtk`: conversion of GEOS xml to VTK objects and conversely +* Hands-on executables that can be used through command line + * `mesh-doctor`: GEOS pre-processing mesh validation application + * `geos-timehistory`: load and plot hdf5 files + * `geos-trame`: web interface to check, display objects, and edit GEOS xml file (see [Trame documentation](https://kitware.github.io/trame/guide/tutorial/)) +* Paraview plugins (see [Paraview](https://docs.paraview.org/) documentation) + * `geos-pv`: plugins that wrap GEOS Python tools -The next packages are dedicated to pre- and post-process GEOS inputs/outputs. - -The following packages contain basic utilities used by the other ones: - -* `geos-utils`: basic utilities -* `geos-geomecanics`: geomechanics functions and data model - - -The following packages define data models, vtk filters, and user-oriented API: - -* `geos-xml-tools`: xml reader and writer dedicated to GEOS xml file -* `hdf5-wrapper`: wrapper to load hdf5 files -* `geos-mesh`: general mesh processing tools -* `geos-prep`: GEOS pre-processing tools -* `geos-posp`: GEOS post-processing tools - - -The following packages define hands-on executables that can be used through the command line: - -* `mesh-doctor`: GEOS pre-processing application -* `time-history`: load and plot hdf5 files -* `geos-xml-viewer`: load GEOS xml file and display geometrical objects (mesh, boxes, wells) -* `geos-trame`: web interface to check, display objects, and edit GEOS xml file (see [Trame documentation](https://kitware.github.io/trame/guide/tutorial/)) - - -The following package defines [Paraview](https://docs.paraview.org/) plugins that wrap GEOS Python tools - -* `geos-pv` GEOS Python packages dependency tree (inter-dependency and main external dependencies) is the following: ``` ├── geos-ats ├── pygeos-tools +│ ├── geos-utils +│ ├── geos-xml-tools +│ ├── geos-mesh +│ ├── vtk +│ ├── h5py ├── geos-utils ├── geos-geomechanics │ ├── geos-utils -│ +├── geos-mesh +│ ├── geos-utils +│ ├── vtk ├── hdf5-wrapper │ ├── h5py -│ ├── geos-xml-tools -│ ├── lxml -│ -├── geos-mesh │ ├── geos-utils -│ ├── vtk -│ -├── geos-prep -│ ├── geos-mesh -│ ├── geos-xml-tools -│ -├── geos-posp +│ ├── lxml +| +├── geos-processing │ ├── geos-mesh │ ├── geos-geomechanics +├── xml-vtk +│ ├── geos-mesh +| ├── geos-xml-tools │ -├── time-history +├── geos-timehistory │ ├── hdf5-wrapper -│ ├── mesh-doctor │ ├── geos-prep │ ├── pyvista -│ ├── geos-trame │ ├── geos-xml-tools │ ├── geos-mesh │ ├── pyvista │ ├── trame │ -├── geos-xml-viewer -│ ├── geos-xml-tools -│ ├── geos-mesh -│ ├── pyvista -│ ├── geos-pv - ├── geos-prep - ├── geos-posp + ├── geos-processing + ├── geos-mesh + ├── geos-geomechanics + ├── geos-utils ├── geos-xml-tools ├── paraview ``` -See the [documentation](https://geosx-geosx.readthedocs-hosted.com/projects/geosx-geospythonpackages/en/latest/) for additional details about the packages and how to use them. - Installation ------------- @@ -112,8 +95,7 @@ Installation GEOS Python packages can be manually installed with pip using `python` >= 3.10. - To install any package, run the following commands from the geosPythonPackage directory: - + To install any package, run the following commands from the `geosPythonPackage` directory: ``` python -m venv .venv source .venv/bin/activate @@ -122,16 +104,16 @@ Installation ``` You can test installed package by running the commands: - ``` python -m pip install pytest python -m pytest ./ ``` - [!WARNING] + >[!WARNING] Due to local package conflicts with `pip install`, it is recommended to use the `--upgrade` option when building packages, or to use the script `install_packages.sh` located at the root of the repository. - [!NOTE] - geos-pv package cannot be build alone, but together with Paraview ([see Paraview compilation guide](https://gitlab.kitware.com/paraview/paraview/-/blob/master/Documentation/dev/build.md)). It is recommended to use Paraview v5.12+, which is based on python 3.10+. Alternatively, plugins from `geos-pv/src/geos/pv/plugins` can be manually loaded into Paraview ([see documentation](https://docs.paraview.org/en/latest/ReferenceManual/pythonProgrammableFilter.html#python-algorithm)). + + >[!NOTE] + `geos-pv` package cannot be build alone, but together with Paraview ([see Paraview compilation guide](https://gitlab.kitware.com/paraview/paraview/-/blob/master/Documentation/dev/build.md)). It is recommended to use Paraview v5.13+, which is based on python 3.10+. Alternatively, plugins from `geos-pv/src/geos/pv/plugins` can be manually loaded into Paraview ([see documentation](https://docs.paraview.org/en/latest/ReferenceManual/pythonProgrammableFilter.html#python-algorithm)). Contributions @@ -152,7 +134,7 @@ If you would like to contribute to GEOS Python packages, please respect the foll python -m ruff check --fix --config .ruff.toml ./ python -m yapf -r -i --style .style.yapf ./ ``` -4. Push the branch, open a new PR respecting naming [semantics](https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716), and add reviewers +1. Push the branch, open a new PR respecting naming [semantics](https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716), and add reviewers If you do not have the rights to push the code and open new PRs, consider opening a new issue to explain what you want to do and ask for the dev rights. @@ -181,7 +163,7 @@ dependencies = [ ``` [!IMPORTANT] -geos-pv dependencies are managed using a `requirements.txt` (together with the `setup.py`) file where all internal (and external if needed) dependencies are present. It ensures that internal dependency paths are correctly set when plugins are manually loaded into Paraview. +`geos-pv` dependencies are managed using a `requirements.txt` (together with the `setup.py`) file where all internal (and external if needed) dependencies are present. It ensures that internal dependency paths are correctly set when plugins are manually loaded into Paraview. Release ------- From 1b5deec5238e7cd2e144e01d73126a9454b1cad5 Mon Sep 17 00:00:00 2001 From: Paloma Martinez <104762252+paloma-martinez@users.noreply.github.com> Date: Wed, 29 Oct 2025 10:56:29 +0100 Subject: [PATCH 2/3] More modifications --- README.md | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index af7e9f3db..09526fb53 100644 --- a/README.md +++ b/README.md @@ -43,44 +43,52 @@ GEOS Python packages dependency tree (inter-dependency and main external depende │ ├── geos-xml-tools │ ├── geos-mesh │ ├── vtk -│ ├── h5py +│ └── h5py +| ├── geos-utils +| ├── geos-geomechanics -│ ├── geos-utils +│ └── geos-utils +| ├── geos-mesh │ ├── geos-utils -│ ├── vtk +│ └── vtk +| ├── hdf5-wrapper -│ ├── h5py +│ └── h5py +| ├── geos-xml-tools │ ├── geos-utils -│ ├── lxml +│ └── lxml | ├── geos-processing │ ├── geos-mesh -│ ├── geos-geomechanics +│ └── geos-geomechanics +| ├── xml-vtk │ ├── geos-mesh -| ├── geos-xml-tools +| └── geos-xml-tools │ ├── geos-timehistory -│ ├── hdf5-wrapper +│ └── hdf5-wrapper +| ├── mesh-doctor │ ├── geos-prep -│ ├── pyvista +│ └── pyvista +| ├── geos-trame │ ├── geos-xml-tools │ ├── geos-mesh │ ├── pyvista -│ ├── trame +│ └── trame │ -├── geos-pv +└── geos-pv ├── geos-processing ├── geos-mesh ├── geos-geomechanics ├── geos-utils ├── geos-xml-tools - ├── paraview + └── paraview ``` @@ -162,7 +170,7 @@ dependencies = [ ] ``` -[!IMPORTANT] +>[!IMPORTANT] `geos-pv` dependencies are managed using a `requirements.txt` (together with the `setup.py`) file where all internal (and external if needed) dependencies are present. It ensures that internal dependency paths are correctly set when plugins are manually loaded into Paraview. Release From 80a0ae75249157801fe280e4c6329ab8ae9634ad Mon Sep 17 00:00:00 2001 From: Paloma Martinez <104762252+paloma-martinez@users.noreply.github.com> Date: Thu, 30 Oct 2025 08:39:23 +0100 Subject: [PATCH 3/3] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 09526fb53..b0b3f9083 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ If you would like to contribute to GEOS Python packages, please respect the foll python -m ruff check --fix --config .ruff.toml ./ python -m yapf -r -i --style .style.yapf ./ ``` -1. Push the branch, open a new PR respecting naming [semantics](https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716), and add reviewers +4. Push the branch, open a new PR respecting naming [semantics](https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716), and add reviewers If you do not have the rights to push the code and open new PRs, consider opening a new issue to explain what you want to do and ask for the dev rights.