Skip to main content

OTLiNGAM logo

OT-LiNGAM

Optimal Transport LiNGAM.
Scikit-learn-compatible causal discovery for linear non-Gaussian systems.

Documentation · PyPI

PyPI version Supported Python versions: 3.11–3.14 Lint status Coverage Documentation status License

otlingam is a Python package for causal discovery in linear non-Gaussian structural equation models. It learns causal orders by maximizing the Wasserstein non-Gaussianity of standardized regression residuals and estimates edge weights with adaptive Lasso.


✨ Features

  • Exhaustive causal-order learning: ExhaustiveOTLiNGAM uses subset dynamic programming to find a globally optimal order.
  • Scalable greedy learning: GreedyOTLiNGAM constructs an order by sequentially selecting the most non-Gaussian residual.
  • Optimal transport ICA: OTICALiNGAM uses OTICA with FastICA initialization in the classical ICA-LiNGAM pipeline.
  • Exact empirical criterion: Computes one-dimensional Wasserstein scores directly from ordered residuals and Gaussian quantiles.
  • LiNGAM integration: Exposes causal orders and weighted adjacency matrices through the established LiNGAM estimator API.
  • scikit-learn integration: Native BaseEstimator integration with familiar fit, get_params, set_params, and clone support.

The exhaustive estimator uses djbsort for double-precision residual sorting and Google Highway for SIMD kernels. Both projects are tracked as Git submodules; the sorter selects a portable fallback or the CPU's AVX2/NEON implementation at runtime.


⚡ Method

The estimators assume the linear structural equation model

$$ X_j = \sum_{k \in \mathrm{Pa}(j)} B_{jk} X_k + \varepsilon_j, $$

where the graph is acyclic and the structural noises are mutually independent, centered, and have finite nonzero variances. Causal-order identification additionally requires at most one Gaussian structural noise.

For a candidate order $\sigma$, let $R_j(\sigma)$ be the population residual obtained by regressing $X_j$ on its predecessors under $\sigma$. The oracle Wasserstein order objective is

$$ G(\sigma) = \sum_{j = 1}^{d} \mathcal{W}_2\left( \mathrm{std}(R_j(\sigma)), \mathcal{N}(0, 1) \right)^2. $$

Given $n$ observations, let $\widehat{R}_j^{(i)}(\sigma)$ be the ordinary least-squares residual for observation $i$. OTLiNGAM maximizes the empirical order objective

$$ \widehat{G}n(\sigma) = \sum{j = 1}^{d} \mathcal{W}2\left( \mathrm{std}\left( \frac{1}{n} \sum{i = 1}^{n} \delta_{\widehat{R}_j^{(i)}(\sigma)} \right), \mathcal{N}(0, 1) \right)^2. $$

At the population level, the maximizers of $G$ are exactly the topological orders under the stated assumptions. A topological order exposes the independent structural noises as regression residuals, whereas an incorrect order may mix several noises and reduce the total objective. Each empirical one-dimensional Wasserstein distance is evaluated exactly by sorting the standardized residuals and comparing them with the Gaussian reference quantiles.


🚀 Installation

python -m pip install otlingam

🔧 Usage

Example

The following example simulates a linear non-Gaussian structural equation model, learns a causal order with GreedyOTLiNGAM, and compares the true and estimated weighted adjacency matrices.

import matplotlib.pyplot as plt
import numpy as np
from otlingam import GreedyOTLiNGAM, disorder

rng = np.random.default_rng(42)
n_samples = 5000
adjacency_matrix = np.array(
    [
        [0.0, 0.0, 0.0, 0.0, 0.0],
        [0.8, 0.0, 0.0, 0.0, 0.0],
        [0.0, -0.7, 0.0, 0.0, 0.0],
        [0.5, 0.0, 0.9, 0.0, 0.0],
        [0.0, -0.6, 0.0, 0.7, 0.0],
    ]
)
noise = rng.uniform(-1.0, 1.0, size=(n_samples, 5))
X = noise @ np.linalg.inv(np.eye(5) - adjacency_matrix).T

model = GreedyOTLiNGAM().fit(X)

print("Estimated causal order:", model.causal_order_)
print("Disorder:", disorder(model.causal_order_, adjacency_matrix))

fig, axes = plt.subplots(1, 2, figsize=(10, 4), layout="constrained")
matrices = (adjacency_matrix, model.adjacency_matrix_)
titles = ("True adjacency matrix", "Estimated adjacency matrix")
for ax, matrix, title in zip(axes, matrices, titles, strict=True):
    image = ax.imshow(matrix, cmap="RdBu_r", vmin=-1.0, vmax=1.0)
    ax.set_title(title)
    ax.set_xlabel("Parent")
    ax.set_ylabel("Child")
fig.colorbar(image, ax=axes, label="Edge weight")

