Skip to main content

odis-python

PyPI

Python bindings for the odis Formal Concept Analysis library, powered by Rust and PyO3.

Background

Formal Concept Analysis (FCA) works on formal contexts — cross-tables pairing objects with attributes via a binary incidence relation — and derives the complete lattice of formal concepts from them. odis implements the core FCA algorithms in Rust and exposes them through this Python interface. For an introduction to FCA see Uta Priss's FCA page.

Installation

Released package (PyPI)

pip install odis-python

Development build (from source)

Requires a Rust toolchain and maturin.

git clone https://github.com/odis-rs/odis
cd odis/odis-python
pip install maturin
maturin develop --release

Quick Start

from odis import FormalContext

ctx = FormalContext.from_file("odis/test_data/living_beings_and_water.cxt")
print(f"Objects: {ctx.objects}")
print(f"Attributes: {ctx.attributes}")
concepts = list(ctx.concepts())
print(f"Number of concepts: {len(concepts)}")

FormalContext

FormalContext stores a set of objects, a set of attributes, and a binary incidence relation mapping object–attribute pairs.

Construction

from odis import FormalContext

# Empty context
ctx = FormalContext()

# From a .cxt (Burmeister) file
ctx = FormalContext.from_file("odis/test_data/living_beings_and_water.cxt")

# From a dict mapping each object to its set of attributes
animals = FormalContext.from_dict({
    "cat":  {"has_legs", "has_fur", "can_move"},
    "fish": {"lives_in_water", "can_move"},
    "fern": {"needs_chlorophyll"},
})

The examples below all use ctx as loaded from living_beings_and_water.cxt, whose objects are fish leech, bream, frog, dog, water weeds, reed, bean and corn. Note that fish leech is one object — the animal — not two.

Introspection

n_objects, n_attributes = ctx.shape   # e.g. (8, 9)
n = len(ctx)                          # same as ctx.shape[0] — number of objects
print(ctx.objects)                    # ['fish leech', 'bream', 'frog', ...]
print(ctx.attributes)                 # ['needs water to live', ...]
print("frog" in ctx)                  # True — tests object membership
print(repr(ctx))                      # human-readable summary

Incidence Access

# Read: does object have attribute?
val = ctx["frog", "lives in water"]   # True
val = ctx["frog", "breast feeds"]     # False

# Write
ctx["frog", "lives in water"] = False
ctx["frog", "lives in water"] = True

Mutation

# Add an object with no attributes
ctx.add_object("shark")

# Add an object with some pre-set attributes. Re-using an existing name
# raises ValueError.
ctx.add_object("whale", {"needs water to live", "can move", "breast feeds"})

# Add a new attribute column
ctx.add_attribute("is_endangered")

# Remove
ctx.remove_object("shark")
ctx.remove_object("whale")
ctx.remove_attribute("is_endangered")

# Rename
ctx.rename_object("frog", "toad")
ctx.rename_attribute("needs water to live", "aquatic")

Serialisation

# Save to .cxt file
ctx.to_file("/tmp/my_context.cxt")

# Deep copy — mutations to the copy do not affect the original
copy = ctx.copy()
copy.add_object("clone_only")
assert "clone_only" not in ctx.objects

Derivation Operators

# Extent: the set of all objects sharing every given attribute
extent = ctx.extent(["needs water to live", "can move"])

# Intent: the set of all attributes shared by every given object.
# Names that are not in the context are dropped silently, so a typo here
# quietly computes the intent of a smaller set instead of raising.
intent = ctx.intent(["fish leech", "bream"])

# Attribute hull (closure of an attribute set under the Galois connection)
hull = ctx.attribute_hull(["needs water to live"])

# Object hull (closure of an object set)
ohull = ctx.object_hull(["frog"])

# Upper neighbor: the extent of the concept directly above the given concept
# in the lattice (the least concept with a strictly larger extent)
neighbor = ctx.upper_neighbor(["frog"])

# All results are LabelSets — iterate or convert freely
print(list(extent))        # ['bream', 'dog', 'fish leech', 'frog']
print("frog" in extent)    # True or False

Drawing Shortcut

FormalContext provides convenience methods to draw the concept lattice without instantiating a Drawing object; see Drawing for the full API.

