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.1-cp314-cp314t-win_arm64.whl (514.1 kB view details)

Uploaded CPython 3.14tWindows ARM64

otlingam-0.5.1-cp314-cp314t-win_amd64.whl (390.7 kB view details)

Uploaded CPython 3.14tWindows x86-64

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

Uploaded CPython 3.14tmacOS 11.0+ ARM64

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

Uploaded CPython 3.14tmacOS 10.15+ x86-64

otlingam-0.5.1-cp314-cp314-win_arm64.whl (511.2 kB view details)

Uploaded CPython 3.14Windows ARM64

otlingam-0.5.1-cp314-cp314-win_amd64.whl (387.3 kB view details)

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.15+ x86-64

otlingam-0.5.1-cp313-cp313-win_arm64.whl (493.8 kB view details)

Uploaded CPython 3.13Windows ARM64

otlingam-0.5.1-cp313-cp313-win_amd64.whl (375.1 kB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

otlingam-0.5.1-cp312-cp312-win_arm64.whl (493.8 kB view details)

Uploaded CPython 3.12Windows ARM64

otlingam-0.5.1-cp312-cp312-win_amd64.whl (375.1 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

otlingam-0.5.1-cp311-cp311-win_arm64.whl (492.5 kB view details)

Uploaded CPython 3.11Windows ARM64

otlingam-0.5.1-cp311-cp311-win_amd64.whl (374.5 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

otlingam-0.5.1-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.1-cp314-cp314t-win_arm64.whl.

File metadata

  • Download URL: otlingam-0.5.1-cp314-cp314t-win_arm64.whl
  • Upload date:
  • Size: 514.1 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.1-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 a57413b7367ca7ba46c252e46f3f69297d9495a8bbc28d679d258c4dade28f90
MD5 c821a0980abfaf0425fc9a8129846e9a
BLAKE2b-256 d0692e7573ea2c4b43e050d0f10417305c7c9636a052a77a419636daaff01a5d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.1-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 390.7 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.1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 a5ea3b6062e92b0c184419736791cf95fccbd93cdbbd9b84aaa77a07eaaf0f5f
MD5 63ffa91d844acaf530175b61617f9b4c
BLAKE2b-256 e99a131f3a90698405d7475c7135042210a74c668150b2fac32827b6a382f292

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2459ca445742aba1c195f3c315c2473fe618b46840acf1d5a46747ae92ef56dc
MD5 f49d1771bcb73f2d18659bf2a5b2dc68
BLAKE2b-256 39e21b0f28c7106a7dd9d105e7b00cc7cba304f074919847bbeba677e3214dc2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 779105663738fb3272d884fa3486ee02d4aa142081294cd109c5328abe311b05
MD5 c6f71751e6828920a093260069cc0c3b
BLAKE2b-256 bebf7d33737eb1f468f9717588098db87de46bab9bb5bd4907e0af8786cd923e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d04ea0fb0da4853dcc2ac79649eccc9669d7d1bc80d101dc073e2199e0983571
MD5 49188305f430ac1ea588448421ff5100
BLAKE2b-256 a4d1ddaa8ebba4bef1202b4c78c9f93f16bca147665c4f5e319cb17edf211ff2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e51616414b193b5ab0eb56f10762a68bacb5ed58f7e689d2777eca5af5723119
MD5 1f7349b4568280c0e5b71ce61093d37c
BLAKE2b-256 0eb2f63f6008246f47fbd0e98efec75f7db45d93feafb8e45772816b0e5d7d59

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.1-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 511.2 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.1-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 94744564a2936210d4567ee55b530dccd54bfbcfe85d544d7d609a4c7d0ec821
MD5 8eccb4d6ae13974de5a28706d294f79b
BLAKE2b-256 1dad85ed5db7a12b559626c5690fe02eae2f66a2779e4a61f6d80e00e8ecefce

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 387.3 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.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 17617f7221416c8315e06cf602f1957f20e906b77a69133a00af41603b4c6bc6
MD5 c795d5e2f939c3ac442b06f6f1c2fe01
BLAKE2b-256 f8b4b4c1d4fbde042ea4cde1c2d7d54e0e8a2297f546ee97d7c34156edffdb60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 001a62d0ed166b6cbc7f2ae9d094d729bade8695598ca0eaa655034499637343
MD5 b4a7106c6e4cb838beb8a17e469198e1
BLAKE2b-256 fba58e77f94cbffe439af60f2f98280cd5e973c5832875c4faa4f40cf4b76eb5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1080793d116f962c45764216a4463542e0f67f80b2a7e54aebe1c55732c25c51
MD5 99f392bd4c2f9cd8318c57546afc0743
BLAKE2b-256 7fee681243f5d3e1eabc32c65111e2c098148f16bbcc03cf25f1c41534f13480

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca6eb08472a2aca5b95a4000c3044e360f62064f077d23193dc2b98906d20f99
MD5 93f9968d97fc881e6a7908fa56aff3d2
BLAKE2b-256 d2702a9db29497c8784edf4a10e2e02280329c2389ae55ca7a5894200b0c0969

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 076f90b13f2a9a7f678b9a3cde627d663e42261a3a149b8a7d765a3e8ac8db1b
MD5 73684b3e2cc05ead8226e475b67a62a9
BLAKE2b-256 cded749b4b402887318a466c28d2fe690b97e310cd06cfb86484bad88f081138

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.1-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 493.8 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.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 e8f85fc3f2ba854e01576944dfc4339a9596ce512b30c5705306693eebe4137b
MD5 298b133d4be2817ec52a8b04342e6813
BLAKE2b-256 593b23ff09ed4064b5988f3795450c227734b7fc525f845d8cda115258eea658

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 375.1 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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c6e2316efa8d05dc34d7e73eeb31643ba87b96d4a5da0b6632a9c0ac9d344b9f
MD5 a1dc0bfbe48e940f6258416875d10f05
BLAKE2b-256 0e9a7be1fddb363a8e72cfe4b5e9302f4b84923f1d64fa9fa12d96f823cb8219

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f825f3f73fe79170e0de5a16c6e4a9f96a6bbaa28ca583cfc847f341daf22dd9
MD5 535eca66c65a088f9449609c511182c9
BLAKE2b-256 9bb4cd3c5967e275809b779f34409260e127309926c5c3ce6d0c861df78a6453

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d57691c9147e4139352260cab075bdbe6ad89578c723fc8b0774d231f0971ed5
MD5 b760c8ba97ee351f392e547fc05f07ab
BLAKE2b-256 08d47370d41c2add573127f6a164d45ec26e0512d8d41458f49cf1df06750541

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6b1795ffa53ab490da79ddd1a74d606a034de1bcd4c0490a6907aba8c96e65a0
MD5 5affa413071ea867adab0bc4ffc6ace4
BLAKE2b-256 8ecaace703911fe297e96679eef115c1fb368d35c1ded4cc39e44fb6101a0385

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 23b06bc49d6e43940dc6e3c4fafcc75912d94bf86f290dd7bb87f2f99db4415d
MD5 13323ea075ff94ff30022e986c948e05
BLAKE2b-256 b843b08409bfdfc6b2de482f570806bd440b932efda02c767bc033e4a2512765

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.1-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 493.8 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.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 5ad0c89c83245d96d054acc9a80fef296bb29c4b1c0b8e9edbc93d7bf8defbde
MD5 aa5a936be36f160cbbc6348b35fc7ef8
BLAKE2b-256 74bec3ff9a9eda267039bd9bf2c316048bbdcc4226127c535808c763778b970d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 375.1 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 76ee39ed5773538cd3bb7c8db378abbc926b0bf06b667560a9dc2a7561a9b8e7
MD5 64a1e78f3ab9bafcb1de1ffc650bc35a
BLAKE2b-256 dcfac10d7030cc5b533bf8de8f5b35bbd4fb3311b6d6d2c4da9af6f1191d2377

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 366c1a89e833816e5cf770d490ef2f25d5377ccc0db23fca6ef1716c4b717db9
MD5 e69bd3d1071badfdc907d50ba9b8caff
BLAKE2b-256 f7bdb77b6daf8d2822b6536e2b62f61ca23cfea718a0e2d0af0cf93314a3618e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 00ace506c02744828d8d1d64d1419fe1ceb6a6b4275d51a46a78754a0e469ef7
MD5 8aca7a95cc5bc135ee5e7bb1c767a5b0
BLAKE2b-256 f449cbc4ad8fbcf2bf6b6e5423941e8516d03a4fd975b5300a19ba432fee4d7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a7bf36c434e735107bdae1e888c21b2960a878eaf72aa54d22546795a76312f9
MD5 2773fbe4c24ccf36feb170006f0d16e5
BLAKE2b-256 9a0eab7a2b76580778c6a1f5344c81bd6d88aaca886ba166f89dd8e334b01099

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 fffbf462382161e5e3d96fda3c6b48b8b1a3f4e558938cc2cb985e0998d39007
MD5 8904f0cadb324b9ece427007ea97ab3f
BLAKE2b-256 136d7706f18ee462e73d907319b7ec29d8c3a0e3807f9ea86035a92db6f22f0b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.1-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 492.5 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.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 40c586d84dd68892458bad242587171ec657e118d5382026e164c1dd27fb1bd6
MD5 f244cfd22b2e03ed6bbe94b142728c1b
BLAKE2b-256 135baace4cb4dab50e9e0ad27f1463c3013c5d83eb7dd08ccb593d117bded75f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: otlingam-0.5.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 374.5 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 00c3a4d2d2d36c1421f21cbf4cc9fecaf488af4d62242141f687e3552f403de6
MD5 23499389ffd4f45aa6e231d275b04ede
BLAKE2b-256 6ef626d4a419c006043a57d2442f109a3931e2c2b64ab5bbeaa3aadb40ca9a26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3dd9c339500d061a53f7cdb0c261c50784e2aec75287ebefa8720fd149775df4
MD5 17a4e14ce5689161c32c74cc657054f9
BLAKE2b-256 0f5983518ffe399a8cd29f5971a69e920c5240206b594eac063464575bdf5e72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8d512cd74689cdd3df836128d9bd6198f41fddfd40715a444a43dcc3f3863ed1
MD5 07b985e6e484a9f47449af655a7a1132
BLAKE2b-256 a072ed499c3e4962e1a10b037cc5c793abdca478a2eea8ce5e2eef726cb68b8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 98be4cab66e614b7d5d07ae86eb36b68c7fb40a606f3de5c6c6580249f55454e
MD5 af6760793b6bf04174d5d9db91534489
BLAKE2b-256 853cb346c1935669b2d2acc6659aa083ed622e1d2a28ae048252a206d8534e6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for otlingam-0.5.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3af8c03fbf15216284cbda57647155f6c706cc17d32f26460873e553ee271c1f
MD5 36655f181573d025cd26a460b2c62301
BLAKE2b-256 235bf28afb1708377de7f5dcd060ce73f8f8ead207987a9d33167acc1ed95caf

See more details on using hashes here.

Release history Release notifications | RSS feed

0.5.3

30 files

0.5.2

30 files

This release

0.5.1 This release

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