Skip to main content

OxiZ Python Bindings

Version: 0.3.2 | Status: Alpha | Tests: 11 Rust + 117 Python (pytest, not re-run this release) | Rust LoC: 1,842 (8 source files under src/)

Python bindings for the OxiZ SMT (Satisfiability Modulo Theories) solver.

Installation

From PyPI (when published)

pip install oxiz

From Source

Requires Rust and maturin:

# Install maturin
pip install maturin

# Build and install
cd oxiz-py
maturin develop --release

Quick Start

import oxiz

# Create a term manager and solver
tm = oxiz.TermManager()
solver = oxiz.Solver()

# Create integer variables
x = tm.mk_var("x", "Int")
y = tm.mk_var("y", "Int")

# Create constants
ten = tm.mk_int(10)
five = tm.mk_int(5)

# Create constraints: x + y = 10, x > 5
sum_xy = tm.mk_add([x, y])
constraint1 = tm.mk_eq(sum_xy, ten)
constraint2 = tm.mk_gt(x, five)

# Assert constraints
solver.assert_term(constraint1, tm)
solver.assert_term(constraint2, tm)

# Check satisfiability
result = solver.check_sat(tm)
print(f"Result: {result}")  # sat

if result == oxiz.SolverResult.Sat:
    model = solver.get_model(tm)
    print(f"x = {model['x']}, y = {model['y']}")

API Reference

TermManager

The TermManager creates and manages terms (expressions).

tm = oxiz.TermManager()

# Variables
x = tm.mk_var("x", "Int")      # Integer variable
b = tm.mk_var("b", "Bool")     # Boolean variable
r = tm.mk_var("r", "Real")     # Real variable

# Constants
t = tm.mk_bool(True)           # Boolean true
f = tm.mk_bool(False)          # Boolean false
n = tm.mk_int(42)              # Integer constant
q = tm.mk_real(3, 4)           # Rational 3/4

# Boolean operations
not_b = tm.mk_not(b)
and_term = tm.mk_and([b, t])
or_term = tm.mk_or([b, f])
implies = tm.mk_implies(b, t)

# Arithmetic operations
sum_term = tm.mk_add([x, n])
diff = tm.mk_sub(x, n)
prod = tm.mk_mul([x, n])
neg = tm.mk_neg(x)
div = tm.mk_div(x, n)
mod = tm.mk_mod(x, n)

# Comparisons
eq = tm.mk_eq(x, n)            # x = 42
lt = tm.mk_lt(x, n)            # x < 42
le = tm.mk_le(x, n)            # x <= 42
gt = tm.mk_gt(x, n)            # x > 42
ge = tm.mk_ge(x, n)            # x >= 42

# Other
ite = tm.mk_ite(b, x, n)       # if b then x else 42
distinct = tm.mk_distinct([x, n])  # x != 42

Solver

The Solver checks satisfiability of constraints.

solver = oxiz.Solver()

# Set logic (optional)
solver.set_logic("QF_LIA")  # Quantifier-free Linear Integer Arithmetic

# Add constraints
solver.assert_term(constraint, tm)

# Check satisfiability
result = solver.check_sat(tm)

# Get model (if sat)
if result == oxiz.SolverResult.Sat:
    model = solver.get_model(tm)

# Push/pop for incremental solving
solver.push()
solver.assert_term(additional_constraint, tm)
result = solver.check_sat(tm)
solver.pop()  # Removes additional_constraint

# Reset solver
solver.reset()

SolverResult

result = solver.check_sat(tm)

# Compare with enum values
if result == oxiz.SolverResult.Sat:
    print("Satisfiable")
elif result == oxiz.SolverResult.Unsat:
    print("Unsatisfiable")
elif result == oxiz.SolverResult.Unknown:
    print("Unknown")

# Use properties
if result.is_sat:
    model = solver.get_model(tm)

Examples

Sudoku Solver

import oxiz

