Skip to main content

A Python library for working with logic networks, synthesis, and optimization.

Project description

aigverse: A Python Library for Logic Networks, Synthesis, and Optimization

CI Documentation PyPI Python License Release

[!Important] This project is still in the early stages of development. The API is subject to change, and some features may not be fully implemented. I appreciate your patience and understanding as work to improve the library continues.

aigverse logo

aigverse is an open-source infrastructure project that brings mature logic synthesis capabilities into Python-first workflows. Rather than reimplementing synthesis algorithms in Python, it wraps high-performance C/C++ backends with an idiomatic Python interface. aigverse is built directly upon the EPFL Logic Synthesis Libraries, particularly mockturtle, kitty, and lorina, providing reusable support for And-Inverter Graph (AIG) construction, manipulation, optimization and equivalence-checking flows, dataset generation, and export to graph and array representations for downstream data science and ML pipelines.

Documentation

✨ Features

  • Efficient Logic Representation: Use And-Inverter Graphs (AIGs) to model and manipulate logic circuits in Python.
  • File Format Support: Read and write AIGER, Verilog, Bench, PLA, ... files for interoperability with other logic synthesis tools.
  • C++ Backend: Leverage the performance of the EPFL Logic Synthesis Libraries for fast logic synthesis and optimization.
  • High-Level API: Simplify logic synthesis tasks with a Pythonic interface for AIG manipulation and optimization.
  • ML/Data Science Interoperability: Optional adapters for graph and array representations used in Python data science and machine learning workflows.

🤔 Motivation

Logic synthesis algorithms are predominantly implemented in highly optimized C/C++ toolchains, while modern ML experimentation is often Python-first. Without reusable infrastructure, projects frequently end up reimplementing synthesis functionality in Python or maintaining brittle wrapper and file-conversion pipelines around external tools. aigverse addresses this recurring engineering gap by exposing mature synthesis capabilities through a streamlined Python API. This enables circuit construction and manipulation, optimization and equivalence-checking flows, and export to ML-ready graph or numeric representations in one reusable library. aigverse wraps the EPFL Logic Synthesis Libraries with nanobind to provide a Pythonic interface to high-performance C/C++ synthesis backends.

📦 Installation

aigverse is available via PyPI for all major operating systems and supports all active Python versions, with Stable ABI for 3.12+ and free-threading support for 3.14+.

pip install aigverse

🔌 Adapters

To keep the core library lightweight, ML and data science adapters are optional and not installed by default. They provide reusable conversion paths from AIGs to graph and array formats for Python workflows (such as NetworkX and NumPy). To install aigverse with the adapters extra, use:

pip install "aigverse[adapters]"

This will install additional dependencies required for ML workflows. See the documentation for more details.

🚀 Usage

The following demonstrates core workflows in aigverse. Detailed documentation and examples are available at ReadTheDocs.

🏗️ Basic Example: Creating an AIG

In aigverse, you can create a simple And-Inverter Graph (AIG) and manipulate it using various logic operations.

from aigverse.networks import Aig

# Create a new AIG network
aig = Aig()

# Create primary inputs
x1 = aig.create_pi()
x2 = aig.create_pi()

# Create logic gates
f_and = aig.create_and(x1, x2)  # AND gate
f_or = aig.create_or(x1, x2)  # OR gate

# Create primary outputs
aig.create_po(f_and)
aig.create_po(f_or)

# Print the size of the AIG network
print(f"AIG Size: {aig.size}")

Note that all primary inputs (PIs) must be created before any logic gates.

🔍 Iterating over AIG Nodes

You can iterate over all nodes in the AIG, or specific subsets like the primary inputs or only logic nodes (gates).

# Iterate over all nodes in the AIG
for node in aig.nodes():
    print(f"Node: {node}")

# Iterate only over primary inputs
for pi in aig.pis():
    print(f"Primary Input: {pi}")

# Iterate only over logic nodes (gates)
for gate in aig.gates():
    print(f"Gate: {gate}")

# Iterate over the fanins of a node
n_and = aig.get_node(f_and)
for fanin in aig.fanins(n_and):
    print(f"Fanin of {n_and}: {fanin}")

🏷️ Network and Signal Names

Named AIGs allow you to assign human-readable names to the network, inputs, outputs, and internal signals.

