Metadata-Version: 2.2
Name: ogstools
Version: 0.6.0
Summary: A collection of Python tools aimed at evolving into a modeling toolchain around OpenGeoSys.
Author-email: OpenGeoSys Community <info@opengeosys.org>
License: BSD-3-Clause
Project-URL: Documentation, https://ogstools.opengeosys.org
Project-URL: Bug Tracker, https://discourse.opengeosys.org
Project-URL: Source Code, https://gitlab.opengeosys.org/ogs/tools/ogstools
Keywords: opengeosys,geoscience,subsurface modeling,hydrogeology,numerical simulation,finite element method,groundwater flow,geochemistry,geotechnical engineering,porous media,contaminant transport,mesh generation,data visualization,scientific computing,open-source software
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: gmsh>=4.12.0
Requires-Dist: h5py>=3.8.0
Requires-Dist: jupytext>=1.14.0
Requires-Dist: matplotlib>=3.7.1
Requires-Dist: meshio>=5.3.0
Requires-Dist: pyvista[all]>=0.40.1
Requires-Dist: numpy>=1.20.0
Requires-Dist: scipy>=1.10.1
Requires-Dist: Pint>=0.22
Requires-Dist: papermill>=2.4.0
Requires-Dist: typeguard>=4.0.0
Requires-Dist: lxml>=4.6.0
Requires-Dist: pandas>=2.2.3
Provides-Extra: pinned
Requires-Dist: aiohappyeyeballs==2.6.1; extra == "pinned"
Requires-Dist: aiohttp==3.11.14; extra == "pinned"
Requires-Dist: aiosignal==1.3.2; extra == "pinned"
Requires-Dist: ansicolors==1.1.8; extra == "pinned"
Requires-Dist: anyio==4.9.0; extra == "pinned"
Requires-Dist: argon2-cffi==23.1.0; extra == "pinned"
Requires-Dist: argon2-cffi-bindings==21.2.0; extra == "pinned"
Requires-Dist: arrow==1.3.0; extra == "pinned"
Requires-Dist: asttokens==3.0.0; extra == "pinned"
Requires-Dist: attrs==25.3.0; extra == "pinned"
Requires-Dist: beautifulsoup4==4.13.3; extra == "pinned"
Requires-Dist: bleach==6.2.0; extra == "pinned"
Requires-Dist: certifi==2025.1.31; extra == "pinned"
Requires-Dist: cffi==1.17.1; extra == "pinned"
Requires-Dist: charset-normalizer==3.4.1; extra == "pinned"
Requires-Dist: click==8.1.8; extra == "pinned"
Requires-Dist: cmocean==4.0.3; extra == "pinned"
Requires-Dist: colorcet==3.1.0; extra == "pinned"
Requires-Dist: comm==0.2.2; extra == "pinned"
Requires-Dist: contourpy==1.3.1; extra == "pinned"
Requires-Dist: cycler==0.12.1; extra == "pinned"
Requires-Dist: decorator==5.2.1; extra == "pinned"
Requires-Dist: defusedxml==0.7.1; extra == "pinned"
Requires-Dist: entrypoints==0.4; extra == "pinned"
Requires-Dist: executing==2.2.0; extra == "pinned"
Requires-Dist: fastjsonschema==2.21.1; extra == "pinned"
Requires-Dist: flexcache==0.3; extra == "pinned"
Requires-Dist: flexparser==0.4; extra == "pinned"
Requires-Dist: fonttools==4.56.0; extra == "pinned"
Requires-Dist: fqdn==1.5.1; extra == "pinned"
Requires-Dist: frozenlist==1.5.0; extra == "pinned"
Requires-Dist: gmsh==4.13.1; extra == "pinned"
Requires-Dist: h5py==3.13.0; extra == "pinned"
Requires-Dist: idna==3.10; extra == "pinned"
Requires-Dist: imageio==2.37.0; extra == "pinned"
Requires-Dist: ipython==8.34.0; extra == "pinned"
Requires-Dist: ipython_pygments_lexers==1.1.1; extra == "pinned"
Requires-Dist: ipywidgets==8.1.5; extra == "pinned"
Requires-Dist: isoduration==20.11.0; extra == "pinned"
Requires-Dist: jedi==0.19.2; extra == "pinned"
Requires-Dist: Jinja2==3.1.6; extra == "pinned"
Requires-Dist: jsonpointer==3.0.0; extra == "pinned"
Requires-Dist: jsonschema==4.23.0; extra == "pinned"
Requires-Dist: jsonschema-specifications==2024.10.1; extra == "pinned"
Requires-Dist: jupyter-events==0.12.0; extra == "pinned"
Requires-Dist: jupyter_client==8.6.3; extra == "pinned"
Requires-Dist: jupyter_core==5.7.2; extra == "pinned"
Requires-Dist: jupyter_server==2.15.0; extra == "pinned"
Requires-Dist: jupyter_server_proxy==4.4.0; extra == "pinned"
Requires-Dist: jupyter_server_terminals==0.5.3; extra == "pinned"
Requires-Dist: jupyterlab_pygments==0.3.0; extra == "pinned"
Requires-Dist: jupyterlab_widgets==3.0.13; extra == "pinned"
Requires-Dist: jupytext==1.16.7; extra == "pinned"
Requires-Dist: kiwisolver==1.4.8; extra == "pinned"
Requires-Dist: lxml==5.3.1; extra == "pinned"
Requires-Dist: markdown-it-py==3.0.0; extra == "pinned"
Requires-Dist: MarkupSafe==3.0.2; extra == "pinned"
Requires-Dist: matplotlib==3.10.1; extra == "pinned"
Requires-Dist: matplotlib-inline==0.1.7; extra == "pinned"
Requires-Dist: mdit-py-plugins==0.4.2; extra == "pinned"
Requires-Dist: mdurl==0.1.2; extra == "pinned"
Requires-Dist: meshio==5.3.5; extra == "pinned"
Requires-Dist: mistune==3.1.2; extra == "pinned"
Requires-Dist: more-itertools==10.6.0; extra == "pinned"
Requires-Dist: msgpack==1.1.0; extra == "pinned"
Requires-Dist: multidict==6.2.0; extra == "pinned"
Requires-Dist: nbclient==0.10.2; extra == "pinned"
Requires-Dist: nbconvert==7.16.6; extra == "pinned"
Requires-Dist: nbformat==5.10.4; extra == "pinned"
Requires-Dist: nest-asyncio==1.6.0; extra == "pinned"
Requires-Dist: numpy==2.2.4; extra == "pinned"
Requires-Dist: overrides==7.7.0; extra == "pinned"
Requires-Dist: packaging==24.2; extra == "pinned"
Requires-Dist: pandas==2.2.3; extra == "pinned"
Requires-Dist: pandocfilters==1.5.1; extra == "pinned"
Requires-Dist: papermill==2.6.0; extra == "pinned"
Requires-Dist: parso==0.8.4; extra == "pinned"
Requires-Dist: pexpect==4.9.0; extra == "pinned"
Requires-Dist: pillow==11.1.0; extra == "pinned"
Requires-Dist: Pint==0.24.4; extra == "pinned"
Requires-Dist: platformdirs==4.3.6; extra == "pinned"
Requires-Dist: pooch==1.8.2; extra == "pinned"
Requires-Dist: prometheus_client==0.21.1; extra == "pinned"
Requires-Dist: prompt_toolkit==3.0.50; extra == "pinned"
Requires-Dist: propcache==0.3.0; extra == "pinned"
Requires-Dist: ptyprocess==0.7.0; extra == "pinned"
Requires-Dist: pure_eval==0.2.3; extra == "pinned"
Requires-Dist: pycparser==2.22; extra == "pinned"
Requires-Dist: Pygments==2.19.1; extra == "pinned"
Requires-Dist: pyparsing==3.2.1; extra == "pinned"
Requires-Dist: python-dateutil==2.9.0.post0; extra == "pinned"
Requires-Dist: python-json-logger==3.3.0; extra == "pinned"
Requires-Dist: pytz==2025.1; extra == "pinned"
Requires-Dist: pyvista==0.44.1; extra == "pinned"
Requires-Dist: PyYAML==6.0.2; extra == "pinned"
Requires-Dist: pyzmq==26.3.0; extra == "pinned"
Requires-Dist: referencing==0.36.2; extra == "pinned"
Requires-Dist: requests==2.32.3; extra == "pinned"
Requires-Dist: rfc3339-validator==0.1.4; extra == "pinned"
Requires-Dist: rfc3986-validator==0.1.1; extra == "pinned"
Requires-Dist: rich==13.9.4; extra == "pinned"
Requires-Dist: rpds-py==0.23.1; extra == "pinned"
Requires-Dist: scipy==1.15.2; extra == "pinned"
Requires-Dist: scooby==0.10.0; extra == "pinned"
Requires-Dist: Send2Trash==1.8.3; extra == "pinned"
Requires-Dist: simpervisor==1.0.0; extra == "pinned"
Requires-Dist: six==1.17.0; extra == "pinned"
Requires-Dist: sniffio==1.3.1; extra == "pinned"
Requires-Dist: soupsieve==2.6; extra == "pinned"
Requires-Dist: stack-data==0.6.3; extra == "pinned"
Requires-Dist: tenacity==9.0.0; extra == "pinned"
Requires-Dist: terminado==0.18.1; extra == "pinned"
Requires-Dist: tinycss2==1.4.0; extra == "pinned"
Requires-Dist: tornado==6.4.2; extra == "pinned"
Requires-Dist: tqdm==4.67.1; extra == "pinned"
Requires-Dist: traitlets==5.14.3; extra == "pinned"
Requires-Dist: trame==3.8.1; extra == "pinned"
Requires-Dist: trame-client==3.6.0; extra == "pinned"
Requires-Dist: trame-server==3.4.0; extra == "pinned"
Requires-Dist: trame-vtk==2.8.15; extra == "pinned"
Requires-Dist: trame-vuetify==2.8.1; extra == "pinned"
Requires-Dist: typeguard==4.4.2; extra == "pinned"
Requires-Dist: types-python-dateutil==2.9.0.20241206; extra == "pinned"
Requires-Dist: typing_extensions==4.12.2; extra == "pinned"
Requires-Dist: tzdata==2025.1; extra == "pinned"
Requires-Dist: uri-template==1.3.0; extra == "pinned"
Requires-Dist: urllib3==2.3.0; extra == "pinned"
Requires-Dist: vtk==9.3.1; python_version <= "3.12" and extra == "pinned"
Requires-Dist: vtk==9.4.1; python_version == "3.13" and extra == "pinned"
Requires-Dist: wcwidth==0.2.13; extra == "pinned"
Requires-Dist: webcolors==24.11.1; extra == "pinned"
Requires-Dist: webencodings==0.5.1; extra == "pinned"
Requires-Dist: websocket-client==1.8.0; extra == "pinned"
Requires-Dist: widgetsnbextension==4.0.13; extra == "pinned"
Requires-Dist: wslink==2.3.2; extra == "pinned"
Requires-Dist: yarl==1.18.3; extra == "pinned"
Provides-Extra: dev
Requires-Dist: pre-commit>=2.20; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: black==24.4.0; extra == "dev"
Provides-Extra: test
Requires-Dist: coverage; extra == "test"
Requires-Dist: parameterized; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-xdist; extra == "test"
Requires-Dist: pytest-dependency; extra == "test"
Provides-Extra: docs
Requires-Dist: livereload; extra == "docs"
Requires-Dist: myst-parser; extra == "docs"
Requires-Dist: myst_nb; extra == "docs"
Requires-Dist: pydata-sphinx-theme; extra == "docs"
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-argparse<0.5.0,>=0.2.5; extra == "docs"
Requires-Dist: sphinx-design; extra == "docs"
Requires-Dist: sphinx_gallery; extra == "docs"
Requires-Dist: sphinxcontrib-apidoc; extra == "docs"
Requires-Dist: sphinxcontrib-mermaid; extra == "docs"
Requires-Dist: sphinxcontrib-programoutput; extra == "docs"
Requires-Dist: trame-vtk>=2.6.0; extra == "docs"
Provides-Extra: feflow
Requires-Dist: ifm_contrib>=0.2.4; extra == "feflow"
Provides-Extra: ogs
Requires-Dist: ogs>=6.5.4; extra == "ogs"

