Metadata-Version: 2.4
Name: semeio
Version: 3.2.1
Summary: Forward models and workflows for Ert.
Author-email: Equinor ASA <fg_sib-scout@equinor.com>
License-Expression: GPL-3.0-or-later
Project-URL: repository, https://github.com/equinor/semeio
Classifier: Environment :: Plugins
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cvxpy
Requires-Dist: ert>=21.1.0b0
Requires-Dist: fmu-ensemble>1.6.5
Requires-Dist: numpy
Requires-Dist: pandas>=2
Requires-Dist: pydantic>=2.9
Requires-Dist: pyscal>=0.4.0
Requires-Dist: resdata
Requires-Dist: scikit-learn
Requires-Dist: scipy
Requires-Dist: segyio
Requires-Dist: xlrd
Requires-Dist: xtgeo>=2.15
Requires-Dist: seaborn
Requires-Dist: probabilit>=0.4.1
Requires-Dist: resfo-utilities>=0.1.1
Provides-Extra: test
Requires-Dist: hypothesis; extra == "test"
Requires-Dist: odfpy; extra == "test"
Requires-Dist: oil_reservoir_synthesizer; extra == "test"
Requires-Dist: openpyxl; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-console-scripts; extra == "test"
Requires-Dist: pytest-snapshot; extra == "test"
Requires-Dist: pytest-xdist; extra == "test"
Requires-Dist: rstcheck-core; extra == "test"
Requires-Dist: xlwt; extra == "test"
Provides-Extra: style
Requires-Dist: pre-commit; extra == "style"
Provides-Extra: types
Requires-Dist: mypy; extra == "types"
Requires-Dist: pandas-stubs; extra == "types"
Requires-Dist: types-PyYAML; extra == "types"
Requires-Dist: types-openpyxl; extra == "types"
Requires-Dist: types-setuptools; extra == "types"
Requires-Dist: types-seaborn; extra == "types"
Dynamic: license-file

[![PyPI version](https://badge.fury.io/py/semeio.svg)](https://badge.fury.io/py/semeio)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/semeio)](https://img.shields.io/pypi/pyversions/semeio)
[![Actions Status](https://github.com/equinor/semeio/workflows/CI/badge.svg)](https://github.com/equinor/semeio/actions?query=workflow=CI)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)

# semeio

Semeio is a collection of forward models and workflows used in [ERT](https://github.com/equinor/ert). These are
exposing end points which is considered the API of semeio. If there are submodules that can be applied
more generally, or have use outside these forward models and workflows, please create an issue and it can be exposed in
the API.

# Installation

Semeio is available on [pypi](https://pypi.org/project/semeio/) and can be installed using `pip install semeio`.

```sh
# Install
pip install semeio
```

# Usage

Once installed semeio will automatically register its workflows and forward models with
[ERT](https://github.com/equinor/ert). Through the plugin hooks it will also add its own documentation to the [ERT](https://github.com/equinor/ert)
documentation. See the [ERT](https://github.com/equinor/ert) documentation for examples on
how to run workflows and forward models, and build the [ERT](https://github.com/equinor/ert) documentation to get
documentation for the workflows and forward models.

## Developing

We use uv to have one synchronized development environment for all packages.
See [installing uv](https://docs.astral.sh/uv/getting-started/installation/). We
recommend installing uv using your system's package manager, or into a small
dedicated virtual environment.

Once uv is installed, you can get a development environment by running:

```sh
git clone https://github.com/equinor/semeio
cd semeio
uv sync --all-extras
```

## Run tests
To run the full test suite, do:

```sh
uv run pytest tests
```

[pre-commit](https://pre-commit.com/) is used to comply with the formatting standards.
The complete formatting tests can be run with:

```sh
uv run pre-commit run --all-files
```

Formatting use `ruff`, See `.pre-commit-config.yaml` for the
complete steps.

[pre-commit](https://pre-commit.com/) can also provide git hooks to run on every commit
to avoid committing with formatting errors. This will only run on the diff so is quite fast.
To configure this, run:

```sh
uv run pre-commit install
```

After this the hook will run on every commit.

If you would like to remove the hooks, run:

```sh
uv run pre-commit uninstall
```
