Skip to main content

itis-sumo

Headless core of the SuMo (Surrogate Model) meta-modeling tools: build, evaluate, cross-validate, and interrogate surrogate models — UQ (Sobol indices, uncertainty propagation, correlation), sampling (LHS / grid / manual-UQ), and MOGA optimization — as a standalone, importable Python package.

Aggregates the computational core of the mmux/vite flaskapi Dakota modules plus recycled utilities from earlier MetaModeling trials. No Flask, no oSPARC, no UI: pure computation on top of the Dakota wheel.

Engine

  • Runtime engine = the PyPI wheel itis-dakota==6.24.13 (Dakota 6.24), on Python 3.12-3.14, Linux, macOS and Windows (first itis-dakota release with win_amd64 wheels; engine parity with mmux/vite is now a process, not a version — the consumer may anchor on 1.5.11, see SPEC §C py).
  • The in-repo itis-dakota/ checkout is the IT'IS Dakota fork, kept for reference only — this package consumes the pre-built wheels published to PyPI and does not build the fork.
  • Engine calls happen through dakota.environment.study(input_string=...) executed inside a ProcessPoolExecutor with an explicit start-method context (fork on POSIX, spawn on Windows — SPEC V50gm); the package never shells out to a dakota binary.
  • Engine caveats, the wheel-build process, and the 6.23+ Interface::interface_cache regression (still upstream; shimmed in-repo via add_r5_interface_cache_workaround()) are documented in DAKOTA-STUBS.md.

Provenance

Every module in this package was either ported from an earlier mmux repo or deliberately written new. The port source is mmux_vite's flaskapi (branch jgo/sobol-indices @ 22685f7); utilities were recycled from itis_dakota_projects / itis_dakota_projects_clean; the lineage reaches back to mmux_python (mmux_gui). The in-repo itis-dakota/ fork checkout is reference-only.

Full per-repo / per-branch / per-commit inventory — what was ported, what was deliberately not ported, and what remains as porting candidates — is in PORTING.md.

Install & verify

uv sync                          # Python 3.12-3.14; resolves itis-dakota==6.24.13
uv run itis-sumo validate        # engine probe (expect: Version 6.24.13)
uv run pytest                    # 123 tests, standalone
uv run python examples/headless_smoke.py   # surrogate -> CV -> Sobol

Development

Code quality

ruff (lint + format) and ty (type checking) run both at commit time and in CI. Install the local git hook once:

uvx prek install

Or run all hooks on demand without installing them:

make prek

Version channels and releases

Package versions are single-sourced in pyproject.toml. Use these channels:

  • Feature branches: manual .devN development versions.
  • develop: alpha versions (aN).
  • main: beta versions (bN) until the project graduates to 1.0.0.

PR CI checks that a proposed version matches its target branch and is newer than existing git tags under PEP 440 ordering. After a non-docs merge to develop or main, CI creates the matching v<version> tag without committing back to the protected branch. Docs-only changes do not create tags.

CI builds and tests alpha, beta, and release-candidate versions. Real PyPI publishing and GitHub Releases remain manual: use the Publish workflow's workflow_dispatch input with the existing tag after validation. Feature-branch .devN versions use the fast local TestPyPI target below; they do not need tags or CI.

Manual TestPyPI publishing

Create a local, gitignored .env file containing:

TESTPYPI_TOKEN=pypi-your-testpypi-token

For a feature-branch development release, commit your code changes and run:

make publish-testpypi-dev

This temporarily writes the next .devN version for the build, checks the package, uploads directly to TestPyPI using TESTPYPI_TOKEN from the local .env, and restores pyproject.toml afterward, including when the command fails. It refuses a dirty worktree. This path intentionally does not create commits or tags and does not run CI, so broken development versions can be published quickly. Alpha, beta, and release-candidate versions remain gated by CI before real-PyPI publication.

Package layout

src/itis_sumo/
  core/       Dakota execution primitives (DakotaObject, wiofiles)
  config/     NIDR string composers (surrogate/MOGA/UQ confs)
  data/       data processing (healing, bounds, correlation, dominance)
  sampling/   LHS / manual-UQ / grid sampling
  evaluate/   end-to-end runs (sumo eval, CV+metrics, MOGA, Sobol, UQ)
  preprocess/ DataPreprocessor + function-jobs pydantic models
  utils/      engine validation + NIDR config guard

Docs

Metadata

Release files for itis-sumo 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 itis-sumo 0.1.0
File Size Uploaded
itis_sumo-0.1.0.tar.gz 72.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for itis-sumo 0.1.0
File Interpreter ABI Platform
itis_sumo-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 153.3 kB

Release files / itis_sumo-0.1.0.tar.gz

Download URL itis_sumo-0.1.0.tar.gz
Size 72.7 kB
Tags Source
SHA-256 checksum
How to use checksums
baf9cc2f48b193dd0f4b2f36d24f62900a344070c8dcb41aefdfc37bd97d4a1f
BLAKE2b-256 checksum
How to use checksums
9f2af0817b84298d32757fb7c009e89dd32b533bb35612b7e4d6a880e6093c96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 15, 2026.

Transparency log

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

Download URL itis_sumo-0.1.0-py3-none-any.whl
Size 80.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d054812f5e212c2ff7da7c10eea4a1789f5eec74432aac685c24e684095c2cc4
BLAKE2b-256 checksum
How to use checksums
a339aba74003b4c944e7c119b47370f1d51a3f7a752a1f0ba14a0294a90dedb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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