from aigverse.networks import NamedAig

# Create a named AIG
named_aig = NamedAig()
named_aig.set_network_name("full_adder")

# Create named primary inputs and logic
a = named_aig.create_pi("a")
b = named_aig.create_pi("b")
cin = named_aig.create_pi("cin")

sum = named_aig.create_xor3(a, b, cin)
carry = named_aig.create_maj(a, b, cin)

# Assign names to signals and create named outputs
named_aig.set_name(sum, "sum")
named_aig.create_po(carry, "carry_output")

# Retrieve names
print(f"Network: {named_aig.get_network_name()}")
print(f"Signal: {named_aig.get_name(sum)}")

Named AIGs are automatically created when reading Verilog or AIGER files with naming information.

📏 Depth and Level Computation

You can compute the depth of the AIG network and the level of each node. Depth information is useful for estimating the critical path delay of a respective circuit.

from aigverse.networks import DepthAig

depth_aig = DepthAig(aig)
print(f"Depth: {depth_aig.num_levels}")
for node in aig.nodes():
    print(f"Level of {node}: {depth_aig.level(node)}")

🕸️ AIGs with Fanout Information

If needed, you can retrieve the fanouts of AIG nodes as well:

from aigverse.networks import FanoutAig

fanout_aig = FanoutAig(aig)
n_and = aig.get_node(f_and)
# Iterate over the fanouts of a node
for fanout in fanout_aig.fanouts(n_and):
    print(f"Fanout of node {n_and}: {fanout}")

🔄 Sequential AIGs

aigverse also supports sequential AIGs, which are AIGs with registers.

from aigverse.networks import SequentialAig

seq_aig = SequentialAig()
x1 = seq_aig.create_pi()  # Regular PI
x2 = seq_aig.create_ro()  # Register output (sequential PI)

f_and = seq_aig.create_and(x1, x2)  # AND gate

seq_aig.create_ri(f_and)  # Register input (sequential PO)

print(seq_aig.registers())  # Prints the association of registers

It is to be noted that the construction of sequential AIGs comes with some caveats:

  1. All register outputs (ROs) must be created after all primary inputs (PIs).
  2. All register inputs (RIs) must be created after all primary outputs (POs).
  3. As for regular AIGs, all PIs and ROs must be created before any logic gates.

⚡ Logic Optimization

You can optimize AIGs using various algorithms. For example, you can perform resubstitution to simplify logic using shared divisors. Similarly, refactoring collapses maximal fanout-free cones (MFFCs) into truth tables and resynthesizes them into new structures. Cut rewriting optimizes the AIG by replacing cuts with improved ones from a pre-computed NPN database. Finally, balancing performs (E)SOP factoring to minimize the number of levels in the AIG.

from aigverse.algorithms import (
    aig_resubstitution,
    sop_refactoring,
    aig_cut_rewriting,
    balancing,
    cleanup_dangling,
)

# Clone the AIG network for size comparison
aig_clone = aig.clone()

# Optimize the AIG with several optimization algorithms.
# By default, each algorithm returns a *new* cleaned AIG.
aig_opt = aig
for optimization in [aig_resubstitution, sop_refactoring, aig_cut_rewriting, balancing]:
    aig_opt = optimization(aig_opt)

# Print the size of the unoptimized and optimized AIGs
print(f"Original AIG Size:  {aig_clone.size}")
print(f"Optimized AIG Size: {aig_opt.size}")

# Some algorithms offer in-place transformations for performance-oriented pipelines
for optimization in [aig_resubstitution, sop_refactoring]:
    optimization(aig, inplace=True)
aig = cleanup_dangling(aig)

🎲 Random AIG Generation

The aigverse.generators module provides reproducible random AIG generation via random_aig.

from aigverse.generators import random_aig

# One random AIG
aig = random_aig(num_pis=4, num_gates=20, seed=123)

# Python-side batch generation
dataset = [random_aig(num_pis=4, num_gates=20, seed=1000 + i) for i in range(16)]

🧱 Structured Generator Networks

The same module also provides high-level arithmetic and control generators that return complete benchmark networks.

from aigverse.generators import binary_decoder, ripple_carry_adder, multiplexer

adder = ripple_carry_adder(8)
mux = multiplexer(8)
decoder = binary_decoder(8)

