Skip to main content

Python bindings for OxiZ SMT Solver

Project description

OxiZ Python Bindings

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.1.3.tar.gz (2.2 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.1.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (634.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

oxiz-0.1.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (601.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

oxiz-0.1.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (599.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

oxiz-0.1.3-cp314-cp314-win_amd64.whl (499.8 kB view details)

Uploaded CPython 3.14Windows x86-64

oxiz-0.1.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (634.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

oxiz-0.1.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (600.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

oxiz-0.1.3-cp314-cp314-macosx_11_0_arm64.whl (567.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

oxiz-0.1.3-cp314-cp314-macosx_10_12_x86_64.whl (599.2 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

oxiz-0.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (600.0 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

oxiz-0.1.3-cp313-cp313-win_amd64.whl (499.9 kB view details)

Uploaded CPython 3.13Windows x86-64

oxiz-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (634.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

oxiz-0.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (600.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

oxiz-0.1.3-cp313-cp313-macosx_11_0_arm64.whl (567.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

oxiz-0.1.3-cp313-cp313-macosx_10_12_x86_64.whl (599.1 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

oxiz-0.1.3-cp312-cp312-win_amd64.whl (500.5 kB view details)

Uploaded CPython 3.12Windows x86-64

oxiz-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (634.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

oxiz-0.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (600.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

oxiz-0.1.3-cp312-cp312-macosx_11_0_arm64.whl (567.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

oxiz-0.1.3-cp312-cp312-macosx_10_12_x86_64.whl (599.3 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

oxiz-0.1.3-cp311-cp311-win_amd64.whl (501.5 kB view details)

Uploaded CPython 3.11Windows x86-64

oxiz-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (635.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

oxiz-0.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (601.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

oxiz-0.1.3-cp311-cp311-macosx_11_0_arm64.whl (568.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

oxiz-0.1.3-cp311-cp311-macosx_10_12_x86_64.whl (601.1 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

oxiz-0.1.3-cp310-cp310-win_amd64.whl (504.1 kB view details)

Uploaded CPython 3.10Windows x86-64

oxiz-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (639.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

oxiz-0.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (603.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

oxiz-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (641.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

oxiz-0.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (606.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

oxiz-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (641.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

oxiz-0.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (606.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

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

File metadata

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

File hashes

Hashes for oxiz-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c8e3cef90445e583e4c9fd3770e8be4272067f9dd86f0e80b9b88493df3ee336
MD5 026c3965930c74323ac19bce3156efa4
BLAKE2b-256 79ace7d2de86c208781e3d7e38a1ca2fa5413ed4589054586dfbacbb2f451599

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 88b113a2ef4c8472fefff9edc760ea47ae485683346fba033663b45ef6f05e3b
MD5 65d59b7d125201589b562e269f12a3e5
BLAKE2b-256 684b4a31019b28c1d5bef7d628d190230a371be177425c5bab966c581416f1a6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f4b344c9c28e12c3130e021964454999cfcdc3828518ccb231bfcd1620e9de21
MD5 0531cd3161d85a98984f464c01623eca
BLAKE2b-256 f79fa6838ff09260023f2dde537172c9ddc38feb51d14af625bc7c931e992c6b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ed7c057cf28e0001cb9d7d8e82a51d612a620950e8c114502b84d136304ab9b9
MD5 a45e72617d407db467c85f8f8be19d6f
BLAKE2b-256 71d59178a8cbb538487e21cfe50c4b16b82eda4eb1b62921cc54cecd4ffe3986

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for oxiz-0.1.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0c9b5b38d99d1ab8ec01071934a48e0dbe1be0629ccfa4085ef55fd783c81dfa
MD5 ea5633d1a6a6fdeba412bff30eae3d2d
BLAKE2b-256 a3713d679b3a26353800d82aa280d496597d04d92aa6eacd97c60ac83ec45983

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be1b38ad3889c66fad12c73fa75243c83c77a3296e31339488ef46aea6ca0cdb
MD5 efdf47036a91218713b86dd578eda322
BLAKE2b-256 94c72629e8ac4cedd06bcfb578048fcb511f5478290f84bcd7505ef474d13c91

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 76b76efe97589f7c6d6cb0ba5ef5f7734c77aac6816ac058f6607ef68d49d6f0
MD5 43900932c413d4284f1086906da4a33d
BLAKE2b-256 7430b3f03c49158cf5bcd6829931799d826101081566d0ef23ad4d0d41684a6b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f6aa57b70a4cff2a1509b7fb1908647076fcf584de1839a58f599f7d3463392a
MD5 ddf4b8e5f98e298fcbbf2a7809994bd4
BLAKE2b-256 9216a94cdc5f2ffae400ef66e774ffcdbc4187e61cda1aae34b212632883a71e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 72ace5ff56d10a12da2dad15689a57153a521583b30223570cf883d75daff981
MD5 516d1f74791369a58bd5d48427773f81
BLAKE2b-256 da1447d607c21f764867e6a77f3fe6c612ced164544a488c4ab567cc15966953

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 82fafcd57f87813400a020f1afe3abcac0af93cf1ab121a540c394e73613517f
MD5 a61563d538ad5c242efd270fa2f536f6
BLAKE2b-256 1d3275dc694a5e5cae4c94a140821fac0e77bdd8fcab55d9aa407d97b5ac5fe2

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for oxiz-0.1.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7a6141bed2eece8e73a84b21f4fa11240e93a80ec7c4839f9bd67e63862594e3
MD5 764397f17a89b313fd69db8af110d346
BLAKE2b-256 bb99094a9c9338c4a0074798e1a435dfab0b9fd0d263733b229dbd4e8e2123f5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 75c3210b10f159ca38d92f1ac759246b99483ae3af9379525450a64e196c5988
MD5 5de21cbfd70aa264ecd23f3503bf4df3
BLAKE2b-256 1b8a392d0b688cb4fcb32c5b9671ba01984d720a0a0a790254fc8548fbb2f8a4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 001f4927b2d28af2953c23222f40c5b89161558beafc25eac65503d9724691ef
MD5 fd3b37d2e8c15bc1f63403b0303a9214
BLAKE2b-256 acebe80ac3534244e1b12b5874ea26939e96f7f611946ddcfd59d76bf5f4afee

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2022f79176667a2fba599e28256169f980d1cae5aa087b25610d77e7a8ea478d
MD5 a41abd7439f78fe95742052054b5b4d7
BLAKE2b-256 891bd9fac0a6e51381e1cc7addd36080d8f6a6e33e1315d86683e177f58a7f34

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8a61e8c7e492c12a5a6264aa7fc22f052bed33c987b022a23be9e0fcc411fc99
MD5 86d2c956af53dfbf43dbf5210cba9157
BLAKE2b-256 d19fa8bec1039a3138abce54186bcc35b77bb3d28ce7dd9238e08ee2b54f4c56

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for oxiz-0.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ab279695a67b3c11b0af4bb060636acf70e33f06ea2145c217ce05b6dfed04d7
MD5 b50e07b16a9b4078a657090f2992c828
BLAKE2b-256 27a578e426fbacec78f03b177b7939499454ef09c84272e088fa5006dd82775e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 23766fbfb0e8c84b8c56afb0132c4c5b712275f8ce4ce9142639f28d0e5d3311
MD5 1e91fe306077c5367bb6f2c71df85d14
BLAKE2b-256 57dba1ce62a0cb310e96b50a98b3941e6f3c62c2b34d9df09bfe1f07b5012ef5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 60dbe8eb2052b81066f770e25962329795d6aac3b9ddf7441ff979dd80671e72
MD5 6a677ee6f1847d738ef223c425aa9bed
BLAKE2b-256 b35c50c2f3d2c0711494f12a852582bb1855e4a5d4438550a0ccee82f2db13f5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a6546e5d35fad10205e1ec990bb3a711e3c6e79b8928f19b753b8ff14e40c15a
MD5 3f6c9da67a8f34ea177b792de45c5e30
BLAKE2b-256 0f00af406fea1ed0916b2b36d761d3969c82f8ac229c4bfef35f7f5fbe8bea0d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 15243dc652a20e90b016a9902e88095a7174d2bf1c62f66469137b41b8b6bf15
MD5 ba90d9c232b4255ff134d7af28b0aff8
BLAKE2b-256 451d6d7e1dfab5f6ea3b3cf3c9d0a63f743378cdcb1da38069f46ccf80e8a052

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for oxiz-0.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 dde1f0413bff86c1b61b18724a5eff1aeaaf69902988278686c8d02bac73a2c6
MD5 5dc14cce55c437752193db2a19bcb30d
BLAKE2b-256 7cd52b3cb0b1c751749e10cf769ac5185c453ef3dea18ac2a922e012d45723a1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 42ebad50afa0a0af3b40984c27808d1c18677b728cfe86d1b9c90eeeddf6413c
MD5 72d5a73e154d53325f9775dbe209e33d
BLAKE2b-256 8a210ca36aec05ef7dba220a4b6f336a37a3eb96bb948c786c6df641a5c4611f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c895d90259c951556536d41e680523b576b40409bf6d85966500ff33922f3198
MD5 5e1cd5fcb854302eaf6b1ce35b4cbecf
BLAKE2b-256 e7ce3f515e8d380467a93c4398338bbef6341543543b2942148452a6f4edbe3b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bf0ad40414ec779d03814fa709ff69a1b1ba6196c60d2b1fcc6ca5dd4b244d43
MD5 154c0236ed1a533cf0c99f2807207aad
BLAKE2b-256 76fe8957ef9bf8b27eef04a2b6478921206490692a518be253bcab739575cda9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1bc27ba88ec2b73483bfbe1f37d235e3c8d652120bffe40fe85ca027aa7f1007
MD5 20c738aa076b62bdac6224d984081c8f
BLAKE2b-256 3ecd8e3857936d03429ce09acfe1bb264af3af1caaed5dfd8eb88758c0c598c8

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for oxiz-0.1.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9b9d919f7be7a2735db206b6f36415bfb7e5438bb2a7aa8c7cfc57bdc6a2d7ef
MD5 2996b18a10370649f3a02d016e1d1479
BLAKE2b-256 69d00f599b78f2990c075df599a54954ca1205b8a5497b5c3d39d343acad0d65

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 14501c1c2889055a536df94f7cff4f052946adfde98e27402c21180c1d0ed587
MD5 3a2eb1fe2bd766744bdd0ef7312a3c76
BLAKE2b-256 35909c2f46ebb63ac6783ece004975a90fc626c7ea251f28815ff7d524ee4be8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4276f5e338e3e834778c3d5d03e91b0fb5755fc958115e8dfd0b1a89ececeeda
MD5 8f73c05069fc887c07118c6edf33639e
BLAKE2b-256 724d8e3a19d99494f6ca15dcd8a8c85dacbff46b3fa2a8a2af7fc841ef1f3696

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b4fa1122d1f092dc157f8bc439ef174fd0ec64682486d29f4d6d511621fbfacb
MD5 3c1c5910252eaef5db353b653a26d656
BLAKE2b-256 d799888f41e76b9c38035a3a07d0da183b807d8a956800946cbe0385e2a0af1a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 681511fed4525bdfb60f1e280afaa8776d64be5dbdca9baa79c7928b956dc4cc
MD5 31bf785c76a65e592da8a701fd38f1a2
BLAKE2b-256 20f50e3ea2918ba36f19ff5a9b807303a660f717410cf31d3b10fb7b81998223

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 11277d7ba1d4bd7db8e33838ca7613794ebc2aea061b405a880aefaeec1ef7c8
MD5 64fad0d1e304634e4998e8272a81f068
BLAKE2b-256 9ba7ea0dfceec01f36af0274609676573ccfa625d55c14bc461b813f831c9745

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for oxiz-0.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 336ebeb28a0099b974ee8ad391bef2fbdea98ada39b8ab2d36e6a142e0def0cf
MD5 d72fcb55182ee6de5cd343c35ec4c708
BLAKE2b-256 2d54e6fc8785c71cf6a142f306659da5a19fad62c4245b2f56f297a6ace6d599

See more details on using hashes here.

Provenance

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