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.

⚡ 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.2-cp314-cp314t-win_arm64.whl (491.4 kB view details)

Uploaded CPython 3.14tWindows ARM64

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

Uploaded CPython 3.14tWindows x86-64

otlingam-0.5.2-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.2-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.2-cp314-cp314t-macosx_11_0_arm64.whl (137.3 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

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

Uploaded CPython 3.14tmacOS 10.15+ x86-64

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

Uploaded CPython 3.14Windows ARM64

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

Uploaded CPython 3.14Windows x86-64

otlingam-0.5.2-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.2-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.2-cp314-cp314-macosx_11_0_arm64.whl (133.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.15+ x86-64

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

Uploaded CPython 3.13Windows ARM64

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

Uploaded CPython 3.13Windows x86-64

otlingam-0.5.2-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.2-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.2-cp313-cp313-macosx_11_0_arm64.whl (133.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12Windows ARM64

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

Uploaded CPython 3.12Windows x86-64

otlingam-0.5.2-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.2-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.2-cp312-cp312-macosx_11_0_arm64.whl (133.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11Windows ARM64

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

Uploaded CPython 3.11Windows x86-64

otlingam-0.5.2-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.2-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.2-cp311-cp311-macosx_11_0_arm64.whl (131.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

otlingam-0.5.2-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.2-cp314-cp314t-win_arm64.whl.

File metadata

  • Download URL: otlingam-0.5.2-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.2-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 52a4d9eb6ee93bec353e32b894bb43b54dca6797327afb647e430cbbde8f38e0
MD5 8973b1636b52bbc41a274c4b1d6caea9
BLAKE2b-256 1d7ed3804ae190cb88abd5e8405f0287d63d8859ed92bee00c7ffa90b2ce5ba2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.2-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.2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 eaba6e303d92095125e561b269ba2458a04f4d1f72631c2e1a124a688523dcde
MD5 f58ea8f981c01ff602c76c221ef38ad2
BLAKE2b-256 236337f15012b5024d38a772eb0adc27d0e22283407df087bafff32c5bc820de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 73fc9257ff0545a8f60127c1fb32ad1c84a6084853cc4977784827e2f12b1fa8
MD5 6ebaf51a588792acb826775c033c6f0c
BLAKE2b-256 6e637df7c8f4c0df27b08f79eee36528ef68a25d51f55641999999d9965a2e6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c4c9736a0c6c86f6681a002b0ea1e406bfc874e5c2d0d9c16c9aeb5b1c2811b6
MD5 b7ae2c546833cc6c2da695201f7ddd17
BLAKE2b-256 436645204ce357ec83421c4cbf94dd0c5999eb5b7ac2a692c744b15326357ae3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a29b52d1424e7133ec42121885856b7c48f51bdf872e615d60050709dd1f45d3
MD5 c4b5f958c0845e4625875f4c3cd43f34
BLAKE2b-256 5a8b090ffa5e16066ff673f7bcbc349b3c3473c6edc62a225209ce4a22698a51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 04d3138b100e868de3aa81c01766f0386c90b9de5f659a97a5d88dbb8a6e7ba1
MD5 51328be9ca944b20299d0144eb7e3e71
BLAKE2b-256 db2cf10d5a8e98def4c8f67e1ef9889d564c140cb8b7e798a3c1d6e065f24416

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.2-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.2-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 4b962225092a5f80a92a1be3ed35604469a9f6826cc8d638b7c54dbe73a7bd9b
MD5 7a0d07ebe3f853c932885a12b5c910c0
BLAKE2b-256 1652271d3afc899571c5ca67d5c9631ac6c083c9f53ee5b40f4177670d2b71c0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.2-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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c2373fd92ddb3299b101d791bd13378965b762e6a5ea8d19bc78d94533ea6468
MD5 728ccec0c5d5decf9d158d6fa9c2f7cd
BLAKE2b-256 33559b8523ce521b4f614b4bf19a2cf461d40f7b09651a13a71be7411e6efe6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 08fcb6cb682d8ca1e64475a980585c650b86635b47e46f3612fbd8d15d329e44
MD5 6bbd529bc36ce061e78ae7e937e52d84
BLAKE2b-256 2f47709c3393322e2082b3897dc67a5e356be818bb638b1033132643ab72b66e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ebaf97fa8fb35199417d5ddc7f4e4147ca5abade1f88e3b54d9b8d0fa70ca80e
MD5 e259660c619915da2f54e6efc7f2e94a
BLAKE2b-256 3c50f44d6006340648d377c116e8dd234e177969de341e076bdda2f4a3e0e6c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8b15aa73b5cd2249d82b6633a9d7c68e1f886a1985479404e98dd93bb6fc286d
MD5 4688c641656237792212abe52c188c9b
BLAKE2b-256 7f3aa8f0f66bdbe1ec6aff9601f60e7c5483fc19be6cda0dbf327b5c9f963e74

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b4f711553226c557342198ed47a721c6bb083d40741a499abecd998e014112d1
MD5 24273b7756c9f9efc3d8711601c1b4aa
BLAKE2b-256 ec85c337cc63bbfbcaf8e767791e87ff9262de42ed92f6776138ef895e3edb24

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.2-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.2-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 5f2c96a3ab3eb72dd4c22897eb2e95082f3bd22011c64cd49fdae5061499119e
MD5 2f9873bc55cfa24771d351b0ca75bcd0
BLAKE2b-256 8a9d9e275a194318bdb384d341516bcb6152db9da87bd9a9142a97667467d27f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.2-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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3c14a2a18c17d5137a8af85342c5d65d4fc99e20939c29b158455cfd6e0781f2
MD5 225f068f0397626bed1ece696cb16b86
BLAKE2b-256 e9913eb768c22a5b6eaf3a371ff21ed0be6a85b539746fdbd73d68c542434980

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b3887c8a56e443575d5283fff6bad40b2b08fc987891a912aad934672a91ab07
MD5 47234a4d27c2c327d616062914148727
BLAKE2b-256 54a5c8fe2ad664a37dc4e7a007f62f8e36585675f6c96bc570bc3360e7c0c536

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 49b9fc738ab5a7c715d50a44672a13791fcbc11734a4daa6e546927afea55e8e
MD5 1acae6cd5a1defd392e94336ba5b9046
BLAKE2b-256 a5fd9c1787d116d01231a2813bc10e3b411e18cb2808b4e7f5d46714550f9a5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 83fda91b548a28771dd7683d1808311d1070a7e59963b3dc24435d2db354d2d7
MD5 fd5d0c1e438a051c0142c573fa4e9bc3
BLAKE2b-256 c89885c83f9f2688fa3e5475a7ebea326e00e11b7db3bf6b1eabeae17556a489

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 31596454b72ab4323b25549b89c538ec1937050d3fabb0dc842f28cf48b4bac4
MD5 714da049108523185303fb3090663599
BLAKE2b-256 e39082c1180d75e57db36b557ab3c33c755e018319b1d0bc0d1a74b403045c9a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.2-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.2-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 184a7a6373911d3bef38e676dad9fbb0aa038552dfa76043d83247c277a59b49
MD5 39268dd8d2657832324bb227e19bd6ed
BLAKE2b-256 d5d1bcbf481ece9e535a604207af025a54cd50b6cb685289ae6def0807defd35

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.2-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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d74e0fec8945a6e518a7f4d7605d6d947d55c67a9e7d78b4c5e14e2ae3f2c731
MD5 b6e60a418dbb12fea88c360c334916c7
BLAKE2b-256 1dd13193065d506453ac5b9822ddf4a410eda4879f43ac92b8ae6efd5a3926eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72aacf86f6a8e1ffbedec6977c35a7383504ff33b9a2efcfc7699ce54e5c3b8d
MD5 95bd4c3ac67bedc8978c206237c8d5d9
BLAKE2b-256 fcc1e8c59b2851ab62f095387622396aded3494314dc7da5fc11978b0d6c6e9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e14e66d1aa62e3122c94eff9d343202faf4b90921d58cfc38892f2006a24ec4e
MD5 120951b3997793d38d15a638cf0b1067
BLAKE2b-256 706a7c5402a4f21c2508b793ebde8ddca3e86b335330c0a6c6137ddb5f39ed5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 134a6c3d329adc0ec180049284a0b3e3bc9f18651d421dfadac15c7fe97dd308
MD5 09257b5c9e27e3027cf504c9b290fbf7
BLAKE2b-256 aa1445535dc80be332d9be049a8878dd97ec0f4c085ee3e36d079e399555eead

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 278dac97d0b48c35ff98c3deefe522a3f86968b609c8ed0ce285a9b8aa85f3ee
MD5 1d142a035834dec44146c0842347dbf2
BLAKE2b-256 8777419db4ed0d973e0a611ba0f030b4962dfa82c327720d5c1ebbfa6698de64

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.2-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.2-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 5d27a6ebb6636c6b17041f337cd7bc85f6b4f46591b06b4ed20aa75041e646d5
MD5 c77aab1bfb799546f16003fdc8ddf80c
BLAKE2b-256 60cceedd320ad6355df7e13aedd3e83af5543bb3cc8b83c36f3da3c3ef85dc3d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.2-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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 17f71abf9dccdb121980725c93b4d3891984223da80bb0bd05205e6cf630e212
MD5 38566fbfa31baef395e34326a07b4eb5
BLAKE2b-256 c30dba583fc1294402228bfec802f8c574c834d6d9557b1b830690b2d966aea6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0018998f796902ec54abcbaf6d27d407dca361b385ea76c284f67b43855c4cc9
MD5 06ed9c3e0eddd834addb3a047e69a11d
BLAKE2b-256 4b0c18220326b17d3365647b35dd9d6b9db11c387e921a02c942164afb51142d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3c59aca6c4c03fea6af037fc3ffa4a7f85c04d31203b612b5a6761b42f9f9666
MD5 da46e359af8a3c8eaae7f7798065ef09
BLAKE2b-256 3fa07d3a07de097fcd578355a9b57ab04fe34c2d949fde50a069515d24e4a8b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c93f98b745e8b7f98ee981854078713a6648bd330c564553df18aff54f57bc9
MD5 394b12740e7bf38c7ed3fb52aa265060
BLAKE2b-256 3c8bebfd6c22cba3dfa3e4ebf64c882b3a4f3ae2c2ff360b27e8c127eca6d968

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8ebb13af8b8bf9cc5581399e9cd6c3ab818ee25490980321c3f1f48d50151da8
MD5 c9658673a1aa661ff1531d47b1fefa67
BLAKE2b-256 2a5207e5283b2e5c570abab3bcc4bac66e1d280dfb2e4549fb9b24428315b868

See more details on using hashes here.

Release history Release notifications | RSS feed

0.5.3

30 files

This release

0.5.2 This release

30 files

0.5.1

30 files

0.5.0

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