Skip to main content

Python bindings for OxiZ SMT Solver

Project description

OxiZ Python Bindings

Version: 0.2.4 | Status: Alpha | Tests: 4 Rust + 117 Python (pytest, not re-run this release) | Rust LoC: 2,736 (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

Project details


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.2.4.tar.gz (2.9 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.2.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (742.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

oxiz-0.2.4-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (761.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

oxiz-0.2.4-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (741.3 kB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64

oxiz-0.2.4-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (741.2 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

oxiz-0.2.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (741.3 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

oxiz-0.2.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (757.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

oxiz-0.2.4-cp314-cp314-win_amd64.whl (574.1 kB view details)

Uploaded CPython 3.14Windows x86-64

oxiz-0.2.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (741.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

oxiz-0.2.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (758.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

oxiz-0.2.4-cp314-cp314-macosx_11_0_arm64.whl (651.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

oxiz-0.2.4-cp314-cp314-macosx_10_12_x86_64.whl (667.3 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

oxiz-0.2.4-cp313-cp313-win_amd64.whl (573.6 kB view details)

Uploaded CPython 3.13Windows x86-64

oxiz-0.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (740.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

oxiz-0.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (757.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

oxiz-0.2.4-cp313-cp313-macosx_11_0_arm64.whl (650.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

oxiz-0.2.4-cp313-cp313-macosx_10_12_x86_64.whl (666.6 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

oxiz-0.2.4-cp312-cp312-win_amd64.whl (573.7 kB view details)

Uploaded CPython 3.12Windows x86-64

oxiz-0.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (740.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

oxiz-0.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (757.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

oxiz-0.2.4-cp312-cp312-macosx_11_0_arm64.whl (650.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

oxiz-0.2.4-cp312-cp312-macosx_10_12_x86_64.whl (666.6 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

oxiz-0.2.4-cp311-cp311-win_amd64.whl (574.8 kB view details)

Uploaded CPython 3.11Windows x86-64

oxiz-0.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (741.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

oxiz-0.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (760.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

oxiz-0.2.4-cp311-cp311-macosx_11_0_arm64.whl (650.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

oxiz-0.2.4-cp311-cp311-macosx_10_12_x86_64.whl (666.6 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

oxiz-0.2.4-cp310-cp310-win_amd64.whl (574.9 kB view details)

Uploaded CPython 3.10Windows x86-64

oxiz-0.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (741.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

oxiz-0.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (760.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

oxiz-0.2.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (742.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

oxiz-0.2.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (761.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

oxiz-0.2.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (761.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: oxiz-0.2.4.tar.gz
  • Upload date:
  • Size: 2.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oxiz-0.2.4.tar.gz
Algorithm Hash digest
SHA256 b07790bbf4ea3d03acd976d7c5e88e405268f8950cf0e467b70e23e834995feb
MD5 6736cbda5ceb13839cc5924f05877a89
BLAKE2b-256 f8941871faebee3c62baab7171aaf762aceb1b38888ee600cb40f35339a64496

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4.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.2.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b5a3dc8347c6df62e995ed189c4d1bffa2931043dd9e81309e42f1390ebced65
MD5 11cf303b5af5cc63fffa9cdb5f31169d
BLAKE2b-256 90e632f56c14e72667daa81183a5fbac95c6a9c575d4f0f30c1b9cfedbe8de77

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e82bca46b5335943b998aef72923cb156ce3804cdfe0a7462c7ce2ceb318e4fa
MD5 e746d2f426b9e6ecc9ec7408f6ccf884
BLAKE2b-256 973982969716c4c4ac637af912115567635d954434d1c2336afbf5e1befc2f88

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ceccd11a3540c85804fdd18b06c76ce296d7ea57f80904e2d429231b9dd2de56
MD5 b9a3a80a961f0fd8991cbb686748d05f
BLAKE2b-256 3e0c1d7a29f4aa5d1473020723208e45f21058436367f432da2539c12a5b7b8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3221dc8d2aa59ab9b8c6f36cb1bbe50c8557f0d13c6c9ea22c78a3d442f62e2a
MD5 c72ffbc3bc21a9bafdea7d2dc065dd65
BLAKE2b-256 414eb8a03dee2cee88261204f2979735ddda23beda0840d77f6ff83be6556550

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba8bdb51180374dfb13e2c3cdec5be16b26ede130ebb6a431c7ec45f73bbf870
MD5 b051fb1033ae37fed58dc94ef65272a5
BLAKE2b-256 4046ad11fa1790b7ecb4f437586b10a112c084fb22043917b2378584763170bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bb13786cbd887dfe26dfe8892240deca9f0cedadc724fbe8f4b41d52b57c5d1f
MD5 3cb8671fc81f4f98c6092167640385bf
BLAKE2b-256 74d218e603e5e43603b0b575c2ff41f211f798300817eb9062f50c9fc7faff89

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: oxiz-0.2.4-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 574.1 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oxiz-0.2.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 467c04ade7efb563b0ba6abb73670a1af19e147b2fb83144c2a7b9b8fce75572
MD5 4e32022852b421b72dae1570974b139a
BLAKE2b-256 51a9fcf70a4f8f2f6142e60b6a8efe9c9d61bf81624ca1b13a84a17f6e12ea4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 733b85ca0066bfb8ff9c3f55453511a4cf32a04012faa3c3c7c7735debe7fd29
MD5 1ca3f285f0b1e82a4c83c47ede766027
BLAKE2b-256 032b50910af780b161341426ee457c0df8e3d58e6ef5e237bedc6bf87731b07b

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1d9bdbcba61804c8c1a63529696810ca1a3ef6956f01e41cbfe350f3ec69f509
MD5 7b1017fd9b26a0bcaab8b69e01899bbd
BLAKE2b-256 8efbe6634013b1542e627b70de3507638ec453f0945d165dbf855df531571f62

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

  • Download URL: oxiz-0.2.4-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 651.1 kB
  • Tags: CPython 3.14, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oxiz-0.2.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 be4f3a51a93b2322ff5a762aac0e367708fcc4b670e02bbfa8e79a9f385654d6
MD5 2b16d9cd81ab43f11e57a64dc004ecd7
BLAKE2b-256 07602a5deb255f9ac5dc3096a63ebe01ce162ffabae10d73b05c25ad5bcf501a

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 223ab64fe947a7d86b8e2ef76485907eb0c6f850d369022a9a0f73aafaf55baa
MD5 686db0f5163fb895017f99f6db94d2d6
BLAKE2b-256 704f3dadf7dd1bb1cacad0f2e482557114373f483fbb2289d1428b1683dc65d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: oxiz-0.2.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 573.6 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oxiz-0.2.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 16156030aafc31f48548c61f1e7806582ce6ee78cdc28ebd2c59ce3146a426e1
MD5 40bacff5de94e9f6cf637406f8c93784
BLAKE2b-256 8adfaf213559b91fc403ca405df24a6d104f75321190cd5e94a1f91bc178b336

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bc49d64d22bec5fd6bef90a8c18c345d7bbed20253036fba3d4411ffea363ca0
MD5 9249846ec795ea08739ba581ee8d113c
BLAKE2b-256 b4945af18ebe01f7acb5bb6b50b19e2534a723d5b35186c9e21a2f9c2d7c3902

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2a3888f80c134031188bca1b0cbce5f1e69eef6be860a1610348f395ab1e91c7
MD5 f5213a71fa3272ae2295e947e27f5636
BLAKE2b-256 d183df58846f2e42038fc93c820566e510c849cb33c841a44a87043dec7ec481

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

  • Download URL: oxiz-0.2.4-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 650.6 kB
  • Tags: CPython 3.13, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oxiz-0.2.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e8e4363a78aa6b2dc739b7236e1377ce811d2a1b4dcdac681485da2971f24d74
MD5 f47be952e4763e70aa7c3e68b21ce1ba
BLAKE2b-256 054b7b793a84d0fd7a93d39a38aca47cfe4aa205e1b25d117eb0d930cbeab744

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 968a354446d756e5d0f311d14d24eb4c1e11b797c451abf987af7600b5aece66
MD5 cccc7ab751b39e2907c31c5374b152ea
BLAKE2b-256 3b4e08b6578071de31c1e1819463bdbb5e4d2c386bd7c3116eec24f90c0bf1cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: oxiz-0.2.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 573.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oxiz-0.2.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c8ac2af14dd32e4ebf3a5abdf04e4abe5369a349b85f4c221528108c2866fe4e
MD5 0a148a20e7c18aeaf663c1c172ddd01c
BLAKE2b-256 847ca326bce4b437b9e698357730812264b9019041690976c4a31258eabc9ed4

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4ff6ba965d3830a6c356b7b67fe1be88496f8da56fb46918a23ce069b04bf086
MD5 26b205c2bb4d843414e10f0f4ce6bdee
BLAKE2b-256 23736959ac74a8bfe4d1d7b99310ddd0742d2e58f5dbb86e4f5b5e1ad0dd70e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cdd1e39dd8254bd2006cdc4b8c39b242e4e670ced363e8fc20e6eff55d78b00c
MD5 e7dd1cd9dca37b2d6d5dfa947cb1c2cd
BLAKE2b-256 48a54f8c3e72699582abc49fe4e0dcca4095d503b12ca0b67aa7d656827be3f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

  • Download URL: oxiz-0.2.4-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 650.5 kB
  • Tags: CPython 3.12, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oxiz-0.2.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c5af8eea5795b4d53dd7a93c433616fdb740bb7bc61d7f305282f162351b804c
MD5 5d2585d60b7743633b7b6f71bcfa2d6f
BLAKE2b-256 35af97adde0add8a8811cda33c6e72cc8e53049385a7ba958d196a688b904606

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 58134f176bf315c41ad1d84a64c797835175c7de45f751cb06a953b6f569a820
MD5 300c77e04de7dcb7f4e23bad13fd2e95
BLAKE2b-256 c5a391f0ca84afbbb5c13324b632beb74fa2f4144b33f838563db3d8838af5a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: oxiz-0.2.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 574.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oxiz-0.2.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5b7b5c55167a1d95bb5d65dfa113c9895f54b1873e57b4b9cb4199974155acb2
MD5 6ac9af675540d07cda2a198e6e5fd2c2
BLAKE2b-256 78fa1147fb813c3236dfeb8443bb66e0c4c0aa6800c12af05184206fdd1079f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 517c1c6516b5309fdb38f0a87cb2aa5d034cd5c6be530bb6bad5cd311a5eb452
MD5 00b7f02041c9c09b7981fbb67b27734d
BLAKE2b-256 566a8279efa18f08bfd34094986182c50dc9449a152b8ce438a86d4939a52eb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c9729e70207cf411d8a0f469e2e7923f9133223914683ebc9df10cc5165096df
MD5 de5722611984a6818c7d9b7e03920bbc
BLAKE2b-256 aa04d42059ff50c7eeccb5f830ee3ac5764fb65bd71fa0cfcfcaf1c7a1865343

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

  • Download URL: oxiz-0.2.4-cp311-cp311-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 650.2 kB
  • Tags: CPython 3.11, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oxiz-0.2.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0cac7b29651a550ce0e2aa9bfb8cdb989e39f27203e587de8d46fbcea985dc8
MD5 78b22eb50860b67aa15c2fbd8782ca0b
BLAKE2b-256 726801815f61bd3036c4e2c56772ab61a37752ecb54e4880c8c5a62fe612c348

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 db8845b4cf3d0dc5294656737760b8ac7fd8ba0ff8bdad1da99594a4da4eb820
MD5 37f8e632122ba318d8d13db5ffa0960a
BLAKE2b-256 aa34305fbc78ac573f5eee92aa79aafb8beb402ace16c7c88f06c54a359a7e37

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: oxiz-0.2.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 574.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for oxiz-0.2.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 790507f9ccc01fb06b653d91d898e0073399ad1c9d3160615f9e99cc53c0e388
MD5 fc61cb4dfb6eba7169caaef1707cd589
BLAKE2b-256 4bd322973815a45937405fa2d50e78e48e276beb2265e9fd81fd28d773cce835

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 efcbddd9008a6ce23aadd8722502e26158086fabd924617bb6441b5df7fe4f3d
MD5 eda5d61494e9efcaf9b8000df591bd36
BLAKE2b-256 b55ad3f58a19bedd7a87cb894c3d7d689efdacba4fc5002d2ca8d3bf8777e08b

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 92ffeb913d9b8e533f5deda118492e91cd34d0ace867253490537a4ee7410cd3
MD5 9d146626e8e02b11b075518a067cfec8
BLAKE2b-256 beaaad7f1225d3f44935030f5a9e39abe8a61f2a4638c22b79b5242867f9dbf8

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d47af333a65d867ab6614ed07303a04323a79adca16cdc93a9ba3890e2298442
MD5 24fef01e196674b96759e4ae43c69473
BLAKE2b-256 f42a065d66e9f5161c075ad2b86b97952ff249c88cfb11542d5c315c84b9d765

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b9ac561ffbb963cccc0399afad2a5c6794068d466e3ba83a2955a07b7fb694cf
MD5 7f324269ddbd350d78d0f30792ff35a8
BLAKE2b-256 237c5c96d46f95bebbc30ae9ed32dc0be7be28fb3e8904eb65d2403070aa15eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.2.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 28c2b6d497b307d76512d60d9f75a53555fe2b47b6aed51a2351d7392daa88cb
MD5 05820634788a4d6abe81f45fd52e38b2
BLAKE2b-256 43262dcdfa82d838b934a7ac4faf3ddb7b59cd0fba13a46ff55c911109977312

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.4-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.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page