Skip to main content

OTLiNGAM logo

OTLiNGAM

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.

⚡ 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.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

otlingam-0.5.0-cp314-cp314t-win_arm64.whl (491.4 kB view details)

Uploaded CPython 3.14tWindows ARM64

otlingam-0.5.0-cp314-cp314t-win_amd64.whl (334.0 kB view details)

Uploaded CPython 3.14tWindows x86-64

otlingam-0.5.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (238.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.26+ x86-64manylinux: glibc 2.28+ x86-64

otlingam-0.5.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (187.9 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

otlingam-0.5.0-cp314-cp314t-macosx_11_0_arm64.whl (137.3 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

otlingam-0.5.0-cp314-cp314t-macosx_10_15_x86_64.whl (184.1 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

otlingam-0.5.0-cp314-cp314-win_arm64.whl (487.8 kB view details)

Uploaded CPython 3.14Windows ARM64

otlingam-0.5.0-cp314-cp314-win_amd64.whl (330.7 kB view details)

Uploaded CPython 3.14Windows x86-64

otlingam-0.5.0-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (237.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ x86-64manylinux: glibc 2.28+ x86-64

otlingam-0.5.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (185.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

otlingam-0.5.0-cp314-cp314-macosx_11_0_arm64.whl (133.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

otlingam-0.5.0-cp314-cp314-macosx_10_15_x86_64.whl (180.4 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

otlingam-0.5.0-cp313-cp313-win_arm64.whl (471.6 kB view details)

Uploaded CPython 3.13Windows ARM64

otlingam-0.5.0-cp313-cp313-win_amd64.whl (321.4 kB view details)

Uploaded CPython 3.13Windows x86-64

otlingam-0.5.0-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (236.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ x86-64manylinux: glibc 2.28+ x86-64

otlingam-0.5.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (185.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

otlingam-0.5.0-cp313-cp313-macosx_11_0_arm64.whl (133.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

otlingam-0.5.0-cp313-cp313-macosx_10_13_x86_64.whl (180.2 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

otlingam-0.5.0-cp312-cp312-win_arm64.whl (471.6 kB view details)

Uploaded CPython 3.12Windows ARM64

otlingam-0.5.0-cp312-cp312-win_amd64.whl (321.3 kB view details)

Uploaded CPython 3.12Windows x86-64

otlingam-0.5.0-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (237.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ x86-64manylinux: glibc 2.28+ x86-64

otlingam-0.5.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (185.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

otlingam-0.5.0-cp312-cp312-macosx_11_0_arm64.whl (133.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

otlingam-0.5.0-cp312-cp312-macosx_10_13_x86_64.whl (180.1 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

otlingam-0.5.0-cp311-cp311-win_arm64.whl (470.7 kB view details)

Uploaded CPython 3.11Windows ARM64

otlingam-0.5.0-cp311-cp311-win_amd64.whl (319.0 kB view details)

Uploaded CPython 3.11Windows x86-64

otlingam-0.5.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (235.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ x86-64manylinux: glibc 2.28+ x86-64

otlingam-0.5.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (183.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

otlingam-0.5.0-cp311-cp311-macosx_11_0_arm64.whl (131.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

otlingam-0.5.0-cp311-cp311-macosx_10_9_x86_64.whl (180.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

File details

Details for the file otlingam-0.5.0-cp314-cp314t-win_arm64.whl.

File metadata

  • Download URL: otlingam-0.5.0-cp314-cp314t-win_arm64.whl
  • Upload date:
  • Size: 491.4 kB
  • Tags: CPython 3.14t, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for otlingam-0.5.0-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 5b7d2d0b338298d5f15ae386dcf0130d4f638807ef54660505ca427f80bad247
MD5 1258dfcaecbf8219cc19c4f0eeed5706
BLAKE2b-256 d84ace5ccd4045482b1d62725a531cec08ae9a08ab43cc455a1fad43c9ce60fa

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: otlingam-0.5.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 334.0 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for otlingam-0.5.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 66cfa43b74844883bbe9a7012e33577303d10e5fc18e6e19eb0d41dc57c41175
MD5 4ec4a687ccd3322e9d832053c91bc3c0
BLAKE2b-256 802b29dcc48d399d778db4a89ffa73cf4935712ace652b0f4328e3a1e21d150d

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0e834071d8486d8db47823967ea9d41cbdf9ed20ce28eae0d2ed988bb15d626c
MD5 70e98f6726d447975ee422d80556edb7
BLAKE2b-256 931786f3d5a8dbf5b1ed2ee9a77683c1b791fea21026e6998cb0932e5a7a2316

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f936bf7bb00bdaf2dca2536cd32f11778021c5707bb5520fa8373b8cb29c8998
MD5 2938d0e60a2fca920253c4414177ec01
BLAKE2b-256 830a0bcf6a3df36973d668078f02231ea18faddece5bbbabc69c9933d1508cb8

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 734bb98d617bc4cc9fbb525f16669aa29f412d938a056b058137d68372de6a08
MD5 ec94e40a9e207cacac4a4de50cba5417
BLAKE2b-256 c0b5c88c814d235c41c6d47fcd31fca95c604f2223c3949e32e66da2f5b221ed

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 36fdce656be3f6446665e9286ce06fe513e6e0e17a3633434c912a425072cad8
MD5 b55696a3a0ce6b8f7063efe35140cd61
BLAKE2b-256 a09183efccff37bb0ddd100b49bbe296299d687a824b6064c1f457ec76add51f

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: otlingam-0.5.0-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 487.8 kB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for otlingam-0.5.0-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 d036c89c306df7908656599b9160f26fd860da3d2bd8be4b1ae075424a998c31
MD5 904bbe82c9e6376e5e9185ea2855b727
BLAKE2b-256 fc4a5445f1e6244e16245efb890d4e071ef15066dcd0dc3f973efe3aeb81ecc2

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: otlingam-0.5.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 330.7 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for otlingam-0.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7f6e904bcfd7443167e4bcbe6fc89833e59638cc7b0471110921af31d1bad4d5
MD5 4dabc31cff5077c9dc2ca23cea45e63d
BLAKE2b-256 958c99192876de69c78eb90744627292fc4d7b85b7740c8a19e740e32d6f6614

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d0f49ad5f49960e67deda8e87ed0a790312c229eac25c161af8f4302189a388b
MD5 987c698a4914e235809a01e85522e217
BLAKE2b-256 be46bcf5a7c24cf19a72613f9218fc6df5072e74b9c054b1b87a1286ab8f9349

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 db5d5156dae6cc045bd8b6722607217aeefd4e11d2a6c4b54cb4a0558b40fc32
MD5 a19c6126f4eec488131685911f86240d
BLAKE2b-256 c8ee91e190326350873051cdcda02248b278b76bba9b5f5a80440075fa6f1b69

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7824e873b9fb63b0d3f0b844c2fb2603242a489c3bedb26a2308654c04ebcf68
MD5 14ef882ef294f6e564487e9ba48403f5
BLAKE2b-256 659c7208974179e552861aeb01a4d2a4b5ab41fda8813bb57133ce98b5b8a6da

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 54dfc99d161baabff538c0b9f2b0192f4897be1498724c5525672d8062b27dd4
MD5 1afa10d114baade3ea1740bbee4713ea
BLAKE2b-256 b9bb5850fc28004243c18eb4177aacbb95afe8645a7e0d886db5e62a0fe756fa

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: otlingam-0.5.0-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 471.6 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for otlingam-0.5.0-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 570b1dbd87d6599a0e2a4a28c8d8d47ae0b41672f87a6a808ac8723510ffabc8
MD5 1b36ae855122021800e6fd15782e6235
BLAKE2b-256 a5dd1a3e6aebd7dfdb5b5da2d902ab203560be6b73ee37a6843194012f2b6de5

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: otlingam-0.5.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 321.4 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for otlingam-0.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 109d43ed3f3176fbe481efb1f08942932c17c40cace2e094f22a00a12028fce1
MD5 df484e1d626790ed1a7cf4b7992194be
BLAKE2b-256 f8a2a498e41653a47957fe500dc34420867537ebd8f5c147b6b1a8d5a73dbdd5

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 530fd029096bb6b371263cb923641d55c2e8663e4f0c81ff123b3bccc05f3aa3
MD5 379699409267c66bf3dc96494b754f0e
BLAKE2b-256 2091304230b6531da36fb103660a5d08672d5730c570d6aa3d4492624992d514

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cf60c0d64ef9f76a986e41c0dd635bb4daf6767260275d4423fe1b403cab29c4
MD5 a8fac4b4f6fe27d2aff1bf13dd16096e
BLAKE2b-256 174c3df268a8463e00a4dc43a938dde93e782c567be59f78ef8bf2afe8f93217

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d549e40a2c04ab5f3f61d10b120a8a12c3415abeeb5d62306659561b1a37bba5
MD5 e686697a0fc75ff6c2c046568356f9ff
BLAKE2b-256 18dd7d875b5df28431bab60a2a65e39d73fd9a4ac00555910d3ef4f20fe38000

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a93284ae76eb3af760d9bbf6915897a500e91e23b3a0e4eb1d0fe76e359ee9a5
MD5 0fdfee3cc09f2731d9535120f801210f
BLAKE2b-256 ad2cbe7c3a25858886ed6d817e795bc74f6a00f58cd81e158bda1e0ed90b84f7

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: otlingam-0.5.0-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 471.6 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for otlingam-0.5.0-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 a6a756bd9ea606f200745dd382697a5b9d31b3a20ace4dccc2970a2b57071f84
MD5 6a008e01a039ff4e50d06b2a48152bcb
BLAKE2b-256 0cd74ed4cb6f6d29c410dada105da7b48c8670f9dab20add4395f9a98651c7f6

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: otlingam-0.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 321.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for otlingam-0.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a50156276382f4472f5a32d9edfed93f3e08319660a7263b298958cc4ffdbd83
MD5 d8167466bdfc85deb92cb8ded09c3b32
BLAKE2b-256 ed045f99d611dc52404f02db7a17d696e7dc727a510994824c1768bef6d2b1ef

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a66ab469a224ff0e25a7237c8dcb558d4333d3f1f80694be37cba191d1c7b0b0
MD5 dfed75553015cd85374a4cd1888bac0f
BLAKE2b-256 a340a087c1b77a882290252d38dd32f2f2aa4babd02bf22fcb6b6b22aa0d228a

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 86965e89c38fbcc5e8053e1ec7cb0ebf22ffe6f9fa905562688b970158e9a1aa
MD5 c7a70d60f3fe516c7b4ddbac5ea77b69
BLAKE2b-256 7ba19b23d5d38874d8573e7abe5fb268f3d7c4c13820f9e134e5cf309e07c8a5

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4dc1c31e2f50eb5ed2a543b062b2afebcf32979ae5f76707ea4a35cfb7d35cbd
MD5 98a390612b58e9902e46f9864f5b9163
BLAKE2b-256 14b2af6e665c702fcf0f8193de2ae3f8b903c26b9f4baf153a8dd3043a4b8dab

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e8f0b5d474787ab8f5531a273c73d2dd717836db787213fea5c536d0465bf257
MD5 3cf70c23c793a157cd1f42e563ea5ecf
BLAKE2b-256 b67117b674eac3ebf7b3f0a3c4016f2a1de6d809d3d88267c59ae1cea7876e24

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: otlingam-0.5.0-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 470.7 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for otlingam-0.5.0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 2e7add93c9876623133259c8fafdfc36ca593643eba0d9bcc0602fb401d0bb63
MD5 d5705ee2de13adce1315ca44deb6046a
BLAKE2b-256 7e43ccf4bf144623521e38c27a61480ea2b7676821869139fa58de4a36f84fa4

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: otlingam-0.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 319.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for otlingam-0.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0a040f9de1418ab0a8b61757a821c45ca743c764d0b2ac1dcbf46a3637641814
MD5 a374def5fc1375277a6aa59729d0d500
BLAKE2b-256 7fa363839a68db12c66b7bd38edb1f550ce1647f1493e353a68ab69b9fd27554

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c779828bf3c28a9aeffcb12b90af60fba594beb44799404ee078c2c09dab8d26
MD5 ea1a7039e3285e957e2557b497b2fe07
BLAKE2b-256 1c0a3cb938c8376f0e50d6175323a25cd05bc97e6ead60e682179993b9ad8246

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 06462b34b1f603338eb42dfe63d4c2684046da081dc1fd3b6ae760a98a91b9a0
MD5 f51e4be98b417e1e60e9e2ff9fc2dcd3
BLAKE2b-256 099debea580268d9f509a126e1c1640e989141c96c8ebfc49e984b210be70e23

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4b024b7fb008e9ad5913ceafbd10161d955bdd7104ba49c7345550f4360f21d2
MD5 3c434515bd95a91a8ba7902f4c073a22
BLAKE2b-256 b6dc9084aad01ecc9de2750f3c4218543d6d0a040bbbea09200b0b7936c66f91

See more details on using hashes here.

File details

Details for the file otlingam-0.5.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for otlingam-0.5.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6a3ab50e8f820748eb8127ecb74bb17609cd1710a6f5d42ac30ec430e713afb7
MD5 4510addcfe1dc4846ea957d324c6519c
BLAKE2b-256 095936eaf8d3f68455601ef03d73b306c3cc7e285c50ae088e122bc8ec7eb666

See more details on using hashes here.

Release history Release notifications | RSS feed

0.5.3

30 files

0.5.2

30 files

0.5.1

30 files

This release

0.5.0 This release

30 files

0.4.3

2 files

0.3.1

2 files

0.3.0

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

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