Skip to main content

LithoVox-Stability

A stripped-down version of GEOLib that only supports the Deltares D-Stability .stix format, plus:

  • platform independent execution of the D-Stability console (Windows .exe and Linux/macOS via dotnet <console>.dll),
  • migration of old .stix files with D-Stability Migration Console,
  • an optional FastAPI server to run calculations through HTTP.

Installation

pip install lithovox-stability            # read, edit and write .stix files
pip install "lithovox-stability[plot]"    # + model.plot() (matplotlib)
pip install "lithovox-stability[server]"  # + the API server

Connecting to D-Stability

The D-Stability executables are not part of this package. Install D-Stability yourself and tell lithovox-stability where it is. Settings are read from environment variables or a lithovox_stability.env file in the working directory (see lithovox_stability.env.example). There is no auto-detection.

Setting Default Description
DSTABILITY_FOLDER None Folder with the D-Stability binaries (D-Stability Console.exe/.dll).
DSTABILITY_CONSOLE_PATH None Explicit console .exe/.dll (overrides the folder).
DSTABILITY_MIGRATION_CONSOLE_PATH None Explicit migration console .exe/.dll.
DOTNET_PATH dotnet dotnet executable used on Linux/macOS.
TIMEOUT 600 Maximum calculation time in seconds.
CALCULATION_FOLDER calculations API server: folder for temporary calculation folders.
API_USERNAME / API_PASSWORD test / test API server: HTTP basic auth credentials.

On Windows the .exe is started directly. On Linux/macOS the .dll is started with the .NET 8 runtime (dotnet "D-Stability Console.dll"), so install that runtime as well.

Reading and writing .stix files does not need D-Stability at all.

Usage

from lithovox_stability import DStabilityModel

# Read an existing .stix file
model = DStabilityModel.from_stix("input.stix")

# Inspect or edit the model
print(model.output)                       # results, if present
model.add_scenario("New scenario")        # only through the model API!
model.serialize("edited.stix")

# Run D-Stability (writes the results back into the .stix file)
model.execute()

Files created with an old D-Stability version (with e.g. ShearStrengthModelTypeAbovePhreaticLevel: CPhi) must be migrated first:

migrated = DStabilityModel.convert_legacy_file("old.stix", "new.stix")
model = DStabilityModel.from_stix(migrated)

API server

pip install "lithovox-stability[server]"
uvicorn lithovox_stability.service.main:app --host 0.0.0.0 --port 8000
Endpoint Description
GET /health Platform and console availability.
POST /calculate Upload a .stix file, returns the calculated .stix file.
POST /calculate/model Post/return the JSON representation of the model.
POST /convert Upload an old .stix file, returns the migrated file.
curl -u test:test -F "file=@input.stix" -o result.stix http://localhost:8000/calculate

Tests

pip install -e ".[test]"
pytest

The tests use tests/data/test.stix. Tests marked console run D-Stability and are skipped unless DSTABILITY_FOLDER or DSTABILITY_CONSOLE_PATH points to a working installation, for example:

DSTABILITY_FOLDER=/path/to/dstability pytest

Metadata

Release files for lithovox-stability 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lithovox-stability 0.1.0
File Size Uploaded Provenance Actions
lithovox_stability-0.1.0.tar.gz 67.1 kB With provenance Details for lithovox_stability-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for lithovox-stability 0.1.0
File Interpreter ABI Platform Actions
lithovox_stability-0.1.0-py3-none-any.whl Python 3 none any Details for lithovox_stability-0.1.0-py3-none-any.whl

Total release size: 127.7 kB

Release files / lithovox_stability-0.1.0.tar.gz

Download URL lithovox_stability-0.1.0.tar.gz
Size 67.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c14e8d7f9d106721d98d8bcaf817f200357962fe998735232e618741afd6093a
BLAKE2b-256 checksum
How to use checksums
507f7c046bba3702b256357884515c7e1eddec474d8c77c4093e8a948d9c0ae9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / lithovox_stability-0.1.0-py3-none-any.whl

Download URL lithovox_stability-0.1.0-py3-none-any.whl
Size 60.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e7030494a0db3375859807023f76921c7c131aabe7b239b960bd44a1b9e80d93
BLAKE2b-256 checksum
How to use checksums
e173067014f1e1f06c97f503ffb5185e1c3d7934e3aecdd4ab49d4c456b0afd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Security for lithovox-stability 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for lithovox_stability-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page