Skip to main content
Pre-release

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

PySATL Core

CI MIT License

PySATL Core is the computational core of the PySATL project, providing abstractions and infrastructure for probability distributions, parametric families, characteristic-based computations, transformations, and sampling.

The library is designed as a foundational kernel rather than a ready-to-use end-user package. Its primary goals are explicit probabilistic structure, extensibility, and suitability as a basis for further stochastic and statistical tooling.

Project status
PySATL Core is currently in early alpha.
The public API may change between alpha releases.


✨ Key features

  • Parametric families of distributions with multiple parametrizations
    (e.g. Normal: meanStd, meanPrec).
  • A global family registry for configuring, querying, and extending available distribution families.
  • Characteristic computation graph (CharacteristicRegistry) that allows computing arbitrary characteristics by specifying only a minimal analytical subset.
  • Transformations module for derived distributions: affine transformations (aX + b), binary operations (X ± Y, X * Y, X / Y), finite weighted mixtures, and characteristic-level approximations.
  • Distribution objects exposing common probabilistic operations (sampling, analytical and fitted computations).
  • Clear separation between distribution definitions, parametrizations, computation strategies, and characteristics.
  • Modern Python with strict static typing (PEP 695).

Requirements

  • Python 3.12+ (the project relies on PEP 695 syntax)
  • NumPy 2.x
  • SciPy 1.13+
  • A C toolchain when building from source or from an sdist:
    • Linux/macOS: GCC (or Clang) plus standard build utilities.
    • Windows: Microsoft Visual C++ Build Tools (MSVC) from Visual Studio or the standalone Build Tools installer.
  • Poetry (recommended for development)

Installation

Install from PyPI:

pip install pysatl-core

Linux wheels are not published yet. On Linux, pip builds the package from the source distribution and requires a working C toolchain.

For development, install from source.

Clone the repository:

git clone https://github.com/PySATL/pysatl-core.git
cd pysatl-core
git submodule update --init --recursive

Development install

poetry install --with dev,docs

Editable runtime install

pip install -e .

🚀 Quickstart

Below is a compact example demonstrating the use of a built-in Normal distribution. It mirrors the example shown in the documentation (examples/overview.ipynb).

from pysatl_core import (
    FamilyName,
    ParametricFamilyRegister,
    configure_normal_family,
)

configure_normal_family()
normal_family = ParametricFamilyRegister.get(FamilyName.NORMAL)

normal = normal_family.distribution(
    parametrization_name="meanStd",
    mu=0.0,
    sigma=1.0,
)

normal_alt = normal_family.distribution(
    parametrization_name="meanPrec",
    mu=0.0,
    tau=1.0,
)

samples = normal.sample(n=10_000)
print(samples[:5])

mean = normal.query_method("mean")()
variance = normal.query_method("variance")()

print(mean, variance)

This example uses a predefined family and predefined parametrizations. PySATL Core also supports defining custom families, parametrizations, and characteristic graphs.

For transformation workflows, see examples/transformations_overview.ipynb.


📓 Notebooks

  • examples/overview.ipynb — base walkthrough for families, parametrizations, and characteristic queries.
  • examples/transformations_overview.ipynb — affine, binary, finite-mixture, and approximation workflows.
  • examples/example_sampling_methods.ipynb — sampling backends and UNURAN-oriented scenarios.

📖 Documentation

👉 Online documentation:
https://pysatl.github.io/pysatl-core/

Documentation previews are automatically generated for pull requests and can be inspected via CI artifacts.


🧠 Concepts & design

  • ParametricFamily — a family of distributions sharing a common mathematical form.
  • Parametrization — a concrete coordinate system for a family.
  • Distribution — a probabilistic object instantiated from a family and parametrization.
  • Characteristic graph — a directed graph describing relationships between computable characteristics.
  • Registries — explicit global registries enabling controlled extensibility.

🛠 Development

poetry install --with dev
poetry run pytest
poetry run pre-commit run --all-files

Package sanity check

poetry run python -m build
poetry run twine check dist/*

These commands build the local distribution artifacts and validate their metadata. They do not publish anything.


🗺 Roadmap

  • Extension of the transformations module (functional transforms, performance improvements).
  • Extension of characteristic graphs.
  • Stabilization of APIs and publishing PySATL Core as an installable package.

License

Distributed under the MIT License. See LICENSE.

Metadata

Release files for pysatl-core 0.1.0a0

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

Source distribution (sdist)

Source distribution for pysatl-core 0.1.0a0
File Size Uploaded
pysatl_core-0.1.0a0.tar.gz 905.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pysatl-core 0.1.0a0
File
pysatl_core-0.1.0a0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pysatl_core-0.1.0a0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
pysatl_core-0.1.0a0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pysatl_core-0.1.0a0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details

Total release size: 2.7 MB

Release files / pysatl_core-0.1.0a0.tar.gz

Download URL pysatl_core-0.1.0a0.tar.gz
Size 905.3 kB
Tags Source
SHA-256 checksum
How to use checksums
4ea3677aea961dbf23d9691e8e4c87ddbb78c58b9724404265e5a10808908128
BLAKE2b-256 checksum
How to use checksums
4fafc870bfde7bfbffd3e5bb34d06d344801246a7c1c6f77a77fea4a2a43fe76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 10, 2026.

Transparency log

Release files / pysatl_core-0.1.0a0-cp313-cp313-win_amd64.whl

Download URL pysatl_core-0.1.0a0-cp313-cp313-win_amd64.whl
Size 335.6 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
869fc68da14e422e2f33703981bb1ad8c654444dcfab7e9a96643d0b4768eed2
BLAKE2b-256 checksum
How to use checksums
ae4e5a1840367ec94d47d0a896516641742c6a330ed980608d9b6f98a6b46ef9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 10, 2026.

Transparency log

Release files / pysatl_core-0.1.0a0-cp313-cp313-macosx_11_0_arm64.whl

Download URL pysatl_core-0.1.0a0-cp313-cp313-macosx_11_0_arm64.whl
Size 757.5 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fefb47a9480430c533dd771b0e8bceb0584401d87b26bd1f9faf9370f55ef2ee
BLAKE2b-256 checksum
How to use checksums
47a79c6ff4083f6b1c311baf1429636e1b999561269f5ae41ad2950c354c68c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 10, 2026.

Transparency log

Release files / pysatl_core-0.1.0a0-cp312-cp312-win_amd64.whl

Download URL pysatl_core-0.1.0a0-cp312-cp312-win_amd64.whl
Size 251.2 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
bc96dff178a5d62b4918f9de8ff63dc4ab08f520f01b1098c3e502409556399a
BLAKE2b-256 checksum
How to use checksums
3a909f309e397fe48e8ffeefe632ea04ec3f1a24c9f0bf0cababb48cb9ad3e5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 10, 2026.

Transparency log

Release files / pysatl_core-0.1.0a0-cp312-cp312-macosx_11_0_arm64.whl

Download URL pysatl_core-0.1.0a0-cp312-cp312-macosx_11_0_arm64.whl
Size 463.9 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e2d440cfc7caccde2476dbac4e7cef68a67066f432eeb996ea1adc2ed5134685
BLAKE2b-256 checksum
How to use checksums
b963fb3189a8df916c575cc845a84fb8b26159916543b71a602b9d9035e6b390
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 10, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0a0 This release

5 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