print(adder.num_pis, adder.num_pos, adder.num_gates)
print(mux.num_pis, mux.num_pos, mux.num_gates)
print(decoder.num_pis, decoder.num_pos, decoder.num_gates)

✅ Equivalence Checking

Equivalence of AIGs (e.g., after optimization) can be checked using SAT-based equivalence checking.

from aigverse.algorithms import equivalence_checking

# Perform equivalence checking
equiv = equivalence_checking(aig1, aig2)

if equiv:
    print("AIGs are equivalent!")
else:
    print("AIGs are NOT equivalent!")

📄 File Format Support

You can read and write AIGs in various file formats, including (ASCII) AIGER, gate-level Verilog and PLA.

✏️ Writing

from aigverse.io import write_aiger, write_verilog, write_dot

# Write an AIG network to an AIGER file
write_aiger(aig, "example.aig")
# Write an AIG network to a Verilog file
write_verilog(aig, "example.v")
# Write an AIG network to a DOT file
write_dot(aig, "example.dot")

👓 Parsing

from aigverse.io import (
    read_aiger_into_aig,
    read_ascii_aiger_into_aig,
    read_verilog_into_aig,
    read_pla_into_aig,
)

# Read AIGER files into AIG networks
aig1 = read_aiger_into_aig("example.aig")
aig2 = read_ascii_aiger_into_aig("example.aag")
# Read a Verilog file into an AIG network
aig3 = read_verilog_into_aig("example.v")
# Read a PLA file into an AIG network
aig4 = read_pla_into_aig("example.pla")

Additionally, you can read AIGER files into sequential AIGs using read_aiger_into_sequential_aig and read_ascii_aiger_into_sequential_aig.

🥒 pickle Support

AIGs support Python's pickle protocol, allowing you to serialize and deserialize AIG objects for persistent storage or interface with data science or machine learning workflows.

import pickle

with open("aig.pkl", "wb") as f:
    pickle.dump(aig, f)

with open("aig.pkl", "rb") as f:
    unpickled_aig = pickle.load(f)

You can also pickle multiple AIGs at once by storing them in a tuple or list.

🧠 Machine Learning Integration

With the adapters extra, you can convert an AIG to a NetworkX directed graph, enabling visualization and use with graph-based ML tools:

import aigverse.adapters

G = aig.to_networkx(levels=True, fanouts=True, node_tts=True)

Graph, node, and edge attributes provide logic, level, fanout, and function information for downstream ML or visualization tasks.

For more details and examples, see the machine learning integration documentation.

🔢 Truth Tables

Small Boolean functions can be efficiently represented using truth tables. aigverse enables the creation and manipulation of truth tables by wrapping a portion of the kitty library.

🎉 Creation

from aigverse.utils import TruthTable

# Initialize a truth table with 3 variables
tt = TruthTable(3)
# Create a truth table from a hex string representing the MAJ function
tt.create_from_hex_string("e8")

🔧 Manipulation

# Flip each bit in the truth table
for i in range(tt.num_bits()):
    print(f"Flipping bit {int(tt.get_bit(i))}")
    tt.flip_bit(i)

# Print a binary string representation of the truth table
print(tt.to_binary())

# Clear the truth table
tt.clear()

# Check if the truth table is constant 0
print(tt.is_const0())

🔣 Symbolic Simulation of AIGs

from aigverse.algorithms import simulate, simulate_nodes

# Obtain the truth table of each AIG output
tts = simulate(aig)

# Print the truth tables
for i, tt in enumerate(tts):
    print(f"PO{i}: {tt.to_binary()}")

# Obtain the truth tables of each node in the AIG
n_to_tt = simulate_nodes(aig)

# Print the truth tables of each node
for node, tt in n_to_tt.items():
    print(f"Node {node}: {tt.to_binary()}")

📃 Exporting as Lists or NumPy Arrays

For machine learning applications, it is often useful to convert truth tables into standard data structures like Python lists or NumPy arrays. Since TruthTable objects are iterable, conversion is straightforward.

import numpy as np

# Export to a list
tt_list = list(tt)

# Export to NumPy arrays
tt_np_bool = np.array(tt)
tt_np_int = np.array(tt, dtype=np.int32)
tt_np_float = np.array(tt, dtype=np.float64)

🥒 pickle Support

Truth tables also support Python's pickle protocol, allowing you to serialize and deserialize them.

import pickle

with open("tt.pkl", "wb") as f:
    pickle.dump(tt, f)

with open("tt.pkl", "rb") as f:
    unpickled_tt = pickle.load(f)

🎤 Learn More

For a deeper dive into the vision and technical details behind aigverse, check out the presentation from the Free Silicon Conference (FSiC) 2025:

"aigverse: Toward machine learning-driven logic synthesis" 📄 Slides available on the FSiC wiki

This talk presents the same core infrastructure thesis: closing the software gap between high-performance synthesis tooling and Python-first ML workflows.

🙌 Contributing

Contributions are welcome! If you'd like to contribute to aigverse, please see the contribution guide. I appreciate feedback and suggestions for improving the library.

💼 Support and Consulting

aigverse is and will always be a free, open-source library. If you or your organization require dedicated support, specific new features, or integration of aigverse into your projects, professional consulting services are available. This is a great way to get the features you need while also supporting the ongoing maintenance and development of the library.

For inquiries, please reach out to @marcelwa. More information can be found in the documentation.

📜 License

aigverse is available under the MIT License.

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

aigverse-0.1.1.tar.gz (220.5 kB view details)

Uploaded Source

Built Distributions

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

aigverse-0.1.1-cp314-cp314t-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.14tWindows x86-64