def solve_sudoku(grid):
    tm = oxiz.TermManager()
    solver = oxiz.Solver()

    # Create variables for each cell (1-9)
    cells = {}
    for i in range(9):
        for j in range(9):
            cells[(i, j)] = tm.mk_var(f"cell_{i}_{j}", "Int")

    one = tm.mk_int(1)
    nine = tm.mk_int(9)

    # Each cell is between 1 and 9
    for (i, j), cell in cells.items():
        solver.assert_term(tm.mk_ge(cell, one), tm)
        solver.assert_term(tm.mk_le(cell, nine), tm)

    # Row constraints: all different
    for i in range(9):
        row_cells = [cells[(i, j)] for j in range(9)]
        solver.assert_term(tm.mk_distinct(row_cells), tm)

    # Column constraints: all different
    for j in range(9):
        col_cells = [cells[(i, j)] for i in range(9)]
        solver.assert_term(tm.mk_distinct(col_cells), tm)

    # 3x3 box constraints: all different
    for box_i in range(3):
        for box_j in range(3):
            box_cells = []
            for i in range(3):
                for j in range(3):
                    box_cells.append(cells[(box_i*3 + i, box_j*3 + j)])
            solver.assert_term(tm.mk_distinct(box_cells), tm)

    # Given values
    for i in range(9):
        for j in range(9):
            if grid[i][j] != 0:
                val = tm.mk_int(grid[i][j])
                solver.assert_term(tm.mk_eq(cells[(i, j)], val), tm)

    # Solve
    if solver.check_sat(tm) == oxiz.SolverResult.Sat:
        model = solver.get_model(tm)
        result = [[int(model[f"cell_{i}_{j}"]) for j in range(9)] for i in range(9)]
        return result
    return None

Boolean Satisfiability

import oxiz

tm = oxiz.TermManager()
solver = oxiz.Solver()

# Create boolean variables
p = tm.mk_var("p", "Bool")
q = tm.mk_var("q", "Bool")
r = tm.mk_var("r", "Bool")

# Assert: (p OR q) AND (NOT p OR r) AND (NOT q OR NOT r)
clause1 = tm.mk_or([p, q])
clause2 = tm.mk_or([tm.mk_not(p), r])
clause3 = tm.mk_or([tm.mk_not(q), tm.mk_not(r)])

solver.assert_term(clause1, tm)
solver.assert_term(clause2, tm)
solver.assert_term(clause3, tm)

result = solver.check_sat(tm)
if result == oxiz.SolverResult.Sat:
    model = solver.get_model(tm)
    print(f"p={model['p']}, q={model['q']}, r={model['r']}")

Supported Sorts

  • "Bool" - Boolean values
  • "Int" - Arbitrary precision integers
  • "Real" - Rational numbers
  • "BitVec[N]" - Bit vectors of width N (e.g., "BitVec[32]")

Bitvector Operations

tm = oxiz.TermManager()

# Create bitvector constants
bv8 = tm.mk_bv(42, 8)       # 8-bit bitvector with value 42
bv16 = tm.mk_bv(1000, 16)   # 16-bit bitvector

# Bitwise operations
not_x = tm.mk_bv_not(x)         # Bitwise NOT
and_xy = tm.mk_bv_and(x, y)     # Bitwise AND
or_xy = tm.mk_bv_or(x, y)       # Bitwise OR

# Arithmetic operations
sum_xy = tm.mk_bv_add(x, y)     # Addition (modulo 2^width)
diff_xy = tm.mk_bv_sub(x, y)    # Subtraction
prod_xy = tm.mk_bv_mul(x, y)    # Multiplication
neg_x = tm.mk_bv_neg(x)         # Two's complement negation

# Comparisons (unsigned)
ult = tm.mk_bv_ult(x, y)        # x <u y (unsigned less than)
ule = tm.mk_bv_ule(x, y)        # x <=u y (unsigned less or equal)

# Comparisons (signed)
slt = tm.mk_bv_slt(x, y)        # x <s y (signed less than)
sle = tm.mk_bv_sle(x, y)        # x <=s y (signed less or equal)