![OGSTools](https://ogstools.opengeosys.org/stable/_static/ogstools.png "Supporting complex workflows - from preprocessing to simulation to postprocessing")

is a:

- Python library for streamlined usage of [OpenGeoSys](https://www.opengeosys.org) that aims to enable [OpenGeoSys](https://www.opengeosys.org) users to harness the full potential of Python's extensive ecosystem.
- set of interconnected modules for pre- and postprocessing of simulations with [OpenGeoSys](https://www.opengeosys.org),
- valuable resource that includes documentation, Jupyter notebooks, and workflows for guidance and reference.

# Overview

- **Website:** <https://www.opengeosys.org>
- **Documentation:** <https://ogstools.opengeosys.org>
- **Source code:** <https://gitlab.opengeosys.org/ogs/tools/ogstools>
- **Contributing:** <https://ogstools.opengeosys.org/stable/development/index.html>
- **Bug reports:** <https://discourse.opengeosys.org>

# Installation

Install the latest version of ogstools:

```bash
pip install ogstools
```

For further details see the [User Guide](https://ogstools.opengeosys.org/stable/user-guide/index.html).

# Getting started

For first steps, please take a look at our [examples](https://ogstools.opengeosys.org/stable/auto_examples/index.html).

# Contribution

Please report bugs on [Discourse](https://discourse.opengeosys.org) or fork the repository on our [GitLab](https://gitlab.opengeosys.org/ogs/tools/ogstools) and create a merge request. We also welcome contributions in the form of merge requests and are here to assist in ensuring that the code passes all quality checks. We recommend starting with the [latest version of the Developer Guide](https://ogs.ogs.xyz/tools/ogstools/development/index.html) as your initial point of reference.

You may also contribute by [donating](https://gitlab.opengeosys.org/ogs/tools/ogstools/-/blob/main/donation.md) your existing code snippets.

# Motivation

To gain a deeper insight into the rationale behind the development of this Python library, find a comprehensive motivation section available [here](https://gitlab.opengeosys.org/ogs/tools/ogstools/-/blob/main/docs/user-guide/introduction/motivation.md).

# Related projects

- [ogs](https://pypi.org/project/ogs)
- [ogs6py](https://pypi.org/project/ogs6py)
- [VTUInterface](https://pypi.org/project/VTUinterface)

# License

`ogstools` is distributed under the Modified BSD License. See the `LICENSE`-file for the license text.
