Skip to content

Latest commit

 

History

History
94 lines (69 loc) · 2.78 KB

README.md

File metadata and controls

94 lines (69 loc) · 2.78 KB

PyPI version Actions Status Code style: black License: GPL v3

semeio

Semeio is a collection of jobs and workflow jobs used in 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 jobs and workflows, please create an issue and it can be exposed in the API.

Installation and usage

Semeio is available on pypi and can be installed using pip install semeio.

# Install
pip install semeio

Usage

Once installed semeio will automatically register its workflows and forward model jobs with ERT. Through the plugin hooks it will also add its own documentation to the ERT documentation. See the ERT documentation for examples on how to run workflows and forward model jobs, and build the ERT documentation to get documentation for the workflows and forward model jobs.

Run tests

tox is used as the test facilitator, to run the full test suite:

pip install tox
tox

or to run it for a particular Python version (in this case Python 3.10):

pip install tox
tox -e py310

or to run it for a the current Python version:

pip install tox
tox -e py

pytest is used as the test runner, so for quicker iteration it is possible to run:

pytest

this requires that the test dependencies from test_requirements.txt are installed:

# Install test requirements
pip install -r test_requirements.txt

pre-commit is used to comply with the formatting standards. The complete formatting tests can be run with:

pip install tox
tox -e style

Formatting tests include black, flake8 and pylint, See .pre-commit-config.yaml for the complete steps.

pre-commit can also provide git hooks to run on every commit to avoid commiting with formatting errors. This will only run on the diff so is quite fast. To configure this, run:

pip install -r test_requirements.txt
pip install pre-commit
pre-commit install

After this the hook will run on every commit.

If you would like to remove the hooks, run:

pre-commit uninstall