plt.show()

ExhaustiveOTLiNGAM provides global order optimization at an exponential cost in the number of variables. GreedyOTLiNGAM provides a quadratic-time alternative. Set fit_intercept=False when the observations are already centered. The default fit_intercept=True centers the data and exposes the fitted intercepts through intercept_.


📊 Reproducing Results

Clone the repository, create and activate a virtual environment, then install the exact package versions used for the paper:

python -m pip install -r scripts/requirements.txt

Keep the repository folder layout unchanged: do not move, rename, or flatten its folders, because the experiment scripts resolve paths relative to their file locations.

Run the experiment scripts from the repository root:

python scripts/statistical-performance.py --nd
python scripts/statistical-performance.py --heterogeneity
python scripts/statistical-performance.py --k
python scripts/runtime-scaling.py

Alternatively, run all experiments sequentially on Windows, Linux, or macOS:

python run-all.py

The runner uses the active Python interpreter and stops if an experiment fails.

These commands write varying-nd-disorder.pdf, noise-heterogeneity-disorder.pdf, varying-k-performance.pdf, and runtime-scaling.pdf to figures/. The paper settings (including random seed 42, sample sizes, dimensions, graph configurations, and run counts) are defined as constants near the top of each script.

Metadata

Release files for otlingam 0.6.1

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

Built distributions (wheels)

Table of built distributions (wheels) for otlingam 0.6.1
File
otlingam-0.6.1-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
otlingam-0.6.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details
otlingam-0.6.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details
otlingam-0.6.1-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
otlingam-0.6.1-cp314-cp314t-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64 Details
otlingam-0.6.1-cp314-cp314-win_arm64.whl CPython 3.14 CPython 3.14 Windows ARM64 Details
otlingam-0.6.1-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
otlingam-0.6.1-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details
otlingam-0.6.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details
otlingam-0.6.1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
otlingam-0.6.1-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details
otlingam-0.6.1-cp313-cp313-win_arm64.whl CPython 3.13 CPython 3.13 Windows ARM64 Details
otlingam-0.6.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
otlingam-0.6.1-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.26+ x86-64, Linux glibc 2.28+ x86-64 Details
otlingam-0.6.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details
otlingam-0.6.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
otlingam-0.6.1-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
otlingam-0.6.1-cp312-cp312-win_arm64.whl CPython 3.12 CPython 3.12 Windows ARM64 Details
otlingam-0.6.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
otlingam-0.6.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details
otlingam-0.6.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details
otlingam-0.6.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
otlingam-0.6.1-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
otlingam-0.6.1-cp311-cp311-win_arm64.whl CPython 3.11 CPython 3.11 Windows ARM64 Details
otlingam-0.6.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
otlingam-0.6.1-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.26+ x86-64 Details
otlingam-0.6.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details
otlingam-0.6.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
otlingam-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details

Total release size: 14.4 MB

Release files / otlingam-0.6.1-cp314-cp314t-win_amd64.whl

Download URL otlingam-0.6.1-cp314-cp314t-win_amd64.whl
Size 1.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
d1eba9be2ec2440a0b4bbabaeec91b04e0fff0f90813b15e5e405b3c17538013
BLAKE2b-256 checksum
How to use checksums
663ede155c677ad46ab2a7956e3ccc6c446807f2979897599576949b2ed713e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL otlingam-0.6.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 364.3 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f39cd3a5bee289caec08dc4e1da89311c6b22aa70bb1715d99d8d3b9f4a2aaa2
BLAKE2b-256 checksum
How to use checksums
11b4ba219cb64a68a1103b6f4482756e43b2f1bc1432629edf076d5db616eeba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL otlingam-0.6.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 361.0 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
cd96901a2c7b87bfcaa135b0872ff41525033977b8875e2d93a1cb9c1d5c1517
BLAKE2b-256 checksum
How to use checksums
0098b86ac682e792f6a2925f8a34c82c63f68bfbea272f9e09364569872d4e9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp314-cp314t-macosx_11_0_arm64.whl

Download URL otlingam-0.6.1-cp314-cp314t-macosx_11_0_arm64.whl
Size 156.0 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
efc49d551932b155813feb5fbd5198fc262421b65c1bc11b43baa0fd35e84ff1
BLAKE2b-256 checksum
How to use checksums
6abe86e4d86e3c450cb561c9859d2d42bf314311d3bed11f68754f48b6b2001f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp314-cp314t-macosx_10_15_x86_64.whl

Download URL otlingam-0.6.1-cp314-cp314t-macosx_10_15_x86_64.whl
Size 204.6 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
84b1435e2c5fc258c1ee8afb7afc2fc983b7aaed48a3e955b231592b120bd02d
BLAKE2b-256 checksum
How to use checksums
a08ce1ff8f3bef6d35a178426e13ec6d06bb97d18dda92e79264ad05f81feb4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp314-cp314-win_arm64.whl