svg_str = ctx.draw_svg("dimdraw", width=800, height=600)
drawing  = ctx.draw("dimdraw")

Concepts

FormalContext.concepts() returns a ConceptCollection (eager, indexable) or a ConceptGenerator (lazy, forward-only). Each element is a Concept with .extent and .intent properties.

# Eager (default) — all concepts materialised at once
concepts = ctx.concepts()
print(f"Found {len(concepts)} concepts")

# Access by index
first = concepts[0]
print(list(first.extent))   # objects in this concept
print(list(first.intent))   # attributes in this concept

# Iteration with unpacking
for extent, intent in concepts:
    print(list(extent), "→", list(intent))

Lazy concepts are covered under Lazy Generators & Mutation Guard.

Implications

The canonical implication basis (Duquenne–Guigues basis) is the smallest set of implications that logically entails all implications valid in the context.

basis = ctx.canonical_basis()
print(f"Basis size: {len(basis)}")

for impl in basis:
    print(list(impl.premise), "→", list(impl.conclusion))

# Access by index
imp = basis[0]
print(list(imp.premise))     # antecedent attributes
print(list(imp.conclusion))  # consequent attributes

# Optimised variant (same result, faster in practice)
basis_opt = ctx.canonical_basis_optimised()

Iterating pseudo-intents one at a time with next_preclosure:

# next_preclosure(basis, current) returns the next closed attribute set in
# lectic order. Terminates naturally when len(result) == number of attributes.
n_attrs = len(ctx.attributes)
current = frozenset()
while len(current) < n_attrs:
    nxt = ctx.next_preclosure(basis, current)
    if len(nxt) == n_attrs:
        break
    print(list(nxt))
    current = nxt

Attribute Exploration

Attribute exploration is an interactive algorithm that discovers the canonical basis by consulting an oracle (a Python callback) about whether proposed implications hold. The oracle may reject an implication by supplying a counterexample.

def my_oracle(premise, conclusion):
    """Called for each proposed implication.

    premise and conclusion are LabelSets (iterable over strings).
    Return True to accept; return (name, attrs) to reject with a counterexample.
    """
    print(f"Does: {list(premise)}{list(conclusion)}?")
    return True  # accept everything: the result is the canonical basis

basis = ctx.attribute_exploration(my_oracle)
print(f"Discovered {len(basis)} implications")

The callback receives two LabelSet arguments — premise and conclusion:

  • Return any truthy non-tuple value (e.g. True) to accept the implication.
  • Return (name: str, attributes: Iterable[str]) to reject it with a counterexample.

When a counterexample is provided, attribute_exploration adds that object (with the given attributes) to the context and continues.

A counterexample has to be one: the object must have every attribute of the premise and miss at least one of the conclusion. An object that does not refute the implication leaves it valid, so it is proposed again — and an oracle that keeps answering with the same object never terminates. Deriving the counterexample from the premise itself is always safe:

rejected = 0

def counterexample_oracle(premise, conclusion):
    global rejected
    if "can move" in list(premise):
        rejected += 1
        # Has exactly the premise, so it misses the conclusion by construction.
        return (f"counterexample_{rejected}", set(premise))
    return True

ctx_copy = ctx.copy()
basis = ctx_copy.attribute_exploration(counterexample_oracle)
print(f"{rejected} rejected, {len(basis)} implications, {len(ctx_copy.objects)} objects")

Drawing

Poset lets you directly define a partial order. Edges describe the covering relation: (u, v) means node u is directly below node v (u ≺ v), given as 0-based indices into the node list. Cycles are rejected with ValueError.

from odis import Poset

# Diamond lattice
p = Poset(
    ["bottom", "left", "right", "top"],
    [(0, 1), (0, 2), (1, 3), (2, 3)],
)

# Quick SVG
svg = p.draw_svg("dimdraw", width=800, height=600)
with open("order.svg", "w") as f:
    f.write(svg)

# Drawing object for programmatic access
drawing = p.draw("dimdraw")
if drawing is not None:
    for node in drawing.nodes:
        print(f"{node.object_labels[0]}: ({node.x:.1f}, {node.y:.1f})")
    print(drawing.edges)   # list of (u, v) covering-relation pairs

Concept Lattice Drawings