# Division and remainder
udiv = tm.mk_bv_udiv(x, y)      # Unsigned division
sdiv = tm.mk_bv_sdiv(x, y)      # Signed division
urem = tm.mk_bv_urem(x, y)      # Unsigned remainder
srem = tm.mk_bv_srem(x, y)      # Signed remainder

# Bit manipulation
concat = tm.mk_bv_concat(high, low)    # Concatenate bitvectors
extract = tm.mk_bv_extract(7, 4, x)    # Extract bits[7:4]

Array Operations

tm = oxiz.TermManager()

# Array select and store
value = tm.mk_select(array, index)              # array[index]
new_array = tm.mk_store(array, index, value)    # array with array[index] = value

Optimization

OxiZ supports optimization (minimize/maximize) using the Optimizer class:

tm = oxiz.TermManager()
opt = oxiz.Optimizer()
opt.set_logic("QF_LIA")

# Variables
x = tm.mk_var("x", "Int")
y = tm.mk_var("y", "Int")

# Constraints
zero = tm.mk_int(0)
ten = tm.mk_int(10)
sum_xy = tm.mk_add([x, y])

opt.assert_term(tm.mk_ge(sum_xy, ten))  # x + y >= 10
opt.assert_term(tm.mk_ge(x, zero))       # x >= 0
opt.assert_term(tm.mk_ge(y, zero))       # y >= 0

# Objective: minimize x + y
opt.minimize(sum_xy)

# Solve
result = opt.optimize(tm)
if result == oxiz.OptimizationResult.Optimal:
    model = opt.get_model(tm)
    print(f"Optimal: x={model['x']}, y={model['y']}")  # Should be x=0, y=10 or x=10, y=0

Optimization Results

  • OptimizationResult.Optimal - Optimal solution found
  • OptimizationResult.Unbounded - Objective is unbounded (no finite optimum)
  • OptimizationResult.Unsat - No feasible solution exists
  • OptimizationResult.Unknown - Timeout or incomplete

Examples

See the examples/ directory for complete demos:

  • basic_sat.py - Boolean satisfiability
  • bitvec_example.py - Bitvector operations
  • optimization_example.py - Optimization (min/max)
  • sudoku.py - Sudoku solver

Testing

Run the test suite with pytest:

# Install the package in development mode
maturin develop --release

# Run tests
pytest tests/ -v

License

Apache-2.0

Download files

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

Source Distribution

oxiz-0.3.2.tar.gz (4.4 MB view details)

Uploaded Source

Built Distributions

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

oxiz-0.3.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

oxiz-0.3.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

oxiz-0.3.2-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64

oxiz-0.3.2-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

oxiz-0.3.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

oxiz-0.3.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

oxiz-0.3.2-cp314-cp314-win_amd64.whl (872.7 kB view details)

Uploaded CPython 3.14Windows x86-64

oxiz-0.3.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

oxiz-0.3.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