aigverse-0.1.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (840.9 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

aigverse-0.1.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (800.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

aigverse-0.1.1-cp314-cp314t-macosx_11_0_arm64.whl (743.8 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

aigverse-0.1.1-cp312-abi3-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.12+Windows x86-64

aigverse-0.1.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (827.4 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

aigverse-0.1.1-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (788.9 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

aigverse-0.1.1-cp312-abi3-macosx_11_0_arm64.whl (732.9 kB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

aigverse-0.1.1-cp311-cp311-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.11Windows x86-64

aigverse-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (842.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

aigverse-0.1.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (801.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

aigverse-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (739.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

aigverse-0.1.1-cp310-cp310-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.10Windows x86-64

aigverse-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (843.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

aigverse-0.1.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (802.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

aigverse-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (740.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file aigverse-0.1.1.tar.gz.

File metadata

  • Download URL: aigverse-0.1.1.tar.gz
  • Upload date:
  • Size: 220.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aigverse-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a714fa40b692d3d515f40b776338d9ec01fcc9a4419ae68e5ed59fa4e422368c
MD5 442858fda1ed691a0b5df95be3cb825e
BLAKE2b-256 166e9a289f5fff4bcf5e103c2a8d21395eacfc5a3ce9fc06cbd631c7a77553af

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1.tar.gz:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: aigverse-0.1.1-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aigverse-0.1.1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 4e715073c401dd805300bb30b95635f30a98239c39d2609dfac7b484ec81bf79
MD5 f18056e6933c0dbf58be61647cea468b
BLAKE2b-256 6730deb3e85f1be0d358bf8d66f8142a0903eb56a76842a1b83665b6477aea9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp314-cp314t-win_amd64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aigverse-0.1.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9afb7a8d9e051b8d15386262e711521f0336cb796b5433ed22dccf0cca121f6f
MD5 19dad985645c02cd379008313da6f478
BLAKE2b-256 3c07da6c21fc8414e689f9eb8e52f5d12ca0c11ace729f3c31a4c7fa07a90cb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aigverse-0.1.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e6dbd2e8e248a72a5e9a3c996c0cbec884f00aa9098028194b1ec7ad955994fa
MD5 8f592fa14d6552f64ca4bf3f3c0979d7
BLAKE2b-256 d604d65b9a379c6a9b69d9040932cc8a7befead14c3f36bce6c4d99712b33ca0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aigverse-0.1.1-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3bc6de85cece5bcbccb5cf25ad04f90474728f9b8ec0ae959ae507d1e23bf8b9
MD5 3887f6b326b441cf33f7a7d88585c2d7
BLAKE2b-256 8157f47cb92784e1d74e17dcbf81b70807b3a2a2f6837d8fe768820f8965cc5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: aigverse-0.1.1-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aigverse-0.1.1-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 30d041824d165428ee1dbed954473dcbd274d46d3b1c20557fb54c2ca859fc83
MD5 546298c5cf9fb332d149aaae01c88512
BLAKE2b-256 f985acb7125930b4edd0529d228e8ad6c3fa78f96c06bc99328ac3f20ff3eb33

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp312-abi3-win_amd64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aigverse-0.1.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c878278e000a2a67305e1a3d633acb9ad8c0fbdd8476feeb80906e8017d24416
MD5 2b389a20d86d37f18ac8145348f71dbd
BLAKE2b-256 9ee237b5a8f58029eda77f2c529bc741aec9fcad2ae7f52452e242eef2304b7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aigverse-0.1.1-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7d1e415e475ade9f48d86461b45413e40f28f2a664792a7eb83b32071310c1c2
MD5 554f8e9da06907cf8e53fdaed003bcf9
BLAKE2b-256 2cef2e3c4f133152ba294f0bb61417093133ff608d1655e11869a8ad0843b571

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aigverse-0.1.1-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f55c63c8b822f2c39509158081acdc388749c9b8f4af577ed894c1841580eae4
MD5 301627d9ac263f801443f43cd82fba7c
BLAKE2b-256 96fdf7594f73321ce9f43b2f91a1e952beed467fe298d287eef4377660953d0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp312-abi3-macosx_11_0_arm64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: aigverse-0.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aigverse-0.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 42c5c01a53ef6eb238531f63455b1a41cc1aabff6c08eda447e4cf0c3adc6ff4
MD5 85a67d2165926ecd74f307811cd61124
BLAKE2b-256 e67caad70d0f7f742e1a89b034ffe6ec5a3170d3ead7df45da48839a9bb61408

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp311-cp311-win_amd64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aigverse-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 81d1085293ddf84d4bdff130d8bf5ba56843a46e2e7c8ff1894bffa12f6b1b36
MD5 629e3aef2bbbe35d9f1f9492eaecbcab
BLAKE2b-256 6ef27b4ba6db2087c816039a597ed9ce808dcf5e7d086b4279b87d43278e5c5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aigverse-0.1.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d23242b23950e6f02f55036509865421ae496031d685c704904e2f4d572a1bd9
MD5 a3eb12305f5b2dec7cee7f665f4b8ded
BLAKE2b-256 73b9ca4f9ee918860dcd860f59d4104462fd386ad5f3377ba2e5c9df474cd404

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aigverse-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 225053fb5d33078ea4614fe5c871b32179eb3bd1177ab777ad5d6c4f1982b116
MD5 e555736db21e3236e61f2b0c9b460e07
BLAKE2b-256 79bc86a33cf0b1f50e8b5efb399aef3abab97d20b9851d805fff5960e6447e31

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: aigverse-0.1.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for aigverse-0.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1e26d33651af8e07edc44a63ce0a36a78c30623ac8e21946cf969a6f1d9229e5
MD5 43cfe6e41181e84a3797386dcbea3660
BLAKE2b-256 d19ed489a3a51d5ea0b6d57d79f1add3546253d8f19d4846afa217f30b526fb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp310-cp310-win_amd64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for aigverse-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ff48d065988f0f42753642a89e8decdb65c170d33bc4dafb2701167d68c01664
MD5 0b33ecb471766ddc44dc26d64d458036
BLAKE2b-256 a3a81328b519c25b423227b5ebec21cbd734e2a85eb450674678d9c4ba573196

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for aigverse-0.1.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3ece3dce0673c66b4afef58aa446953a3eeb17eefe573387bf68df0159f97f5c
MD5 dbeacfe65500b17cdf112f53d0f1f397
BLAKE2b-256 e029b9de9559cb33bb18b72af8538a5224e947aac5defa07bdce7028c31d0c78

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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

File details

Details for the file aigverse-0.1.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for aigverse-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 972193f2ec89d2351ae3fa3d5e7f4b030a26394424e125daf60a9ad47cec8215
MD5 02169d28f7130d604e9470d5054d905b
BLAKE2b-256 c86a9cba0681eb28e7cefd7479510b18a8d059750e11c4ae108cdb6122825db0

See more details on using hashes here.

Provenance

The following attestation bundles were made for aigverse-0.1.1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: aigverse-pypi-deployment.yml on marcelwa/aigverse

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