odis can draw the concept lattice as a directed graph. Three layout algorithms are available: "dimdraw" (dimension-based, default), "sugiyama" (hierarchical) and "dimflux" (a DimDraw layout refined into an additive one by a force-directed model, which spreads the nodes away from the edges they are not part of). "dimflux" needs the objects and attributes of a concept, so it is available on a context but not on a bare Poset.

timeout_ms bounds the layout search and defaults to one second. Pass timeout_ms=None to search until the layout is a proven optimum — the cost of that proof climbs steeply with the size of the lattice, so it is opt-in.

# Quick SVG string — no intermediate Drawing object required
svg = ctx.draw_svg("dimdraw", width=800, height=600)
with open("lattice.svg", "w") as f:
    f.write(svg)
# Full Drawing object for programmatic access
drawing = ctx.draw("dimdraw")
if drawing is not None:
    print(f"Nodes: {len(drawing.nodes)}")
    print(f"Edges: {drawing.edges}")              # list of (from_idx, to_idx) tuples
    print(f"Coordinates: {drawing.coordinates}")  # raw layout (x, y) per node

    for node in drawing.nodes:
        print(f"  node {node.index}: ({node.x:.1f}, {node.y:.1f})")
        print(f"    reduced objects:    {node.object_labels}")
        print(f"    reduced attributes: {node.attribute_labels}")

    # Convert to SVG from Drawing object (useful for custom sizes)
    svg2 = drawing.to_svg(ctx, width=1200, height=800)
    with open("large_lattice.svg", "w") as f:
        f.write(svg2)

# Jupyter notebook: display inline (requires IPython)
try:
    from IPython.display import SVG, display
    display(SVG(data=svg))
except ImportError:
    pass  # not running in a notebook

DimFlux

"dimflux" starts from the DimDraw layout and projects it into the space of additive diagrams, where every concept sits at the sum of one vector per object in its extent and per attribute in its intent. A force-directed model then spreads the nodes away from the edges they are not part of, without letting them leave the cells DimDraw put them in.

Two properties follow, and both help a reader: equal steps through the lattice are drawn as equal vectors — so a distributive part of the lattice comes out as a grid of parallelograms — and concept nodes keep their distance from unrelated edges.

ctx = FormalContext.from_file("odis/test_data/living_beings_and_water.cxt")

# The same lattice under each of the three layouts
for algorithm in ("dimdraw", "sugiyama", "dimflux"):
    svg = ctx.draw_svg(algorithm, width=800, height=600)
    with open(f"lattice_{algorithm}.svg", "w") as f:
        f.write(svg)

# The additive structure shows up in the coordinates: two covering edges that
# add the same objects and drop the same attributes come out as the same vector.
from collections import defaultdict

drawing = ctx.draw("dimflux")
xy = drawing.coordinates
families = defaultdict(list)
for lower, upper in drawing.edges:
    step = (round(xy[upper][0] - xy[lower][0], 6),
            round(xy[upper][1] - xy[lower][1], 6))
    families[step].append((lower, upper))

parallel = {step: edges for step, edges in families.items() if len(edges) > 1}
print(f"{len(drawing.edges)} edges drawn as {len(families)} distinct vectors")
print(f"{len(parallel)} of those vectors are shared by more than one edge")

"dimflux" spends its search budget on the DimDraw layout it starts from, so timeout_ms trades quality against time just as it does for "dimdraw":

quick = ctx.draw("dimflux", timeout_ms=100)     # good enough to look at
better = ctx.draw("dimflux", timeout_ms=5000)   # a longer search for the base layout

Because it needs the objects and attributes behind each node, "dimflux" is available on a FormalContext but not on a bare Poset, which carries only the order.

Titanic

The Titanic algorithm enumerates iceberg concepts — concepts whose extent meets a minimum support threshold. Useful for large or sparse contexts where only frequent concepts are of interest.

from odis import FormalContext, Titanic

ctx = FormalContext.from_dict({
    "a": {"x", "y", "z"},
    "b": {"x", "y"},
    "c": {"x", "z"},
    "d": {"y", "z"},
    "e": {"x"},
})

iceberg = Titanic()

# Only enumerate concepts with at least 2 objects in their extent
top_concepts = iceberg.enumerate(ctx, min_support=2)
print(f"Iceberg concepts (support ≥ 2): {len(top_concepts)}")
for c in top_concepts:
    print(f"  extent={list(c.extent)}, intent={list(c.intent)}")

