The petek subsurface-modelling suite — installs the whole family (petektools, petekio, petekstatic, peteksim)
Project description
petekSuite
petekSuite is the umbrella for a subsurface-modelling ecosystem: a small family of Rust libraries (with Python bindings) that take raw subsurface data all the way to static volumes and dynamic forecasts. The suite root itself builds no code — it coordinates the peer libraries, keeps their seams coherent, and holds the shared conventions ("the petek house style") that make them a family rather than a monolith.
Dependencies flow one direction, downward only — no cycles, no sideways sharing of code. Libraries share conventions freely and share code only downward through the graph; each library stays usable standalone.
┌─────────────────────────────────────────┐
petekIO DATA │ ingest · normalize · validate · │
│ │ interpret → model-ready inputs │
▼ └─────────────────────────────────────────┘
petekStatic GEOMODEL structural framework · grid · property
│ modelling · volumetrics + static uncertainty
▼
petekSim SIMULATION dynamic / engineering forecast · PVT ·
the `peteksim` Python product facade
petekTools TOOLKIT horizontal · shared · domain-agnostic:
numeric kernels + units + container + viewer
(serves every layer)
The libraries
petekIO — the DATA layer
Ingests, normalizes, validates, and interprets subsurface data (wells, surfaces,
logs, seismic) into clean, model-ready inputs. A standalone Rust data-model +
IO library with optional PyO3 bindings — data only, no modelling framework.
Composes mature crates (las_rs, geo/geozero, ndarray, rstar,
giga-segy) behind its own IO traits.
petekStatic — the GEOMODEL layer
Turns model-ready inputs into a populated StaticModel: the structural framework (horizons + faults + zones), grid construction, and property modelling (facies/petrophysics, geostatistics, trend population, log upscaling). It owns volumetrics + static uncertainty — GRV / in-place volumes off the model itself, Monte-Carlo over model realizations, and tornado analysis — producing a StaticModel plus probabilistic (P90/P50/P10) curves.
petekSim — the SIMULATION layer
Dynamic and engineering simulation: recoverable volumes and forecasting (decline,
p/z, material balance, and later full dynamic flow), plus PVT. It ships the
product — peteksim, the Python-facing appraisal toolkit that presents the
whole stack behind one façade.
petekTools — the horizontal TOOLKIT
Domain-agnostic, shared numerics that serve every layer: the scattered-data gridding / kriging / warm-start / geostatistics kernels Rust lacks, a units system, the liftable container format, and a generic bundle viewer. A pure leaf — it depends on none of the others; they build on it.
Install
The whole suite installs with one command:
pip install peteksuite # the meta-package: pulls all four libraries
The umbrella package also exposes short notebook imports:
from peteksuite import pio, pto, pst, ps
Every library is also directly installable from both crates.io (Rust) and PyPI (Python) — one crate and one wheel per library:
| Library | version | pip | Status |
|---|---|---|---|
| petekTools | 0.2.4 | pip install petektools |
live |
| petekIO | 0.3.3 | pip install petekio |
live |
| petekStatic | 0.1.6 | pip install petekstatic |
live |
| petekSim | 0.1.4 | pip install peteksim |
live |
Rust (crates.io)
cargo add petektools@0.2.4 # TOOLKIT — numeric kernels, units, container
cargo add petekio@0.3.3 # DATA — ingest + model-ready inputs
cargo add petekstatic@0.1.6 # GEOMODEL — StaticModel build + volumetrics + MC
cargo add peteksim@0.1.4 # SIMULATION — the appraisal facade over the stack
Python (PyPI)
pip install petektools==0.2.4
pip install petekio==0.3.3
pip install petekstatic==0.1.6 # static workflow API, StaticModel, volumes + bundles
pip install peteksim==0.1.4 # the full appraisal facade over the whole stack
Dependencies resolve automatically in DAG order (peteksim pulls the stack; petekstatic pulls petekio + petektools).
License
The suite is split by layer:
| Library | License |
|---|---|
| petekTools | Apache-2.0 |
| petekIO | Apache-2.0 |
| petekStatic | Business Source License 1.1 (converts to Apache-2.0) |
| petekSim | Business Source License 1.1 (converts to Apache-2.0) |
The horizontal toolkit and the data layer are permissively licensed (Apache-2.0).
The geomodel and simulation layers ship under the Business Source License 1.1,
each released version converting to Apache-2.0 on its change date. See each
library's own LICENSE / NOTICE for the authoritative terms.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file peteksuite-0.1.3.tar.gz.
File metadata
- Download URL: peteksuite-0.1.3.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c764df3234686c6bd23cf422ab46b441e848ec5d1a8f11196984c7d425b64dcf
|
|
| MD5 |
04655a7c48d6fd18bab4c4ffe82ee4da
|
|
| BLAKE2b-256 |
b5e57b114a738db9a0b8d32cd17aea9c9883305ad105f7eba24200dea6a7765b
|
Provenance
The following attestation bundles were made for peteksuite-0.1.3.tar.gz:
Publisher:
release.yml on kkollsga/peteksuite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
peteksuite-0.1.3.tar.gz -
Subject digest:
c764df3234686c6bd23cf422ab46b441e848ec5d1a8f11196984c7d425b64dcf - Sigstore transparency entry: 2101669742
- Sigstore integration time:
-
Permalink:
kkollsga/peteksuite@c659156fa7ea4ba03260bdcddc9898829a5ad2ca -
Branch / Tag:
refs/heads/main - Owner: https://github.com/kkollsga
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c659156fa7ea4ba03260bdcddc9898829a5ad2ca -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file peteksuite-0.1.3-py3-none-any.whl.
File metadata
- Download URL: peteksuite-0.1.3-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83335f917e1e4d086ab0c3af752be03c64f28a55638e876fae4f792999c5eb9c
|
|
| MD5 |
355ba713d4439f90a9e23055df3c924a
|
|
| BLAKE2b-256 |
816fb36ba761a9f19147196d2a3d631cd78f2b45cfb750b35ecdbfe65cf15fc0
|
Provenance
The following attestation bundles were made for peteksuite-0.1.3-py3-none-any.whl:
Publisher:
release.yml on kkollsga/peteksuite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
peteksuite-0.1.3-py3-none-any.whl -
Subject digest:
83335f917e1e4d086ab0c3af752be03c64f28a55638e876fae4f792999c5eb9c - Sigstore transparency entry: 2101670377
- Sigstore integration time:
-
Permalink:
kkollsga/peteksuite@c659156fa7ea4ba03260bdcddc9898829a5ad2ca -
Branch / Tag:
refs/heads/main - Owner: https://github.com/kkollsga
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c659156fa7ea4ba03260bdcddc9898829a5ad2ca -
Trigger Event:
workflow_dispatch
-
Statement type: