eqbool
Testing boolean expressions for equivalence.
eqbool is a C++ and Python rewrite of code originally developed as part of a symbolic gate-level Z80 simulator in pure Python, where increasingly complex Boolean expressions representing gate states need to be repeatedly checked for equivalence. Z3 and several other existing libraries were tried and quickly proven too slow for such use, so a custom solution had to be developed.
The library is specifically designed to reduce overall equivalence-check times by simplifying expressions in ways that never increase the diversity of SAT clauses.
Where equivalence cannot be trivially established via simplifications, eqbool uses the CaDiCaL solver. As the workload is very many small solves rather than a few hard ones, the bundled CaDiCaL version is chosen by measuring on traces of real runs, and is not necessarily the latest release.
#include "eqbool.h"
int main() {
eqbool::term_set<std::string> terms;
eqbool::eqbool_context eqbools(terms);
eqbool::order_context orders(eqbools);
using eqbool::eqbool;
eqbool eqfalse = eqbools.get_false();
eqbool eqtrue = eqbools.get_true();
// Constants are evaluated and eliminated right away.
assert((eqfalse | ~eqfalse) == eqtrue);
// Expressions get simplified on construction.
eqbool a = eqbools.get(terms.add("a"));
eqbool b = eqbools.get(terms.add("b"));
assert((~b | ~eqbools.ifelse(a, b, ~b)) == (~a | ~b));
// Identical, but differently spelled expressions are uniquified.
eqbool c = eqbools.get(terms.add("c"));
assert(((a | b) | c) == (a | (b | c)));
// Speed is king, so simplifications that require deep traversals,
// restructuring of existing nodes and increasing the diversity of
// SAT clauses are intentionally omitted.
eqbool d = eqbools.get(terms.add("d"));
eqbool e1 = a & ((b | c) | (~a | ((~b | (d | ~c)) & (c | ~b))));
eqbool e2 = a;
assert(!eqbools.is_trivially_equiv(e1, e2));
// The equivalence can still be established using SAT.
assert(eqbools.is_equiv(e1, e2));
// From there on, the expressions are considered identical.
assert(eqbools.is_trivially_equiv(e1, e2));
// They then can be propagated to their simplest known forms.
assert(e1 != e2);
e1.propagate();
e2.propagate();
assert(e1 == e2);
// Order terms are ordinary terms stating that one of two
// given values comes before the other; the opposite order
// is the negation of the same term.
eqbool a_b = eqbools.get(terms.add("a<b"));
eqbool b_c = eqbools.get(terms.add("b<c"));
eqbool a_c = eqbools.get(terms.add("a<c"));
orders.register_order(a_b, terms.add("a"), terms.add("b"));
orders.register_order(b_c, terms.add("b"), terms.add("c"));
orders.register_order(a_c, terms.add("a"), terms.add("c"));
// Orderings whose terms chain into a cycle are impossible.
assert(orders.is_never(a_b & b_c & ~a_c));
assert(orders.is_possible(a_b & b_c));
// Under consistent orders, spelling out the ordering
// implied by transitivity changes nothing...
assert(orders.is_equiv(a_b & b_c, a_b & b_c & a_c));
// ...but as plain propositions the two expressions differ,
// and the order context never confuses the two views.
assert(!eqbools.is_equiv(a_b & b_c, a_b & b_c & a_c));
}
In Python
pip install eqbool
import eqbool
def main():
# Undefined Bool objects have no associated value or context.
assert eqbool.Bool().is_undef
ctx = eqbool.Context()
assert ctx.false | ~ctx.false == ctx.true
# Terms can be any hashable objects.
a = ctx.get('a')
b = ctx.get('b')
e = ~b | ~ctx.ifelse(a, b, ~b)
assert e == ~a | ~b
# Bool values can be verbalised as usual.
print(e)
c = ctx.get('c')
assert (a | b) | c == a | (b | c)
# In the Python API, all values get propagated automatically, so
# simple equality can be used to test for trivial equivalence.
d = ctx.get('d')
e1 = a & ((b | c) | (~a | ((~b | (d | ~c)) & (c | ~b))))
e2 = a
assert e1 != e2
assert ctx.is_equiv(e1, e2)
# Bool objects compare by identity, for speed; established
# equivalences are followed by the underlying node ids.
assert e1 != e2
assert e1.id == e2.id
# Order terms are ordinary terms stating that one of two
# given values comes before the other; the opposite order is
# the negation of the same term.
orders = eqbool.OrderContext(ctx)
a_b, b_c, a_c = ctx.get('a<b'), ctx.get('b<c'), ctx.get('a<c')
orders.register_order(a_b, 'a', 'b')
orders.register_order(b_c, 'b', 'c')
orders.register_order(a_c, 'a', 'c')
# Orderings whose terms chain into a cycle are impossible.
assert orders.is_never(a_b & b_c & ~a_c)
assert orders.is_possible(a_b & b_c)
# Under consistent orders, spelling out the ordering implied
# by transitivity changes nothing...
assert orders.is_equiv(a_b & b_c, a_b & b_c & a_c)
# ...but as plain propositions the two expressions differ,
# and the order context never confuses the two views.
assert not ctx.is_equiv(a_b & b_c, a_b & b_c & a_c)
Metadata
Release files for eqbool 0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| eqbool-0.5.tar.gz | 337.6 kB | With provenance | Details for eqbool-0.5.tar.gz |
Built distributions (wheels)
Total release size: 197.7 MB
Release files / eqbool-0.5.tar.gz
| Download URL | eqbool-0.5.tar.gz |
|---|---|
| Size | 337.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
97fc89d8d76916e2de1845c9128e527d67856795190ca4ddff1eec90c3eabb4c
|
|
BLAKE2b-256 checksum How to use checksums |
8918c4f951c23555f3df7836c7154f4d54095e4b8768e3e92b688b447e973f00
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp313-cp313-musllinux_1_2_x86_64.whl
| Download URL | eqbool-0.5-cp313-cp313-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
80c65482133b56d86fd5cc13fa368aa10ebef0d14972ab70356dca88126b2c9f
|
|
BLAKE2b-256 checksum How to use checksums |
322b4543479d24d1fffe26be9eb6f02587e025f7eba04be9f7547ce96f532e01
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp313-cp313-musllinux_1_2_i686.whl
| Download URL | eqbool-0.5-cp313-cp313-musllinux_1_2_i686.whl |
|---|---|
| Size | 12.9 MB |
| Tags | CPython 3.13 Linux musl 1.2+ x86-32 |
|
SHA-256 checksum How to use checksums |
d6fd6d0b584cc179a72f974757e24d4eb1f8ae2d0d4d3157ad1366d415fc2efc
|
|
BLAKE2b-256 checksum How to use checksums |
6d8710e58185ff3c2deb334d96f751dea6f467d3be4d68f0bd37705e3a788d56
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | eqbool-0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 11.9 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
4d96b9f6e407a3bdd7dd6c29be838870d6ca449e600edd462f7f2491815059f2
|
|
BLAKE2b-256 checksum How to use checksums |
87af359c7b0428bd5c4abcad871f7ab71c53d127560aa77eb1b83b25ce4c6be3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | eqbool-0.5-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 11.8 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-32 |
|
SHA-256 checksum How to use checksums |
27896f3fe4c55b967272e74b24615fc80b9c84284722e5ab119b3de8c78316ec
|
|
BLAKE2b-256 checksum How to use checksums |
098c1d200d10930a8f5d9c1fa3549c5829d580e4b8c4f67f5a394cb78fd47d67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | eqbool-0.5-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
019cca5487397e7820f9a7d8b5355c2e58c2f893aecf7abb488a49d668a19273
|
|
BLAKE2b-256 checksum How to use checksums |
713e2eb92d490578ac8b954aebb6f14c7c88f4b84dcd3480c0c3af2c797899ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp312-cp312-musllinux_1_2_i686.whl
| Download URL | eqbool-0.5-cp312-cp312-musllinux_1_2_i686.whl |
|---|---|
| Size | 12.9 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-32 |
|
SHA-256 checksum How to use checksums |
2379d458792e9a6d7d365bd671a1d2c96c21058821597e3a81cf338cd80c482b
|
|
BLAKE2b-256 checksum How to use checksums |
c18f5ee101b08796f5ef9a911be629249e15e24084df3246c0b35135a926fb98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | eqbool-0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 11.9 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
4af1c18f3dd786e06b11305d86ea6ee79d115b6d59ac57b3a722f4ef2ebf0787
|
|
BLAKE2b-256 checksum How to use checksums |
d93bc7b7c83382a5e13ffb36615ac5b687e75922675bbc41b7e01ff4908a2ffd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | eqbool-0.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 11.8 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-32 |
|
SHA-256 checksum How to use checksums |
e81eab93e6aeafa10f4bb65308d442811535e8337a7aa0415bc610e05c7e5b8d
|
|
BLAKE2b-256 checksum How to use checksums |
bfb76be0ff9cb7105d3bfdf8c4795b26e93e9f35e05d54a5470d72803eae9857
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | eqbool-0.5-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
98bab600f2eb21bf758da20b2b46c90a901917a7d0f3bc89842d1bf1eee6c883
|
|
BLAKE2b-256 checksum How to use checksums |
4bb4ea5760f1bb72f8d8c368306ef154360a61aabdb86c8bf1590c5ec32ef84b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp311-cp311-musllinux_1_2_i686.whl
| Download URL | eqbool-0.5-cp311-cp311-musllinux_1_2_i686.whl |
|---|---|
| Size | 12.9 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-32 |
|
SHA-256 checksum How to use checksums |
23990566bc2a6683c8bdc49f2e707ca1f03f699f4bb6b820c558d220017874c6
|
|
BLAKE2b-256 checksum How to use checksums |
0f5474e5c4d8f4597c179746b833bc0f9753814141bdc87ae7c6cb2b343e8bd4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | eqbool-0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 11.9 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
fbbf21f8acaa561ab28cc854c2ef1c7d26c8b14efdf72c183c918aa22dc37970
|
|
BLAKE2b-256 checksum How to use checksums |
fd76793beb337f21537cf546433c4bb8a7b9ca7a4899ad42c83dda9477e824db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | eqbool-0.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 11.8 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-32 |
|
SHA-256 checksum How to use checksums |
da4ef4e968ff988bb1c0855104cf2d0588cac589229788cfc89b61c20882d853
|
|
BLAKE2b-256 checksum How to use checksums |
11b9e0269daf9674cf16cbfd731d4737a72db3e700c91548e901cb8962aca30c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | eqbool-0.5-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 12.8 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
f173986bd51c3903282116efa66189d77de0f3bbee961b096e5e29c110730a73
|
|
BLAKE2b-256 checksum How to use checksums |
e9490e45e0d5ea0028d95910fa21035114c5b34ca51ebb4d8d425cac7bfcd3fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp310-cp310-musllinux_1_2_i686.whl
| Download URL | eqbool-0.5-cp310-cp310-musllinux_1_2_i686.whl |
|---|---|
| Size | 12.9 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-32 |
|
SHA-256 checksum How to use checksums |
181f7d4523c0588983dbfb9b8e056f9b3e3c4c6a0ef869a1b17e0bfd7054712e
|
|
BLAKE2b-256 checksum How to use checksums |
ba1f94f28c0fc94192d49fe988a4eec793118bce98413ac1a124cfb3186f81fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | eqbool-0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 11.9 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
a73cd065ab68226b9995a373263590685c164ed99104759654eca08afe0abf48
|
|
BLAKE2b-256 checksum How to use checksums |
8b650084e35afab60aae0908cc4d37a6260d70438f9a4acbe338ace971185b1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / eqbool-0.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | eqbool-0.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 11.8 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-32 |
|
SHA-256 checksum How to use checksums |
87ab3b24956c8c019b1b87930ef4dfbcb6a00608de9a8238ac4581bc01a8488f
|
|
BLAKE2b-256 checksum How to use checksums |
889fd5ce204c6976424b8b22b6e81c95796dcb5101d4c906ae34bb55dafe65c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logSecurity for eqbool 0.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 17 files in this release have been uploaded with provenance metadata.
Attestation for eqbool-0.5.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.