Download URL otlingam-0.6.1-cp314-cp314-win_arm64.whl
Size 682.2 kB
Tags CPython 3.14 Windows ARM64
SHA-256 checksum
How to use checksums
f4d008fbf111cd74526f7686731ce1574c3f2dce18e65f431fe61d65f7ae0b2c
BLAKE2b-256 checksum
How to use checksums
9cb0d95b853ec3cb1ce4827bfafb4af1763e5bacc93ddce2957f28670ee753e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp314-cp314-win_amd64.whl

Download URL otlingam-0.6.1-cp314-cp314-win_amd64.whl
Size 1.3 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
4a21e756ad5bd330a822739f77a2b06c51dea6cdd78b715e796a0f43de3d16f5
BLAKE2b-256 checksum
How to use checksums
56b79f55950561cabfd6bbbc1afe45b0ca1f1e432dd9b0688681ed9afb4a51fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL otlingam-0.6.1-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 363.2 kB
Tags CPython 3.14 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
609334c9ef723fdbe192b02fd87364aabbb949a60ff6ff012c1e89eb0a2125fe
BLAKE2b-256 checksum
How to use checksums
4574cd26531badc64e677e8767bb0df318d1e081263735e2efa90ac2d9633dae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL otlingam-0.6.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 359.3 kB
Tags CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d4da0c006d63751330091034d963b44d46bfbd26ff104bfbbf32d2695da8d6ad
BLAKE2b-256 checksum
How to use checksums
8d19f7356d283254abdc72cd03c1ab05c89dd9af2dbfec7df37e1e3f67d796b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp314-cp314-macosx_11_0_arm64.whl

Download URL otlingam-0.6.1-cp314-cp314-macosx_11_0_arm64.whl
Size 152.1 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8a7ab8e40aa9a0e47ce9abd2b086c3c035c59ae99034c4930838dc7cf48aea20
BLAKE2b-256 checksum
How to use checksums
8f7c3a3df028f8142c7fc739aaacfb7bda0f2fca633ec16f68217a075ac56a69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp314-cp314-macosx_10_15_x86_64.whl

Download URL otlingam-0.6.1-cp314-cp314-macosx_10_15_x86_64.whl
Size 200.4 kB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
63e1cda48b8d59f3010f2901f45828b2fba303587843424c3da15fbeacea2dd7
BLAKE2b-256 checksum
How to use checksums
c928270f908cd8e970b8a4a2cfbe49e2c6af604e8370ca48dce81505a381dc09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp313-cp313-win_arm64.whl

Download URL otlingam-0.6.1-cp313-cp313-win_arm64.whl
Size 658.5 kB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
f598bbb5ea2b998ef5b3e13763587b62d252429158efec5afbfff349481b0ea2
BLAKE2b-256 checksum
How to use checksums
f27ce91280d3d6f2d618bb1bd7c197887c59071f6b62ad5941bc764ecaad018c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp313-cp313-win_amd64.whl

Download URL otlingam-0.6.1-cp313-cp313-win_amd64.whl
Size 1.3 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
1f39bdbc7abe907479d7e2d1d30842d67e43242ba2ae0ff6d1f2a73ed020ea97
BLAKE2b-256 checksum
How to use checksums
9da15e175ddb2e398350bd179485be7452eb3a5274c553b8556d15c791612a0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL otlingam-0.6.1-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 363.1 kB
Tags CPython 3.13 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5b5765357f6ff9550906f32a63d0ed901549279d762f1828496e170629d29616
BLAKE2b-256 checksum
How to use checksums
c0007159df540c1146b1ebd9cc16a9da20ddeca6c215166c14d5a473f71fddcb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL otlingam-0.6.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 358.5 kB
Tags CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
583a2d2cec036d5e78795c73d3d9edeb6a8e8f356b62df58859918213f919ce8
BLAKE2b-256 checksum
How to use checksums
42bb4b65748db3d4d4f6fca2c04e9858a5b5d4b4c9e28bf297e16b19ed1517a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL otlingam-0.6.1-cp313-cp313-macosx_11_0_arm64.whl
Size 152.0 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9f8ddcd56be3114383dacc5b4f2eec7f1f9d0e696f6f6f6d2499d1f7711be7a3
BLAKE2b-256 checksum
How to use checksums
1738cdae4999b403fc755a045c063f20bee60fe60da2f220cd5e891c216a6230
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp313-cp313-macosx_10_13_x86_64.whl

Download URL otlingam-0.6.1-cp313-cp313-macosx_10_13_x86_64.whl
Size 200.4 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
b1c7b4da735db7ba5da08be627c7a1444c8a81c54fc875e097d01605601a58dc
BLAKE2b-256 checksum
How to use checksums
3658a98ad3d7602e9fb4b072ff9aa8d7f8395fc6226d7a431b4a148a783bf3b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp312-cp312-win_arm64.whl

