Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

smckit

PyPI version Python versions PyPI status Publish License: MIT Extras: all-models Extra: asmc Extra: jax Extra: dev Extra: docs

Unified framework for Sequentially Markovian Coalescent methods.

PSMC, MSMC/MSMC2, SMC++, diCal2, ASMC, and related workflows in one preservation-first toolkit.

smckit keeps upstream tools runnable from the same repository while building native implementations that do not lose contact with upstream truth.

Why smckit

  • Upstream-first: original tools in vendor/ remain the oracle implementation.
  • Provenance-aware: results can record which tool ran and how it was bootstrapped.
  • One API surface: shared data structures and workflows across multiple SMC methods.
  • Native path: performance-oriented in-repo implementations can grow without pretending parity before it is validated.

Installation

pip install smckit

Install contract:

  • pip install smckit guarantees the packaged example data and the documented native quickstarts.
  • Full implementation="upstream" preservation workflows are a source-checkout feature unless the method page explicitly says otherwise.
  • When an upstream runtime is missing, smckit reports platform-specific install commands and, when needed, tells you to switch to a source checkout.

Repo environment:

uv sync --extra dev --extra docs
pixi run test-fast

Use uv for the Python package environment and pixi for the repo-level cross-language task environment.

Model extras:

pip install "smckit[all-models]"
pip install "smckit[asmc]"
pip install "smckit[psmc,msmc2,msmc_im,smcpp,esmc2,dical2]"

These extras describe intent. Today only asmc adds an extra Python runtime; the other upstream-backed methods still need platform runtimes such as Java, R, or a D/C toolchain. When an upstream runtime is missing, smckit now returns platform-specific install commands for macOS, Linux, or Windows.

Development extras:

pip install "smckit[jax]"
pip install "smckit[dev]"
pip install "smckit[docs]"

Philosophy

smckit is upstream-first by design.

  • vendor/ holds the original source or release artifacts that act as the oracle.
  • implementation="upstream" means "run the original tool" when that bridge is wired and ready.
  • implementation="native" means "run the in-repo implementation".
  • implementation="auto" should prefer upstream fidelity whenever the upstream path is ready.

The repository exposes smckit.upstream.status() and smckit.upstream.bootstrap() so upstream readiness is inspectable rather than implicit.

Status

smckit is early-stage software. The priority is preserving access to upstream methods, making readiness explicit, and validating native implementations against upstream behavior before claiming equivalence.

Recent parity progress:

  • eSMC2 native/upstream interchangeability is now tracked across the public .psmcfa and multihetsep input families, including missing-site, multi-record, multi-pair, multi-file, and skip_ambiguous=True cases.
  • The docs landing page and gallery summarize which methods have fixture-only validation and which now have broader public-surface parity gates.

Repository Guide

  • Method docs: docs/agents/algorithms.md
  • Usage notes: docs/agents/using-smckit.md
  • Developer architecture: docs/developer/architecture.md

License

MIT. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smckit-0.0.1b2.tar.gz (19.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smckit-0.0.1b2-py3-none-any.whl (19.4 MB view details)

Uploaded Python 3

File details

Details for the file smckit-0.0.1b2.tar.gz.

File metadata

  • Download URL: smckit-0.0.1b2.tar.gz
  • Upload date:
  • Size: 19.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for smckit-0.0.1b2.tar.gz
Algorithm Hash digest
SHA256 4456c41412f7c4879e3aea0fa66f779f41a34cfbff0ea72471c8ad33de0c59c4
MD5 3799952aac8ac888e3bc29ef1ada37e5
BLAKE2b-256 816d101d240ed927fe8e7734df94cfe78511aa2b990bb447b8d81b71481eadff

See more details on using hashes here.

Provenance

The following attestation bundles were made for smckit-0.0.1b2.tar.gz:

Publisher: publish.yml on kevinkorfmann/smckit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file smckit-0.0.1b2-py3-none-any.whl.

File metadata

  • Download URL: smckit-0.0.1b2-py3-none-any.whl
  • Upload date:
  • Size: 19.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for smckit-0.0.1b2-py3-none-any.whl
Algorithm Hash digest
SHA256 a86275c69e205a81e0f6df5cccbb63a9d52ab311e0f8c47ada0c08574331e39e
MD5 1df345269d315feb303235ef5dca2c64
BLAKE2b-256 d603326442680adfa784b1a0c013bda808c477a57474a0a1baf5be573f366d5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for smckit-0.0.1b2-py3-none-any.whl:

Publisher: publish.yml on kevinkorfmann/smckit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.0.1b2 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page