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.

Release files for otlingam 0.5.12

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.5.12
File
otlingam-0.5.12-cp314-cp314-win_arm64.whl CPython 3.14 CPython 3.14 Windows ARM64 Details
otlingam-0.5.12-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
otlingam-0.5.12-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.26+ x86-64, Linux glibc 2.28+ x86-64 Details
otlingam-0.5.12-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.5.12-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
otlingam-0.5.12-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details
otlingam-0.5.12-cp313-cp313-win_arm64.whl CPython 3.13 CPython 3.13 Windows ARM64 Details
otlingam-0.5.12-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
otlingam-0.5.12-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.5.12-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.26+ ARM64 Details
otlingam-0.5.12-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
otlingam-0.5.12-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
otlingam-0.5.12-cp312-cp312-win_arm64.whl CPython 3.12 CPython 3.12 Windows ARM64 Details
otlingam-0.5.12-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
otlingam-0.5.12-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.5.12-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details
otlingam-0.5.12-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
otlingam-0.5.12-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
otlingam-0.5.12-cp311-cp311-win_arm64.whl CPython 3.11 CPython 3.11 Windows ARM64 Details
otlingam-0.5.12-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
otlingam-0.5.12-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.5.12-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.5.12-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
otlingam-0.5.12-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details

Total release size: 11.3 MB

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