oxiz-0.3.2-cp314-cp314-macosx_11_0_arm64.whl (937.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

oxiz-0.3.2-cp314-cp314-macosx_10_12_x86_64.whl (980.1 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

oxiz-0.3.2-cp313-cp313-win_amd64.whl (872.2 kB view details)

Uploaded CPython 3.13Windows x86-64

oxiz-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

oxiz-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

oxiz-0.3.2-cp313-cp313-macosx_11_0_arm64.whl (937.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

oxiz-0.3.2-cp313-cp313-macosx_10_12_x86_64.whl (979.7 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

oxiz-0.3.2-cp312-cp312-win_amd64.whl (872.4 kB view details)

Uploaded CPython 3.12Windows x86-64

oxiz-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

oxiz-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

oxiz-0.3.2-cp312-cp312-macosx_11_0_arm64.whl (937.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

oxiz-0.3.2-cp312-cp312-macosx_10_12_x86_64.whl (979.8 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

oxiz-0.3.2-cp311-cp311-win_amd64.whl (873.9 kB view details)

Uploaded CPython 3.11Windows x86-64

oxiz-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

oxiz-0.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

oxiz-0.3.2-cp311-cp311-macosx_11_0_arm64.whl (937.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

oxiz-0.3.2-cp311-cp311-macosx_10_12_x86_64.whl (979.7 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

oxiz-0.3.2-cp310-cp310-win_amd64.whl (873.9 kB view details)

Uploaded CPython 3.10Windows x86-64

oxiz-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

oxiz-0.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

oxiz-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

oxiz-0.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

oxiz-0.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

Details for the file oxiz-0.3.2.tar.gz.

File metadata

  • Download URL: oxiz-0.3.2.tar.gz
  • Upload date:
  • Size: 4.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for oxiz-0.3.2.tar.gz
Algorithm Hash digest
SHA256 522b0b35de95c5c0886969fb2cec65a3dedee270996420dff3e5edb7c43553f6
MD5 bc7882b478209b3f77efd5c299e75788
BLAKE2b-256 c06c8f4e1c11092efce4f6ad742bdbf0c55b97c7f6e442a6179d552cebd1224b

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2.tar.gz:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2201725a60e52fe6c71b2ea73dac0cb97497d99766698a19fc42efb4ceb650ef
MD5 cf09dbc27723b382fc78f1fb51d4b8d5
BLAKE2b-256 96ee87cf7f75bb9526fd82fdbe4c73a15fbb32b0664ef2503125f976ecb1ea82

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1407cc84403876784386e032aad69bdbd97599ad92b2160dfd90ef65c349a7b3
MD5 591540cbc09bc6bcc91715a7859e59ad
BLAKE2b-256 d9d1b594fd19e454b0838f37c4ddc5a56e7e811d389407bca12ab41a7072d9f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef6c4197e5efae0e92b76eafffa55fbbff9196981e5a9484cb41e66cb21d0acc
MD5 9595072ee7a581d8998be8dd7b4c11b8
BLAKE2b-256 e1bf8858e2188af263603c023beb64762df42ed29d61c85a7984a98390105a49

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 974ce22ee8fa0107d5bda68eb43ed5dea2daea7810abfc0b63e1d344b03b0ad9
MD5 f2355e57bb5f090f00ad63747dd4623a
BLAKE2b-256 1cebe4bfff9546ad598e1f8735ac5153ac29403fd88a6ddccd0fcc07f221aac8

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3107ee7118600f35030bcaef3dddfd2e80e9b2c8449f6c7c7edad2c712b34ec4
MD5 4c3bf7549c2412dbd9d327b1124a7aa3
BLAKE2b-256 d409ee79d277309bdcc6ae205cf3f519744cfaf13556facac67b7b5bf5f1dd15

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c5ac8b9011810fd4192bd433e01f41c3b952caafb158fe099f138463cb347248
MD5 10adc6fed39ea6fe59481907efbe5c4d
BLAKE2b-256 1fbe5508afc2997ab35891c8e445c6f7ae8fde688d986b4c567ea87580fb27a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: oxiz-0.3.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 872.7 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for oxiz-0.3.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b22b3f758294491b85391009d604962c6ba4488dc7503aae82e6470cd93f7778
MD5 62cd433abe2a22084838d3d4446f737c
BLAKE2b-256 62744b355e5fbf0f92f8553e0d0879785cdb1f7d3f9f418733f5bcd89b27593d

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp314-cp314-win_amd64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4343fa33162620beae7f00297050aa52a911f72076a44f84fd931d11239b66d1
MD5 ea077d8726c4d9745793326dc378c03a
BLAKE2b-256 86e392d02aa4533834e6ca35fc84485acc75aafd84fa7ade3d5f23fe8e6e489a

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0cc2cbf1cef164760b88c615d9b24c9a2f22754655bad939a25c469b2f9006e6
MD5 9d3664819b9658570ddc71f21488d692
BLAKE2b-256 89759e903081586197185116d36a051ec934ab226d4f878703f7162b076b3ed0

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6af993cbe79141a5c0545755ec8b13188cd8def8dc704cf5869f26a125ad26ab
MD5 3da5ad992ca9ccd99e0488f192399e08
BLAKE2b-256 9f9e09c929636b88d7ed4e61ad8a1bb6010e3cf1609e6501b0aa433805c206ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 907e9e6d633822287033518f89bc55b09161a91b5c4be237f4e5ed48c695c092
MD5 7174c21a1bedd78ac0b3c3a0974a9ec1
BLAKE2b-256 5f8e7c06ca3a1f841ac2f37908a0f6845d3081ace8fadfd12801fca82adea44e

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: oxiz-0.3.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 872.2 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for oxiz-0.3.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9e1c7137499c8eb65ad3c6038f0ecd65df40cec680117bcec943d6e0f992d47b
MD5 79f8c6a667d56925dc4f95a079232f92
BLAKE2b-256 c1f8f6215a48c7aa07a2f35cf810ff575698a4b1b9a18294c45b1c35cb55269e

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp313-cp313-win_amd64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cda1bcbe89aacf69182ccd5146227b59730e0446cc87072c843cf3d207130a8f
MD5 74b02a1492fd88ff9c86e2d76c415565
BLAKE2b-256 0ac4458bdb36583eca9ccd3c4824cb96159c55419b902eeb4c6e89f2b511d8d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 842073363df78e7d98c626e317340a68c5bb2795d059280ac4820e806567f8fe
MD5 2b9872a2834a64d30771ce43cfb79d7c
BLAKE2b-256 905327ab34239f68f7d7da35586d17ff133cd7fa0842ba7590e38e6b32a4a20d

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4413e4044e6ec17e1798c1974e529a6d62bb4522860b2b882d03417ee55ae041
MD5 35d7658952144c55311977cec6595d86
BLAKE2b-256 59a565974c6d330da3365ec4e1ad23e6409df906ece80c783c3e5b8a752ca177

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 efe5937ed9f8853943b4585007fc65f267fbd206aa41f3d622ae98af714032a7
MD5 1e35c375eae1f798829ac4b468107b10
BLAKE2b-256 97bddacc06c960ae781e1315515cc788e4a38ab3f5c878c023ebef35577f7d58

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: oxiz-0.3.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 872.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for oxiz-0.3.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 48486837f85741b503070285e8bca519043f21c24b0c9f421c4c2cd13473e907
MD5 b120208f071f79bc8168b02f1cfb192c
BLAKE2b-256 cff7a8368c7d8d40177a8df1d00dcc0e30a17a57810bf25d407b8d480c3e04c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp312-cp312-win_amd64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7a3600874c8e905fc9a09f742910891c709707045d0b64ca1a8cabaf00ee2aac
MD5 e9183774a17740813b64a20860ebd5c6
BLAKE2b-256 7b41fefffee982fa3a2d8373dbc13c0c2b878480bdb4ea986bf07b6f5ab91022

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7c486de3837dbdd8e91d17505cf0f9467fc7d0b888468b1c0df54e7b8c9c66f3
MD5 04092254da6bcf6745883cf202e5a6f8
BLAKE2b-256 c4f32c402613fef15ce6a5c289cc4f28d8e34323bf7a0f1005bcaf226b57830b

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad4591188c5624e3a5f911bc2e61a4e10b9769a2df3e467afa6368e5e410bde6
MD5 43a6d30eeddc1431e3a284218a119e10
BLAKE2b-256 eecd43e63149080ac94f24849b48d575aebe4478daa9b90878a119a18a4526ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7bfcfd08b07d7c11711063953abd530a1ba119db6bb373f508bfaa7c80fab025
MD5 dfbe8ea1d22c3dac6ea7fa631bb6ea36
BLAKE2b-256 1b8009f6428e0867590d56273318734d04af02db6c3d0cfa5fa330148be0c12a

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: oxiz-0.3.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 873.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for oxiz-0.3.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2a662c78fac0e4000ac8c3ad074643c04e44dade1f6538a2b63ff3f97574e3b1
MD5 d85db075892fcf85c729fd9fad57de62
BLAKE2b-256 38a89dc3b927a997d7791ce4951cb0241a35d387e378c16523039c1a4cc6d4c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp311-cp311-win_amd64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 339295ed587c52e321ffaf5fe7609fc9c404bcdf6fcc070327d2c2a1886bce76
MD5 7dda793da383ab53d9491acd129b0905
BLAKE2b-256 eca9ab6af66255cd180c4b0c30ae78b8820d5ece354040ff7bc395aa59956e8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c98e0a1b78785d4e71726f4620597ce32cf17d5de02dae065942efb40bfcefcb
MD5 8d7eff01c8ecf8c541a1f9657b3f9571
BLAKE2b-256 52645129f807fd5db771ec326591ee746c68b60206646834ecd707e642638f31

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04b8f233af6ac55659fc16cf2566cf884060f17858ceb34e0570e0f921ef51e4
MD5 3d0162a131d3800ac4021db97517c4aa
BLAKE2b-256 df23420d7224ebf2726df829b988048c79e8efab809ab93ed118e811997fd6dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5a6a140d5dc93f931e0a5c0eb5fcdf947713d2b19c2934063c4d70f84a7786fc
MD5 82a004aed68d8fda3d2cf7e702065c5b
BLAKE2b-256 68b56a86511191ad97f8c607ff39bb5af966968f7dcab229472a03166f491104

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: oxiz-0.3.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 873.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for oxiz-0.3.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d04af62a181ff133bc65ba00ccae098f711f414333c6b919bfddb38c647d8de3
MD5 63648e74ead28493dbd7a9ed25ddde80
BLAKE2b-256 daefbd6674515f4ce3338dee0f6c8debece65c5d2b5ff9243c0c8421d961c531

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp310-cp310-win_amd64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bb8770b8ae076b4a86cc92e72f5ddbc97c9e7d5f56f150664ee6dfeb49c18545
MD5 d0156db2fa1eb85f3a543dfd56f2c60e
BLAKE2b-256 43c6bc956760159023113a9fb9dfc0212bdfa14f73882800977ac7a6dba5c5bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 860e3aaf12491c95666c735014eeaf7b171606b5572ef6e56d4a9c7baa783039
MD5 fba808806006c836c5593a6400d716ec
BLAKE2b-256 e579360949669889b08452e8d362dc5b9dd0a8765eb7b4fea71a67a03180832a

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 79dbd84069e3a446aa3841c9e05fc5a399017b828050a0232d01199ca562a8c3
MD5 c3e33d246107e3441e0d889161916b3d
BLAKE2b-256 fa17448270524792a5736f2c460c2c7328c8cb575563d5b1dd523cda724cbb00

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4efafbdaf07eb5aa0dbaaf85a159fc4dea3927895abd848cc9aa5dbe365c78a0
MD5 264b5a32896e78c8aafc2f95c65abbca
BLAKE2b-256 19d5a9e12fa9081ca3a80acc0f62a4594378490736d107352432bbad97a1c987

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oxiz-0.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6da52218f132f312422fa9ba5ad399d562ca3c592e6baf9fc96d788a06a8ad25
MD5 dbb735a2e786351c8ba063fb8a2a3ef6
BLAKE2b-256 044f6745314c5c12a6da4d82276fb842d52324fa428010d710ceb292ceae7e4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: pypi-publish.yml on cool-japan/oxiz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.3

33 files

This release

0.3.2 This release

33 files

0.3.1

33 files

0.3.0

33 files

0.2.4

33 files

0.2.3

32 files

0.2.2

32 files

0.2.1

32 files

0.1.3

32 files

0.1.2

32 files

0.1.0

32 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