Download URL otlingam-0.6.1-cp312-cp312-win_arm64.whl
Size 658.1 kB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
f2c616574371168a210f2502509278ab56ad22703eabe5bf45d9fabe76bed4c2
BLAKE2b-256 checksum
How to use checksums
7693d44d062e101bf87430b76700bf4966d77ff99852f1e5253e919fb90931af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp312-cp312-win_amd64.whl

Download URL otlingam-0.6.1-cp312-cp312-win_amd64.whl
Size 1.3 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
58101e3ded0f2506954d43581e3dabf0a71a432b086fb955855dab90ad669d75
BLAKE2b-256 checksum
How to use checksums
9e9a14b7ef9569ae3c21358c00baa531e92e1409bc82d5d7107853d6052bdb29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL otlingam-0.6.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 363.2 kB
Tags CPython 3.12 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5ae66c24b977392de05d7f30905f49b861f57d95d7a653ba51a81e6de0ebae64
BLAKE2b-256 checksum
How to use checksums
6568f42970f21a0bdae3c79bb95c06bada8bf14834f17aaed696877d5865866d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL otlingam-0.6.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 358.5 kB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8be7b3857cb71d323410649c4b115a6876ac13c7fc6d2ce12696fc957271e8cf
BLAKE2b-256 checksum
How to use checksums
b2fdd09f82f69010d934de5dfc5d2e389dc1327d0446f6de5c898ffb75f71792
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL otlingam-0.6.1-cp312-cp312-macosx_11_0_arm64.whl
Size 152.0 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0582dac39beeb12ea2ac083acf625b35f2e007f81e57f27782531610024c8fed
BLAKE2b-256 checksum
How to use checksums
91a8152437546817a9b218be8babfe5ebe9d5348e0d09f18f80d0f3653d44e2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp312-cp312-macosx_10_13_x86_64.whl

Download URL otlingam-0.6.1-cp312-cp312-macosx_10_13_x86_64.whl
Size 200.3 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
0a1cba39fae0074b24275ea771cbf52010b4a6308376cff3c94352f6897fb05b
BLAKE2b-256 checksum
How to use checksums
8b024b36bf6a083d6d1c16299f0680a8eb574d5591f8c7c494fe08631b99e69f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp311-cp311-win_arm64.whl

Download URL otlingam-0.6.1-cp311-cp311-win_arm64.whl
Size 656.9 kB
Tags CPython 3.11 Windows ARM64
SHA-256 checksum
How to use checksums
a230f74d8a1c8ad16df955db45e0c0a1ab346d12d8a9f693a67fa92cf2f1de0c
BLAKE2b-256 checksum
How to use checksums
f3841c04442d3022ff4f392e57eeab24d7dc6471c8fd0dcf2c97d87faa65acd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp311-cp311-win_amd64.whl

Download URL otlingam-0.6.1-cp311-cp311-win_amd64.whl
Size 1.3 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
86b3efed88bd65741521cdc8a03cbbff09fe23368e5fca2f5f40e45c5e5f805a
BLAKE2b-256 checksum
How to use checksums
ee46e1496331cae1773ded435640227490284e721eedcbe14ea7bc6f71e3aafe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

Download URL otlingam-0.6.1-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 361.0 kB
Tags CPython 3.11 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
30d54e2865b8abe280794714ffee7e877e3c04f59ee785126c693b57b22c651f
BLAKE2b-256 checksum
How to use checksums
924f9eee9a4bb830949c7c75bea41d9ca773a3b68082386c1201121e042380ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL otlingam-0.6.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 357.1 kB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8e5842bb8c4239e4b78172fdb0cb40e14e24fff1aca475ca690df6cd83ec1793
BLAKE2b-256 checksum
How to use checksums
c8929693dafe6ef4ea5fa6e34b7c86ca7190c8e0c12c5e85234f3857e0ad1f45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL otlingam-0.6.1-cp311-cp311-macosx_11_0_arm64.whl
Size 149.9 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
112a2989ead1ee6e27163145bf16f323af059be83045a002c71a9b68524e9d7c
BLAKE2b-256 checksum
How to use checksums
b2c883ffe6f58c07e155266143860e0e0d437f71227d530e56c126620e8ca3b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / otlingam-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl

Download URL otlingam-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl
Size 200.7 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
e295474d934dafc24dcd58c914616182d5a358f514c1abb8f43013ca2042f217
BLAKE2b-256 checksum
How to use checksums
dbdad5e323acdbb5dbaa0563e2e3387bdf2ae85001a2c50c59758ee9d42a31aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for otlingam 0.6.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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.

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