LabelSet

LabelSet is a set-like view of string labels. It is returned by derivation operators (extent, intent, attribute_hull, object_hull, upper_neighbor), implication properties (premise, conclusion), and concept properties (.extent, .intent).

intent = ctx.intent(["fish", "leech"])

# Membership test
print("can move" in intent)   # True

# Iteration — yields strings directly, no index translation needed
for attr in intent:
    print(attr)

# Convert to standard Python containers
as_list = list(intent)
as_set  = set(intent)

Lazy Generators & Mutation Guard

Passing lazy=True to concepts() or canonical_basis() returns a generator that produces one concept/implication at a time without materialising the full collection. Lazy generators hold a shared reference to the context's internal state, so any mutation while a lazy generator is alive raises RuntimeError.

ctx = FormalContext.from_file("odis/test_data/living_beings_and_water.cxt")

# Create a lazy generator
gen = ctx.concepts(lazy=True)

# Iterating is safe
first = next(gen)
print(list(first.extent))

# Mutating while the generator is alive raises RuntimeError
try:
    ctx.add_attribute("new_attr")       # raises RuntimeError
except RuntimeError as e:
    print(f"Caught: {e}")

# Release the generator first, then mutate freely
del gen
ctx.add_attribute("new_attr")          # OK

The same guard applies to canonical_basis(lazy=True) and Titanic().enumerate(ctx, ..., lazy=True).

Error Reference

Exception When raised Example trigger
FileNotFoundError .cxt file path does not exist FormalContext.from_file("missing.cxt")
OSError Other I/O error reading a file Unreadable file permissions
ValueError Malformed .cxt file Invalid Burmeister format
KeyError Unknown object or attribute name ctx["ghost", "flies"]
ValueError Duplicate object or attribute name ctx.add_object("frog") when already present
RuntimeError Mutation while a lazy generator is alive ctx.add_attribute("x") during active generator
ValueError Unknown drawing algorithm ctx.draw("unknown_algo")
ValueError Non-positive SVG dimensions ctx.draw_svg("dimdraw", -1, 600)

Download files

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

Source Distribution

odis_python-2026.9.0.tar.gz (55.6 kB view details)

Uploaded Source

Built Distributions

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

odis_python-2026.9.0-cp314-cp314t-win_arm64.whl (424.3 kB view details)

Uploaded CPython 3.14tWindows ARM64

odis_python-2026.9.0-cp314-cp314t-win_amd64.whl (451.7 kB view details)

Uploaded CPython 3.14tWindows x86-64

odis_python-2026.9.0-cp314-cp314t-win32.whl (434.5 kB view details)

Uploaded CPython 3.14tWindows x86

odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_x86_64.whl (768.1 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_i686.whl (809.5 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ i686

odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_armv7l.whl (849.3 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_aarch64.whl (719.7 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (557.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (633.2 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ s390x

odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (624.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64le

odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (571.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (541.2 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

odis_python-2026.9.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl (600.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.5+ i686

odis_python-2026.9.0-cp314-cp314t-macosx_11_0_arm64.whl (512.3 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

odis_python-2026.9.0-cp314-cp314t-macosx_10_12_x86_64.whl (534.4 kB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

odis_python-2026.9.0-cp39-abi3-win_arm64.whl (435.8 kB view details)

Uploaded CPython 3.9+Windows ARM64

odis_python-2026.9.0-cp39-abi3-win_amd64.whl (463.7 kB view details)

Uploaded CPython 3.9+Windows x86-64

odis_python-2026.9.0-cp39-abi3-win32.whl (443.9 kB view details)

Uploaded CPython 3.9+Windows x86

odis_python-2026.9.0-cp39-abi3-musllinux_1_2_x86_64.whl (776.5 kB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ x86-64

odis_python-2026.9.0-cp39-abi3-musllinux_1_2_i686.whl (819.7 kB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ i686

odis_python-2026.9.0-cp39-abi3-musllinux_1_2_armv7l.whl (859.8 kB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARMv7l

odis_python-2026.9.0-cp39-abi3-musllinux_1_2_aarch64.whl (731.1 kB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

odis_python-2026.9.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (567.5 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

odis_python-2026.9.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (643.3 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ s390x

odis_python-2026.9.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (635.2 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ppc64le

odis_python-2026.9.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (582.3 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARMv7l

odis_python-2026.9.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (551.7 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

odis_python-2026.9.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl (612.2 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.5+ i686

odis_python-2026.9.0-cp39-abi3-macosx_11_0_arm64.whl (525.9 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

odis_python-2026.9.0-cp39-abi3-macosx_10_12_x86_64.whl (538.7 kB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file odis_python-2026.9.0.tar.gz.

File metadata

  • Download URL: odis_python-2026.9.0.tar.gz
  • Upload date:
  • Size: 55.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0.tar.gz
Algorithm Hash digest
SHA256 c2c8d6d2eb23c2c6f0b8a5bf8d661b6c949e069619e4a099a1c9d42f3c2620a0
MD5 2c344ae4487857078d5940b05eb4cd6e
BLAKE2b-256 314a2ade97941d4c87bbacc8272b8da0d5cd5b49a0e91fdf28e43e6453ed8ed9

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-win_arm64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-win_arm64.whl
  • Upload date:
  • Size: 424.3 kB
  • Tags: CPython 3.14t, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 90fb8ba67e44c28a6b0e4fa4374483b4db60f0fda75861506acc2766042eaf3c
MD5 d4d0ca18f66ba7458c15fe9834bdd1fd
BLAKE2b-256 ea4a6b33c6365f12fe8a3fee5c92c0fbd6f90aaf5a478cb271e45de2be921de0

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 451.7 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 be36f7bb0e52872cc192e08ed4c15a811a6c33f3eb0eb682bfd16c48ead07019
MD5 77b0a56078cbf29db9810c96feabfe82
BLAKE2b-256 22422ae0f0397870cd9a79c176d85faa232355e5651fef086acb781ee8e899e6

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-win32.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 434.5 kB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 b7d187f0a830b984de43b43571fbf200c1d71904b7e4d1145d100f3bc35bad0e
MD5 76bae807f761e12b536ad1800739e09e
BLAKE2b-256 8c91db9b5ea3bb67cd8d2eef846dc56a8f0ccb7b02271a58f060e2a351a1d16e

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 768.1 kB
  • Tags: CPython 3.14t, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 19fbddd87f6fe9fa31e61fdbf0e67daedc1c0b2f053b3ecc3bc7ced475f2121c
MD5 d422388ecc14be98f01e7f09768a9bbd
BLAKE2b-256 5c1539f8d1752a0975383dc481fc09c39a723cd88f2ffc3f31befd08f88a1933

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_i686.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 809.5 kB
  • Tags: CPython 3.14t, musllinux: musl 1.2+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 02b8716418d0d1bb5121c73dc3b30d4c72baede52154ea1418e9582e23289953
MD5 b0914c8943f31642d87990410ddb2cea
BLAKE2b-256 96daf9826df8c83ba3feda5371d7e84b63dcbd11ab42a16f6ade793d509e1b7f

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_armv7l.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 849.3 kB
  • Tags: CPython 3.14t, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 381af320d9c166a031fc49a2a20788689724321e403fa04c38e94c4b80fd7b91
MD5 7619a056051ae06a7fd34b47f3e2d12b
BLAKE2b-256 48a69a500cdf25f84308d01c29231ab208542c03aa129fad4cf2734810197dc9

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 719.7 kB
  • Tags: CPython 3.14t, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4b240311b4395d9cb8d9ac6b690d9762c68bbd63055a7b2ac02951449a25aa45
MD5 4124d6e167d24023395b0f3d22f9b448
BLAKE2b-256 3fc36c6c7e3a203f9bcadf154eed0923e1a909dd02170bec17e2b0698069fd6c

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 557.6 kB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 81d888f8ff68033341307e149065731f9e9e9c071273a74377c6e42aa80501b6
MD5 6a8202cd994de5ae5bb022fa16cd3184
BLAKE2b-256 c9b25a7fdb6197e5ebf5cc9cbc61792fa49c1347eb65102752b3586e754e2170

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
  • Upload date:
  • Size: 633.2 kB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ s390x
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 e012ca6fe2bd6b7310f0208935d118e1ee71e6598be1ce3588ca06e1f1eccf73
MD5 b7dba00b9ca2cd4d2188c251e8cda3a4
BLAKE2b-256 5d094b7f322a7b50c25b401f4d7259182ff8114e68a7f98f6c52d345b3c5b22a

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 624.3 kB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ ppc64le
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 68dc8860d3f103991f11881f1922d08de1969526c873316375708566ce45467f
MD5 656ebdce94e0ad68da9333825542e963
BLAKE2b-256 c6b498dafcce6fc5d2621478a7f29fdace617bd13e3b004adb710981d92b06d5

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 571.7 kB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 f17595f64da4c5d076b382dd297afd8e7d33af2138f0fc8ce12992a136cf1e82
MD5 4d27e47eac45e230eb814b08d0fa2bbe
BLAKE2b-256 0682ae0206e0831e40585da133c695e6f3eef392a220e08e9078408078c90f75

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 541.2 kB
  • Tags: CPython 3.14t, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b98f284d4165650ce7ec2d15db705dd5ce2abb5fa43705e518b2234d3f6a5cfe
MD5 426dbbc14e9ec9764099039b0c6733f5
BLAKE2b-256 d2f60d3a8032f70aeb8519b071a19427458ccc59af48c76bd295743534d2bb7a

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl
  • Upload date:
  • Size: 600.0 kB
  • Tags: CPython 3.14t, manylinux: glibc 2.5+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 d08a3f0f0e200e448c16df526a44b8dd65d3f94fa3fde2eaedf673a4de4a762b
MD5 9c5bbc83a6ac3755727f095193d14395
BLAKE2b-256 cd0ee50b2be80d06db90e1a4df6cefc6d069e9ce405961f24132babf5a817803

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 512.3 kB
  • Tags: CPython 3.14t, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f339c8465234bdfb269fd1b0805ab1615163594b6cebd43f9345d268abd6a8b
MD5 b87b68045fa56498f41dc9108af80264
BLAKE2b-256 96c7446d659622dce50a8d43e6401d2bbfac6d67ef9ade2c82dcbecbc8e5a7ba

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp314-cp314t-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp314-cp314t-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 534.4 kB
  • Tags: CPython 3.14t, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ac14206d215251487ab01d5cd3a7bd8c5af89f06c9c8a9a4d0946689df36e060
MD5 9f4ee23efda8642fedba0b75f6408096
BLAKE2b-256 f6d457b6f19033bd7b3970c527e4c3d9cf2964ffe427358c66c38f228210e287

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-win_arm64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-win_arm64.whl
  • Upload date:
  • Size: 435.8 kB
  • Tags: CPython 3.9+, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 0ee59a18b9377160fc2ea192139f98e31c6c5a73464ec56b099538eac2c78156
MD5 68cd454e8de32ee85c0ba8667e87aea1
BLAKE2b-256 780f9722252377d115c497562c1324e29d543621f5d437e08651342c400a3022

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 463.7 kB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c103b32d8981321addd0596ae782ffc8d6b63b4367c4ca96243e2ffb6fee2a45
MD5 4a8ddfb83f135a3ed402c13be69cbc98
BLAKE2b-256 13484b59b75a18a4efd04465227051891a5815f3a8c9267e6224eb896f5e024f

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-win32.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-win32.whl
  • Upload date:
  • Size: 443.9 kB
  • Tags: CPython 3.9+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 d400bfa2a368338c71c7fdad294407676edb9964190175071e9030a2a4cdeafb
MD5 edfd3062687e8333488db33ef3346530
BLAKE2b-256 03bacfb6a2b5ed34652fd9b5de3c0ca3da40f5941ada2f4f847009a6327b0c7d

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 776.5 kB
  • Tags: CPython 3.9+, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cf509297714fe5dcce1497503700a92977934f0e92e4ee2c787c1c1488231bcc
MD5 a7c7dc56812928cd56d67f015b136a56
BLAKE2b-256 9724958bcb0dd6ee006374c5e6bb4e4f3b6a126c3dcc8aca87a8274296365ae4

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-musllinux_1_2_i686.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 819.7 kB
  • Tags: CPython 3.9+, musllinux: musl 1.2+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 6174cf33fdf58612e8a5c2d7b54c67500aa5fb537d47abc3696405dc1d67cca7
MD5 66454d2549266d1094bdf49627349422
BLAKE2b-256 a6bd64d0b75ab3e4e434e0fd7b36532ed947db05544ec74f6d410dfaf20ec2f4

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-musllinux_1_2_armv7l.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 859.8 kB
  • Tags: CPython 3.9+, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 c407f137e83bc2f95ce1b7163465e255b03ab1aa2d815815d93c9e8d24f579fa
MD5 a2f4c7c033ee5afa5159b0fa473e8096
BLAKE2b-256 39662632fc4c091ae8590c39811abd01c52b5f9daccc744d23ebd04d41938e8a

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 731.1 kB
  • Tags: CPython 3.9+, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4cae030a2100f02ca18dcb70aa03f504ad15c2e131dcf8c46ed00ed5855ee6ca
MD5 10fdd81b75fcc46cb18c0e4e8bea0c55
BLAKE2b-256 84a47ae612ce9e3dd05c09c0a5647d218ce94a90a400ec7a1c95bcb5416dfe30

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 567.5 kB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 83c88aafe69e3f395a1e76bd4468f36137b097d8c73e364a73a11dc4e89af4d6
MD5 36d16fd917a738e6f0215cc290c3d455
BLAKE2b-256 31be60446f6b275c6687bd8366518686a9fb4c615037241b80c4bc9e74bb9beb

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
  • Upload date:
  • Size: 643.3 kB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ s390x
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 7f9347e143c8261fa729d03b47951bcf4002f9a91d55bc95610365aa64397303
MD5 00e3056145dc92535f2065b68a9272bc
BLAKE2b-256 c236ff7daa36d0837ec5d42688f5f4cf695422a24abcc8e10b5ed30b3f087790

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 635.2 kB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ ppc64le
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 bdc2626a0ff6c88a4ae3c216c932e0a3a3ce61b7bd5917e54414a2099c5fd0ce
MD5 6cf506b31955c8152268076bde0a0c6f
BLAKE2b-256 8d0f2c19366afb9b805fe35a8116710387dcb4250e9acec7af074c5e3a39eb0a

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 582.3 kB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 6f280923faf129cb1bfb1c29116a5cc87c921fcf5c68019f793c549b4737e3f6
MD5 edeeecc585c90770b30b313af743258e
BLAKE2b-256 8565f3b9fe5f00ce1f9857adc15e5bfcf95cb4ae4c4aabc82d02143043822076

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 551.7 kB
  • Tags: CPython 3.9+, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8e6a7e681162960f7f2e5db05e622130c0ce382ed246d60ee431fbd664a01aab
MD5 1da83d709a5cecf0b90dff39a258a1c2
BLAKE2b-256 4bee093b0240117a5a4428a8ec5d908b7261b7e3fce4cc203d1fc2bff0e602c0

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl
  • Upload date:
  • Size: 612.2 kB
  • Tags: CPython 3.9+, manylinux: glibc 2.5+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 ef612b3e1a8342e4bffef4cbd4b4e2d0fed85b4c27d0b8d7480b8e789976498e
MD5 172f63f37d8c2bf519da05dd53a1fbf3
BLAKE2b-256 f9cd4872df87ea30a4b0bda6cd091c0d86bcadc0f446618e9575b49af2d997cb

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 525.9 kB
  • Tags: CPython 3.9+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b3264ee8bd465c5b56c2d111e291f234e71167cea245428e58747f316fc64619
MD5 580882bb6efc3bd1a8ac9501851cedd8
BLAKE2b-256 4f5c57d911f887866079878e73d977817a39a9d7bf7873192085d08fe0c12955

See more details on using hashes here.

File details

Details for the file odis_python-2026.9.0-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: odis_python-2026.9.0-cp39-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 538.7 kB
  • Tags: CPython 3.9+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for odis_python-2026.9.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a080a9463cac677619dd1b984e61c758fa434b7ba1a383cc701d059ea4be7009
MD5 e61ebd72a15d2b4a211223ba5c9fab27
BLAKE2b-256 9b39a8777ab6c1cf684f74f7834f8cbeefbb22426ba339f1be701d74523efbb1

See more details on using hashes here.

Release history Release notifications | RSS feed

2026.9.1

31 files

This release

2026.9.0 This release

31 files

2026.4.0

2 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