Download URL otlingam-0.5.12-cp314-cp314-win_arm64.whl
Size 686.3 kB
Tags CPython 3.14 Windows ARM64
SHA-256 checksum
How to use checksums
b4df942da9d3bf15ee81de29acc4c14ed75439527cffa069cf8093815dd69c5f
BLAKE2b-256 checksum
How to use checksums
3572330e3bbb9b2e730c6f02e7679d3c603b251390a43c27faa7c7a88f231ae6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp314-cp314-win_amd64.whl
Size 1.3 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
e59caa7b81c5dfe5560d05d211c8da12788cd5afd10d9f44ff45912b12d1d92c
BLAKE2b-256 checksum
How to use checksums
9bb0d2b0f9b28e7b6f55bb6acb7fab0992ff1e43929a6c04f02edf0920b0c24b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 273.4 kB
Tags CPython 3.14 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
dbd5b40abf7c0eb68c38f428dc2681cc28c7fa6c4053f1fb20fcce3aab513598
BLAKE2b-256 checksum
How to use checksums
162f1c1696c23c3c6de5a470663eacfdd6ae7c0ea1ec38bbe87f4666ac85f7e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 220.6 kB
Tags CPython 3.14 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
726e1ea8046450a8cd476a0f151fdd6a01b836edbc08a44c8a19e7cad1f60cc0
BLAKE2b-256 checksum
How to use checksums
db15b114be37dd7d08badcaaa4eec3191be3c8ae858d6f28f061bf8497a132a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp314-cp314-macosx_11_0_arm64.whl
Size 163.4 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
11a75f10fc6bfa058115a1ef312e09f277c510c5668add43c408ff6b071d1caf
BLAKE2b-256 checksum
How to use checksums
ce6cb9cf55b53ea6e93e7c54444cbe7218f449ba051bcb96ae1ece8e62b26236
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp314-cp314-macosx_10_15_x86_64.whl
Size 214.9 kB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
c7a1e7f7cc5921eea16c11a8f4bcd0079ed7279dc65a3d443fdc9193c9f4a94d
BLAKE2b-256 checksum
How to use checksums
ef97c7b0183e2129272ab17e16ee964ee2df037f4efb80e27b690ed47d2f6e59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp313-cp313-win_arm64.whl
Size 664.3 kB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
a438a7e80612361ea96f33191a32c0e4d156df290d2853d98b6666ce0de1ee4a
BLAKE2b-256 checksum
How to use checksums
1d761e6256fbceec4de83bc0ecb2898465e1c6112c2486a33b24c2b497705be1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp313-cp313-win_amd64.whl
Size 1.3 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
bd4f948bdf5484d8e2daaff70e73e2093b41b1dc0801a841c465fdf562e5194f
BLAKE2b-256 checksum
How to use checksums
70c9073dec52754959a6fbc3a5454c1e6a6a433e711c31b3b87018b426071258
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 273.3 kB
Tags CPython 3.13 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
023391a603e0c99437e6dcee04405e54e735e4819cfd0125d0be425f5630c71d
BLAKE2b-256 checksum
How to use checksums
b7b3970ffb6d8553da8d6a36f5e152f89fe3387b1748702466d5b62e3e4e4ba9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 220.5 kB
Tags CPython 3.13 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
bdf471a1be711dac13daec7bd8e6a46e9f31b601d88aa2eea56047e55f26bd0c
BLAKE2b-256 checksum
How to use checksums
89baec21506354f84beb11eb8b6f4581753d588234200a4a3f245c473e2199e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp313-cp313-macosx_11_0_arm64.whl
Size 163.4 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0e5cebca95eb4f161293b0eeef77b4fdf804493916d9364054a5b8d56d509ac5
BLAKE2b-256 checksum
How to use checksums
f62b9241a3dbbf81e180c7e0333bc1fbed0e64d03d6f7ecdfc692404fbb4e6c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp313-cp313-macosx_10_13_x86_64.whl
Size 214.8 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
f5b419b9d020507de55d43b8f4a78770329c44c3dd2aadd6498b83f05c9a71ab
BLAKE2b-256 checksum
How to use checksums
31fe7a323c77300159ac6dce9c7b3934c87ad8a5516fe637f390dae2478453aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp312-cp312-win_arm64.whl
Size 664.0 kB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
f39b3235744aa8b616ed7a834c509798f9c31aad97bfefa320946ed8aa0f90e2
BLAKE2b-256 checksum
How to use checksums
658452d0a4baefa8ef6081d9ed5fa6ab96ac5b9e2017e86aab538150c952ce22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp312-cp312-win_amd64.whl
Size 1.3 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
18b0ace41bdea781d64dcea61f45cad1f3fe3650b90202d7a383fa719f093ba0
BLAKE2b-256 checksum
How to use checksums
8cec80eb984faa1dd52cc400941635167b6db93d5c9454e6b4ae2d078ce3aa2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 273.0 kB
Tags CPython 3.12 Linux glibc 2.26+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
393c262d5040749a908d219f754da6dde79fe87b052573681b4ebf54c1be80ab
BLAKE2b-256 checksum
How to use checksums
4a261ad5c89113b4a5a7668ab9a53a15f1fbaf27718614c54f1eea3d9371ece5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 220.1 kB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fe9be074affa7bf8425ccc47edb3680533bb16c0dd964c6e11381a989e9ee89f
BLAKE2b-256 checksum
How to use checksums
402929934314bfa5bde1f4999ae78dd2c7cde0e6155bfe857ba08a8088f07e94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp312-cp312-macosx_11_0_arm64.whl
Size 163.2 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
15ccdfea25ae3073b20bde197458a550dcacc3a959cbfb44cfd58e253a1c5164
BLAKE2b-256 checksum
How to use checksums
fa650495baabef02d4e6351bfeebf0ac5d577843388232035566200b48ade3af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp312-cp312-macosx_10_13_x86_64.whl
Size 214.5 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
34561a0fdfd3c933d427f7ea67fcc7905b8a76412dcfc798ae8940704cd9dafc
BLAKE2b-256 checksum
How to use checksums
fdcaa46c92cb39ce1fda2e3105e9523435e60f2c83ff73aacfbe7ee1c4674244
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp311-cp311-win_arm64.whl
Size 662.6 kB
Tags CPython 3.11 Windows ARM64
SHA-256 checksum
How to use checksums
6542efcd8777b66bf152d9c0861ae2b91f17a05a99f59196317c69977e47f202
BLAKE2b-256 checksum
How to use checksums
bd35e9e10724a1cb2dda3ff6180eaedb08db1e765a2beef3e9d5dd7f0f509ba4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp311-cp311-win_amd64.whl
Size 1.3 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
8a9c23631135e3c7ed4665886fe4c7139500fa62930062d10e8d29a13288e984
BLAKE2b-256 checksum
How to use checksums
67ef12aa8defe23415d851f13baf319b76474798b22bf75b64324af9c22edacd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Size 272.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
b197caead76d5268e8689f02615ccac3fcd43736a76728a05d5f358c9808fc57
BLAKE2b-256 checksum
How to use checksums
947c1c41a5fb4e1af49d4bb5c2ed36d675e63c06a09de41bc1b0c94fc9d601c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 219.1 kB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b9fde543548781bdb32f021a10a1f2056b4b79095272f1aae15a6c38e97b8db9
BLAKE2b-256 checksum
How to use checksums
9ae1565f12c34160243dd4df33991e2efea5b97df6ac6054477c46b4de8ed5a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp311-cp311-macosx_11_0_arm64.whl
Size 162.2 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
73815d3cc5976f8131ae2dfcc32dd1c2c08d25b236e9bb95b388303827cf4663
BLAKE2b-256 checksum
How to use checksums
fd5251b9e3b42aed958cbfd8884e7510a913dbe9dda1f560eea582534e8dd689
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

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

Download URL otlingam-0.5.12-cp311-cp311-macosx_10_9_x86_64.whl
Size 215.4 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
ad30a80b095c8ee17d79099be1a6a3747ee0c818970bd3c5f49c194619ea250e
BLAKE2b-256 checksum
How to use checksums
b96e79e18726a317fc77abb72acc658e8b57a25794eae44cc72101d63788564e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.6.0

29 release files

This release

0.5.12 This release

24 release files

0.5.8

24 release files

0.5.3

30 release files

0.5.2

30 release files

0.5.1

30 release files

0.5.0

30 release files

0.4.3

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

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