Skip to main content

Python bindings for OxiZ SMT Solver

Project description

OxiZ Python Bindings

Version: 0.2.1 | 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.1.tar.gz (2.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.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (661.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

oxiz-0.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (670.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

oxiz-0.2.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (669.2 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

oxiz-0.2.1-cp314-cp314-win_amd64.whl (511.6 kB view details)

Uploaded CPython 3.14Windows x86-64

oxiz-0.2.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (661.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

oxiz-0.2.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (669.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

oxiz-0.2.1-cp314-cp314-macosx_11_0_arm64.whl (591.8 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

oxiz-0.2.1-cp314-cp314-macosx_10_12_x86_64.whl (592.3 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

oxiz-0.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (669.1 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

oxiz-0.2.1-cp313-cp313-win_amd64.whl (511.5 kB view details)

Uploaded CPython 3.13Windows x86-64

oxiz-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (661.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

oxiz-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (669.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

oxiz-0.2.1-cp313-cp313-macosx_11_0_arm64.whl (591.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

oxiz-0.2.1-cp313-cp313-macosx_10_12_x86_64.whl (592.3 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

oxiz-0.2.1-cp312-cp312-win_amd64.whl (511.5 kB view details)

Uploaded CPython 3.12Windows x86-64

oxiz-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (661.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

oxiz-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (669.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

oxiz-0.2.1-cp312-cp312-macosx_11_0_arm64.whl (591.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

oxiz-0.2.1-cp312-cp312-macosx_10_12_x86_64.whl (592.2 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

oxiz-0.2.1-cp311-cp311-win_amd64.whl (511.8 kB view details)

Uploaded CPython 3.11Windows x86-64

oxiz-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (661.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

oxiz-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (670.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

oxiz-0.2.1-cp311-cp311-macosx_11_0_arm64.whl (592.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

oxiz-0.2.1-cp311-cp311-macosx_10_12_x86_64.whl (593.1 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

oxiz-0.2.1-cp310-cp310-win_amd64.whl (513.1 kB view details)

Uploaded CPython 3.10Windows x86-64

oxiz-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (663.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

oxiz-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (672.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

oxiz-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (664.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

oxiz-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (672.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

oxiz-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (663.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

oxiz-0.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (672.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: oxiz-0.2.1.tar.gz
  • Upload date:
  • Size: 2.4 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.1.tar.gz
Algorithm Hash digest
SHA256 44d5340a3035babfaa906877b105b6eae8c0585a385cca463760e34e73b43057
MD5 daf92bdff0dd86763459c6e374014948
BLAKE2b-256 4c8c59b73e363dce1c131c00743b1d212b531eafd280927373fb1cfde11e2d2e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 644272ab68dad013d433f7abd90a6a696c932258f9f975f799603f1dfd99ab1d
MD5 4bfef3f4437acb908122eb3ab6aba7d1
BLAKE2b-256 6ed8ee251eaa74f2d82b92866bc78e6d492058c267d1155cff6e45649ed14570

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fd6ed6e17bde64169f18921655594489317063eaadd8e50798e546dfe6c9ae5f
MD5 a3b9ace1339a75cbedfb745508da3c18
BLAKE2b-256 7e3d6176d49067f8abc191a79566a9d17d5303ad1d02ca2962deafd5f16437c6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2fafeff7ba499ff1f30b18e1543734b24a44a684deb01febc04bd75ad10e2cb4
MD5 737a8b0318606f45f71574f49bceafbd
BLAKE2b-256 e94bc9536e622d27332a2113b3b3b5666958a6306ec42c9119cc3d53b0a40480

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 511.6 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.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3dbd5e6c2b3a02388ce9fbc6ca9301e6d1c02f213d8c7c565c7b27c68f3a0adb
MD5 4c63ced34b9469dd1d26e89d11239138
BLAKE2b-256 83c07efc4b6831ad1b4d474dec6d32cd44be09a9c9b34ff72bcd51f31cecb344

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1214c41f4dad0d06af23567bf2730bf7e92e9eb3a63434d08ee89778e69da7fd
MD5 7de95accb6bdb4fc0a71d9ac8342f11f
BLAKE2b-256 0ff31a83d844085fc30075342b65c9fb3a6b8a91c42b8e2e73c3ca72c13134f6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 db3f54fdaff0b3e3a142ae08d2238143fead6216989bf7d23d08b563140118ba
MD5 81ad8bd189409bf1af7987db8416dfb1
BLAKE2b-256 81cca0eb394055b6689015397b5c0424f328e68c455cc20ee4cfc34f427bcfe8

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.1-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 591.8 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.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e48fd4ee472aa4355a3d748742f678b6ce7c99f3b1ef56798da331415ed931b0
MD5 894c04c0c41a57687a71493b7d43fd37
BLAKE2b-256 ab85ecbeeb9a76381c6f9583fe0be71a4a8c9ec9fd8e2873c4c34332d30b99fc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ae259a4f75bf5334ba3c654a61bb2c5986abdb6fefa4011dc0c8fce699aed378
MD5 85c76b32f05e1f0b55e4ffdf2856b07c
BLAKE2b-256 03e68de97a9d15bb3c0374f39744e5c22f7030db0e6c3aa38cf876b0cf500adc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3838c0952e878f3ae7a498374cf859a24762cf5db1f811e22884754cd66bc6b8
MD5 83c772b0ea95a1715589e512d11aa378
BLAKE2b-256 b7e50fab68b5f9b36793cc2a13f389c052b116e127fe4f5e57c12450f07afe3b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 511.5 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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 11b1e883a4024bb2c78dab11853e760befa81d8fb741ce7aa15ad56efd94fc01
MD5 a85db11eab5e2c32b6f90a46882e3c33
BLAKE2b-256 4fb5c49b1dcabf6acff9d7a2de344383fd4aceef35a1b1637b544a6af95138b7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bc0bbdffede41226b4a81a497845908057441cc494def9ccdc373409eb834791
MD5 1edae6e6cd3ec13c2cec4a7817b60e45
BLAKE2b-256 ea2f94ec4d8713320d063df90ffd545bf0abfd4a9fb44a8f06038c2c8d446290

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ec9ada88f76b7b58c29b8332c17103ee49e429069d2ca7b4965ff70ca6eca6c1
MD5 5189605b20ab528deeecdb362aaf65f7
BLAKE2b-256 0ee633bc4f068879baa40d9a24a930e09dab92fa88c097fc1d56c18310ebc65d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 591.7 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.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e1cdd9ec75eeabd5c7965b4b5b8cba9d1307ee3bc5268ddabaa0fbfadd0ac677
MD5 61ee24a2228e378000410a55b6d32fe5
BLAKE2b-256 e62f9a60ff6f7f2066fd479fe9500d53ab4f7a1ac1818e98f0f8c0d8d1dc2f2d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b81e9e02c07ce4223ed0b5c09d6be61241930ca0fc44392e531e5eeafda4c066
MD5 3fdb65f76083e02dea3f1a906f76ed41
BLAKE2b-256 8ee7cc2b6ea96980f28e52a877c12f9a2c953f126b44f1c87d4df9d851c45f6f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 511.5 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 30b9fc27f8c8612791ee8ff51f5c8172d2c5b10fba072e99b332466364ae028d
MD5 66388cd5f8584e298d76db1f770f3cd0
BLAKE2b-256 7c313d7fc3b1815c2c2e80e834ff6a0f0bbfc4f95b09b7c8b5a75a29c4f1d365

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d7de0cd60d05d36b9eb1d635f1bd7438826ea87555f96612e35a4da202ac7214
MD5 46d01cd36a51125d16d4f7ed1e59b58e
BLAKE2b-256 5e0d00cc5415e47e6fa1ade4e37b7eec542dd5cf5134b710aa4f220749d0f6cf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 293944a7230fce6257bc346317d51a86403de831553edbb7f69c11f2e43e5fbc
MD5 2742cbee95c8d0f549d8eb5e6e69398d
BLAKE2b-256 2ecec60477ceb026af2e5387c5f5968df366b3d4e53a614090ff5112e9a30066

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 591.7 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.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4e883997adc831e8f480073e036a87261b7f2f4e2bfeddaeb3021773877d3ba8
MD5 5771e9af26948845d21c90e59fee26f7
BLAKE2b-256 b752c706712f906df78b301b9f58ef2156d05c6349f989da3ab5a93ac698691c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7ae2e69a9e044e8ef3e1c70e99ad1b7988bf3ae74e80c829edd5864e27ee2278
MD5 c560cca26e0a4f4df15df7c04f4ab266
BLAKE2b-256 afbe558ec90fd82e139e64f158940d51232806c3a720aec2c15a050d3d7c9267

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 511.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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0da17ed988f058d012032ad8c5100ca65c3bd3004035763e9d5997bf24ab91bb
MD5 7f783ecda56e0a0b8c009b9bd70a533b
BLAKE2b-256 56a0bbb203c8af068ec4fa0ab7e4b5d7e44fb0f4bb2c7b8c5016c17e1f64b34c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b43d9c2e8d9f20dfb8979b0d0d0cb2b5bee3bcd39ab13a962445a4fbe1fe44c0
MD5 ed97661fac709d029215b1c362d9bf6e
BLAKE2b-256 3e9f293d87695b6cb21d060838977cdd4c4e1c97e6ee5bfe0b3416a0300d75bd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ff50de443daf1dd49f447ce08480e2eba8e9279fd740bc3f0b2e98c699d5ada4
MD5 8211bbe060e364bf3e8a2e594d94dff8
BLAKE2b-256 41235c1330cc9f136bc51d693e8eb207710a3daee7ff7f6d11a18b9c985df71b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 592.8 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.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 841af655ef82d1754e7c6953164df60454ae2ec16ee42c435ecda3b66a8d112a
MD5 16b6214bfdb0fc7b9c33ef270f6098a0
BLAKE2b-256 630cefd36fe2a516cb12569ef606eacfc768700fe84f0c4e70b0856b63db9358

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 44b4de3a6a66cb0b56b1b0ca7ab063735b61b480be81a9aab309da2a11bf511d
MD5 c3a1d5b585288162e27b9208b618f580
BLAKE2b-256 957edb67b4887f4cc4d45be909a1631d12af2c8aecc39f8a165ad94d023ff810

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: oxiz-0.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 513.1 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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 37476341c245599cf29584ba421a35cb88770a85799bcb19e028fbe9c46e693d
MD5 2a415db73b7396dabdc73f530ad6a6a1
BLAKE2b-256 f4748a0b07527711dd49a481754e06b5183816ca660985fbad2aa233d2f8b77a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7adeffbfb9d5f7b818d1cb58807f29aab9f32c1f5795d13cf0eebf38cc69d627
MD5 54ac8e911972268feeb72f47b437902d
BLAKE2b-256 253a0bcdfd6fb71dddab9255cf8fc133542c94a51b6b48babb11bd59c95876c4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dd36a7e17742e25b638ba102b65d87103ab7b2508de13109ba7ce10d80f54ca8
MD5 6c8b15ee246a8dc24b5d395297351e88
BLAKE2b-256 7bfdedcd9fd595d693a65cbf6f0758fb1f332767617005144b9300c84de0d435

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7c4c311b4e61828f875cf3c20b962ca97a39e6547895c2aab7231d13c9f53bc9
MD5 20cace2409fe9eb2307cf7745e488d4d
BLAKE2b-256 2037d34f17444054daacf0dcc1726a46863823cb6beb2639f9cbcfee1f6e63ca

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bebe6463eaea49a0d7059693c86ba8efc851b70f1cfad9b482982dc560d9b2b4
MD5 676f3298a902d550afcc07194019c400
BLAKE2b-256 74a8c034fd8edf79ecbc90c930f1c618c84f3d98aee26050ec2facf49fd984d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for oxiz-0.2.1-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.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiz-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c17525e1b6d0a8ff63a4171d1416896bce41807f15c5182dc1d6b8e596daa6c8
MD5 12d362b3fc0dd3d578dd1f00a209fe2a
BLAKE2b-256 e87da8e428a0f782028c68161d1bbcef76ac047df3cb8f70c87167a3aa99bdc1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 aced3e391fb0a8b66a3e2ea63918b5e37c580ca3b992c8922a59114e70b56390
MD5 a49a10cfa6c1dd5c06eda482d0c99b6b
BLAKE2b-256 ab099b372cfeb716efdd495b9b55372509175b0723a5b8773fc7adc57947e640

See more details on using hashes here.

Provenance

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