Skip to main content

Python bindings for OxiZ SMT Solver

Project description

OxiZ Python Bindings

Version: 0.2.2 | Status: Alpha | Tests: 8 | Rust LoC: 1,583 (7 files)

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.3.tar.gz (2.5 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.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (680.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

oxiz-0.2.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (684.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

oxiz-0.2.3-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (680.0 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

oxiz-0.2.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (683.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

oxiz-0.2.3-cp314-cp314-win_amd64.whl (524.4 kB view details)

Uploaded CPython 3.14Windows x86-64

oxiz-0.2.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (680.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

oxiz-0.2.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (683.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

oxiz-0.2.3-cp314-cp314-macosx_11_0_arm64.whl (605.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

oxiz-0.2.3-cp314-cp314-macosx_10_12_x86_64.whl (605.3 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

oxiz-0.2.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (683.0 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

oxiz-0.2.3-cp313-cp313-win_amd64.whl (524.3 kB view details)

Uploaded CPython 3.13Windows x86-64

oxiz-0.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (679.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

oxiz-0.2.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (683.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

oxiz-0.2.3-cp313-cp313-macosx_11_0_arm64.whl (605.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

oxiz-0.2.3-cp313-cp313-macosx_10_12_x86_64.whl (605.2 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

oxiz-0.2.3-cp312-cp312-win_amd64.whl (524.3 kB view details)

Uploaded CPython 3.12Windows x86-64

oxiz-0.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (679.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

oxiz-0.2.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (683.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

oxiz-0.2.3-cp312-cp312-macosx_11_0_arm64.whl (604.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

oxiz-0.2.3-cp312-cp312-macosx_10_12_x86_64.whl (605.1 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

oxiz-0.2.3-cp311-cp311-win_amd64.whl (524.6 kB view details)

Uploaded CPython 3.11Windows x86-64

oxiz-0.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (680.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

oxiz-0.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (684.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

oxiz-0.2.3-cp311-cp311-macosx_11_0_arm64.whl (606.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

oxiz-0.2.3-cp311-cp311-macosx_10_12_x86_64.whl (605.8 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

oxiz-0.2.3-cp310-cp310-win_amd64.whl (525.6 kB view details)

Uploaded CPython 3.10Windows x86-64

oxiz-0.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (681.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

oxiz-0.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (686.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

oxiz-0.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (682.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

oxiz-0.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (686.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

oxiz-0.2.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (686.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: oxiz-0.2.3.tar.gz
  • Upload date:
  • Size: 2.5 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.3.tar.gz
Algorithm Hash digest
SHA256 f34a8f49ef99522a90148c0e63c27940ac75e64bff507aff99279c028f922cba
MD5 2a529da24961a6683f17bbba3167aab8
BLAKE2b-256 0aa8f833ac0b3fbdc76eaef157bc656cbcf00dc9778e0fbd107e2365ec61ca48

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7c77d47a31426880605b2de5daa0294941ba0a2d19839dfdc8479ebb4dd46d99
MD5 5435175bc9efde06a1be53b95f828791
BLAKE2b-256 5c0b38bfee25728ab33f6a1542bed1104b5fa169d72e0551f2cadc4b3bfe6478

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7106dcaa9bc55adee8bfd37e8922d9ea12b356e3297e287f217b4477de1613d4
MD5 1c7140af349b1b3e35cc9e5cf29b78f0
BLAKE2b-256 c3cf7e46c38d90e7ba1834cdaf0cb788854bb962f1763dd5bfaf0d135ef67a60

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c680268414631c90fb2aa4b16db95986655831edb12e94c0d56d0e11645eee2a
MD5 bfbd358151281839579770b164817e32
BLAKE2b-256 d38f307f5d6cca13085aa9021009182f2c4e0ace1c8c30184c822b2b49e48515

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3fb895d69157985eb30f63647ff2398a9d68218abbf72e6ac3a42e59285eb808
MD5 6955b5b64a33ca4e395d1406c1e8e406
BLAKE2b-256 bf955609bc07b667d93841dea584e7074822b5fc273f990bd16346d0197384a8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.3-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 524.4 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.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 bb8d3487d6dbb6e24ad088f5e4cba65ee5c3f0898e075ef41d92eeec40cc0ff0
MD5 62846d5b95dd046b876fa7503b45e1c5
BLAKE2b-256 c0dbc489720d352f2169ee03c3e1564e36a541dc14bd4076f514801dec0ca713

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 651c0560924d883d844dbf235cc2e4ea7e7cf5fdc09c2a43bcca03dbb3eab749
MD5 6ea74ff7984fe9424a2dc495d744c98d
BLAKE2b-256 0304001ebbe7ab12e2db5f546e4b7d8c34715d31b4418208367ea82db5389a60

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9fad960d0d9bfbab6364f6983dc57906142a51c4bed8c82d5ca25cab6a84ed1a
MD5 619e9b8c03fea68a8b6ddad960fa1767
BLAKE2b-256 9d3f842187ce2cf157c63913cd7dfd36ce8f2c20eb0cf8d0211cba5c294fe1bb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26f4c37ba76cbac31bf84a393120c8c13fa3de02a7972027fb83f8ee000db93b
MD5 3848bfcdc8cadca3c3b1fb2531d8cfba
BLAKE2b-256 b85de066dec2395e881275062ca05feafc796854a93dc11858d93a49dfedaede

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ec17af49048ab52e05353a1c337502da21ae99b5910371d0fc4cc8e3c54469e8
MD5 67d2533ed7dd69d5ebe6c81df055d4c1
BLAKE2b-256 b7c557d4b576fa1fcc0c5948c2b5f495ef7967ac994d6979e233357719d0fbab

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 07d39107ce4a2d49679c899ffc6e5bd63021a21795faaf0b6947b0552e58d5a4
MD5 7494a73e6c921d9d95b3365e0c295535
BLAKE2b-256 c6db3e04d0398c5b71fb1c8fd1910ef4ee14416b295e19592ea0d812aa8c9c01

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 524.3 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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e085d6a909a536cb692deb0e51a04a80b9a493056266fcab0aa98a65ceb22a52
MD5 f014d5092f88c8d000a867e78b3d9778
BLAKE2b-256 59669f9883286f8e86cddc4dd1f6aa9f7dce512ae3d20590fe6bf8458566f2b6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c3236ccfcca2b09e2cbe87f6911f17f83f3f3c02a7b846426fb6ddcc43862e30
MD5 1c97ce1581385194b50d3bf8869cfd40
BLAKE2b-256 14ce6f1220396f6c1b839ef87516bbb333e8e4aefa76baf1f0789e565c39492f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 91e64881e73332c44f8e466c2da5b4656a6dc774b50a000cf0b96d77419468ef
MD5 7fde725ddfb78d0a0ddb851d03a1f40a
BLAKE2b-256 4487955d067efbdb0d21c148e3a4ef462ac4fffdb779849610961f33e96bafe9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2f5dc370778f189368935b89a27a970cd323e0125a6bcf2e52320d052016ef2f
MD5 df37340d9c35495a6e035112629dc36e
BLAKE2b-256 dec62952f20a55e97cac91a27da5d7e7fc9f017cf675eb15da7fa798a38c84f0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f7d4ff19d81668672a44531f6b8772ce6afd1cd3d4d2678f31017f1f7333e3c8
MD5 6c5c89f433426db25da6fa9678efc475
BLAKE2b-256 fe676ca111742828ca028d549e896652405718cc45a36603a2bd4106394e6808

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 524.3 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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a2a9c8807db342fad162bc3a72a19c205fe26527f78b058361f36293aa774942
MD5 2dabaa9c0ca3e119c9e09577f5f3b4a0
BLAKE2b-256 274cdad19473fb8dcef1afe6918d549020309afec471143ed7a9229e1fc39a85

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ae3856308793a39314e5dd9e36c0d17c14271e491eca122b976b70e6d51d382
MD5 401f5f044fe341f9c0e2e69aeb386480
BLAKE2b-256 9701212d2581b4622db4cc1e9f3c706c46669de94f33c414061830e842670ff5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ebad35c2b6aafa091b005ed922d65a31255ef0980c486d4633cc68e46efc5b0d
MD5 858d434b1718b976638923742a992545
BLAKE2b-256 ba13c76984c36804b17dcf82276d0e25576fc98546c7123ec5a551234d057138

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0e81906ee196ce46d9b30deed73ee6156922f6d14710ee459093322cc27fe61
MD5 30ebcc281227cdf29de99a4ca0fe59ae
BLAKE2b-256 6e10304986362ced2513433058fa4f21fa097fff27d310a1fff1a4b3a51a015d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c2b04bd685b2e99f4356743e0a2b79be42941091f054a151e8c74a6568d910e5
MD5 1cb6b8d3f9edf068a67c0fe1651f714f
BLAKE2b-256 0e0bdb2c9388484d559d2dffd5501d762dd4e2bc0ab335c8ebe41db5a6e55605

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 524.6 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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d3686632cb33ff5307a5d2840bd0569d7f268c1e82cf72029d11b9bfe4c97f98
MD5 21cbe64243d500fcf655b1eaa7cd83fc
BLAKE2b-256 6473a7f56b599b5865e596c137af3322ab71b66b0818ec0517e7939393fcd046

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b13c88a44bdf1afab54839dab30271914e5e2ad16e4b41265894e2447a588b22
MD5 64fa97f1bac76ed5ad3baeceed988e7e
BLAKE2b-256 f8534d00399b75b8f4f1ea5edebd85151bd2535902d8094df2ffe01b98c5fbc6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 35c79f02e3814ed9d8c81b35ee06911618cc65ea7b80cb5949277c9561caae36
MD5 c8f643043a4dac976cb8ca523db874c0
BLAKE2b-256 c0cb3175842dbf171bf747948ffe11bc113c8a9660a8b61e47a2231ee05530fd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 33369ec3c882f0955076b2bce42c62b4d67dfc0c059964e22eae695c63fdda2d
MD5 505911ab053c76aaae54c86b45ef4c5b
BLAKE2b-256 60f911ae9b7475aaeb583095a27f4b7117ca462daade4f4f206b188a18af2fd8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3fa5794d5b9f8700960e82764f9ab91b8df583081b2ade7f64e4e3332adc5771
MD5 64cfbecd4ab4dc7bae99abaa081a9a3a
BLAKE2b-256 6fd8c7df12c5bc130b8513755d8cba22f0a08403b03b79505d20b021e89fceea

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 525.6 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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7a011d7317ac7bb818a7f8cb60d84d145045ab49bbb53f5a0e984679d4659478
MD5 3973e3305fcbbdd3f0969b50dbeae384
BLAKE2b-256 3b96a0f46b705c387d504d81887699b44ec6f2059c39f44a9c1aaf2bca475cd8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 62a74bb68d187d060f7b790ded171cd3273ea61da63621a1f011ef3eaab2cca3
MD5 48aa81d621d535382dd68405829c2d9b
BLAKE2b-256 bac85d466f71ca5f62957fb9de4aa05ec4aa06e8839914022ebc1e034c7bfd7f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1f500be3febc2692b60f6d997f2f39ef8d567608cd50cb36cb0eedea43b83bfe
MD5 e21a095b4aff70f5bf30e0d072d157a4
BLAKE2b-256 b502a0620429aa9149500281063ed4baf12bd1a376a255e3126c937cb7228f1e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2beca421bfc0a8899554a7e10202ec7656bfbbaaf5b6c7477f47c1bce871000e
MD5 e97324ef033163c81e4089fab66af5cb
BLAKE2b-256 ef5d79bc27b38b62713b8c61ff5eb821e3977225a2aa4587cdb5fc0e0632feee

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3537c7817cd1155ab45fe733096998facbd5ff712a2931a25bdb28ab728969d6
MD5 3a7dd838c49d23f6290e05042281b29d
BLAKE2b-256 712522893f74d4dc7f4278b91de1634850c34f6ffa29f02c0345a36ea1d5b2f9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8d6fa1673ff596f78af0e8ede8f842d1580fe3688dd90dcbb6efe1ebb6b122c0
MD5 733b1df53cb708716e4c3ffc2e87a44b
BLAKE2b-256 8eee502f222c3cd05a99c4f534b0fbd74d00349269202392be9d4247d558b600

See more details on using hashes here.

Provenance

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