Skip to main content

integer linear algebra using mutable sublattices of Z^n

Project description

mutable_lattice is a Python package that implements fast membership testing and mutation for sublattices of an integral lattice Z^n, with miscellaneous other integer linear algebra features.

Installation

Install this package with python -m pip install mutable_lattice.

Run the tests with python -m mutable_lattice.tests.

Demo

The following constructs a sublattice of Z^3, adds some vectors to it, then tests which vectors are in the integer span of the previously added vectors.

>>> from mutable_lattice import Vector, Lattice
>>> L = Lattice(3)
>>> L.add_vector(Vector([2, 2, 2]))
>>> L.add_vector(Vector([2, 3, 3]))
>>> L.get_basis()
[Vector([2, 0, 0]), Vector([0, 1, 1])]
>>> Vector([-4, 7, 7]) in L
True
>>> Vector([3, 0, 0]) in L
False
>>> L.add_vector(Vector([3, 3, 3]))
>>> L.get_basis()
[Vector([1, 0, 0]), Vector([0, 1, 1])]
>>> Vector([1, 0, 0]) in L
True
>>> L.add_vector(Vector([1, 0, 1]))
>>> L.get_basis()
[Vector([1, 0, 0]), Vector([0, 1, 0]), Vector([0, 0, 1])]
>>> Vector([314, -159265, 3589793238462643383279]) in L
True

This behavior was originally implemented to help construct small projective resolutions for computing integral homology of finite monoids, but is useful for integer linear algebra in general.

There are more general integer linear algebra libraries included in SageMath (including PARI, GAP, and IML), and some of these may be preferred, especially when matrix entries include large integers, but this mutable_lattice package specializes in fast add_vector and __contains__ operations, and is especially fast with machine-word-sized integers.

Features

mutable_lattice exposes two types: Vector and Lattice.

Efficient Vectors of integers

The Vector class is implemented in C, and stores a sequence of integers, packed efficiently using tagged pointers to distinguish between machine-sized integers and pointers to Python int objects. This optimizes performance for integers that fit in one machine word (up to around 2^30 or 2^62), while also seamlessly intermixing integers of arbitrary size.

Vector arithmetic (addition, subtraction, negation, and integer scaling) behaves conventionally:

>>> v = Vector([10, 20, 30])
>>> w = Vector([7, 7, 7])
>>> v + w
Vector([17, 27, 37])
>>> v - w
Vector([3, 13, 23])
>>> 10*v
Vector([100, 200, 300])
>>> (-2) * v
Vector([-20, -40, -60])
>>> -w
Vector([-7, -7, -7])
>>> v * 10**20
Vector([1000000000000000000000, 2000000000000000000000, 3000000000000000000000])

One can access entries of a vector with the __getitem__, tolist, and __iter__ methods:

>>> v = Vector([10, 20, 30])
>>> v[0]
10
>>> v[-1]
30
>>> v.tolist()
[10, 20, 30]
>>> [-x for x in v]
[-10, -20, -30]
>>> len(v)
3

Vector are mutable and have __iadd__, __isub__, __imul__, and __setitem__ methods:

>>> v = Vector([1, 1, 1, 1, 1])
>>> v[1] = 4
>>> v
Vector([1, 4, 1, 1, 1])
>>> v += Vector([1, 1, 1, 1, 1])
>>> v
Vector([2, 5, 2, 2, 2])
>>> v *= 2
>>> v
Vector([4, 10, 4, 4, 4])
>>> v -= Vector([4, 4, 4, 4, 4])
>>> v
Vector([0, 6, 0, 0, 0])

Vector.zero(n) is equivalent to Vector([0]*n).

Efficient Lattices of integer vectors: Overview

The Lattice class by default stores a basis of vectors in Hermite normal form (HNF), i.e., the integer version of reduced row echelon form.

The Lattice.get_basis() method returns a list of basis Vectors for the Lattice. The Lattice.__str__() method prints this basis as the rows of a matrix. Each time a new vector is added via Lattice.add_vector(v), HNF is restored.

>>> L = Lattice(5)
>>> print(L)
<zero Lattice in Z^5>

>>> L.add_vector(Vector([1, 1, 1, 1, 1]))
>>> L.get_basis()
[Vector([1, 1, 1, 1, 1])]
>>> print(L)
[1 1 1 1 1]

>>> L.add_vector(Vector([10, 0, 10, 0, 10]))
>>> L.get_basis()
[Vector([1, 1, 1, 1, 1]), Vector([0, 10, 0, 10, 0])]
>>> print(L)
[ 1  1  1  1  1]
[ 0 10  0 10  0]

>>> L.add_vector(Vector([1, 0, 0, 0, 0]))
>>> L.get_basis()
[Vector([1, 0, 0, 0, 0]), Vector([0, 1, 1, 1, 1]), Vector([0, 0, 10, 0, 10])]
>>> print(L)
[ 1  0  0  0  0]
[ 0  1  1  1  1]
[ 0  0 10  0 10]

The Lattice.rank attribute gives the number of vectors currently stored in a Lattice, and the Lattice.ambient_dimension attribute gives the length of each vector. So L.__str__() is displaying a matrix of height L.rank and width L.ambient_dimension:

>>> print(L) # Continuing from above
[ 1  0  0  0  0]
[ 0  1  1  1  1]
[ 0  0 10  0 10]
>>> L.rank
3
>>> L.ambient_dimension
5

The Lattice.__contains__(v) method identifies whether the argument v is the Lattice, i.e., whether v is in the integer span of the stored basis:

>>> print(L) # Continuing from above
[ 1  0  0  0  0]
[ 0  1  1  1  1]
[ 0  0 10  0 10]
>>> Vector([777, 1, 11,  1, 11]) in L
True
>>> Vector([0, 0, 10, 10, 10]) in L
False

To reconstruct the linear combination of the Lattice basis that produces the given vector, use the Lattice.coefficients_of(v) method. For the inverse operation, use the Lattice.linear_combination(w) method to evaluate a linear combination of the Lattice basis given a Vector of coefficients w:

>>> print(L) # Continuing from above
[ 1  0  0  0  0]
[ 0  1  1  1  1]
[ 0  0 10  0 10]
>>> L.coefficients_of(Vector([0, 0, 10, 10, 10]))
Traceback (most recent call last):
    ...
ValueError: Vector not present in Lattice
>>> L.coefficients_of(Vector([777, 1, 11, 1, 11]))
Vector([777, 1, 1])
>>> L.linear_combination(Vector([777, 1, 1]))
Vector([777, 1, 11, 1, 11])

Lattice.__add__ and Lattice.__iadd__ methods allow adding two lattices, so if v is a vector and L1, L2 are Lattices of the same ambient_dimension, then v in (L1 + L2) if and only if we can write v = v1 + v2 where v1 in L1 and v2 in L2:

>>> L1 = Lattice(4)
>>> L1.add_vector(Vector([2, 0, 0, 0]))
>>> L1.add_vector(Vector([0, 2, 0, 0]))
>>> L1.add_vector(Vector([0, 0, 2, 0]))
>>> L2 = Lattice(4)
>>> L2.add_vector(Vector([0, 4, 0, 0]))
>>> L2.add_vector(Vector([0, 0, 4, 0]))
>>> L2.add_vector(Vector([0, 0, 0, 4]))
>>> print(L1 + L2)
[2 0 0 0]
[0 2 0 0]
[0 0 2 0]
[0 0 0 4]

Comparison methods such as L1 < L2, L1 <= L2, L1 == L2 are also supported for detecting when one lattice is a subset of another.

Lattice(n, data=..., /, *, maxrank=-1, HNF_policy=1)

The Lattice(n, data) constructor creates a sublattice of Z^n and accepts an optional second positional data argument which must be a list of any length, of Vectors or lists of length n, which are added to the lattice as if by calling add_vector(v) or add_vector(Vector(v)) for each v in data.

For memory locality and to avoid reallocations, Lattice objects are allocated in one contiguous memory block with enough room for all n*n integer entries. If n is large, this may be needlessly memory intensive. If the optional keyword-only integer argument maxrank is provided then only enough memory is allocated for n*maxrank integer entries, potentially saving memory. If maxrank > n or if maxrank == -1 then maxrank is replaced by n.

For more uniformly fast performance in more situations, by default all Lattices are stored as a basis in HNF form. If a Lattice is constructed instead with HNF_policy=0 then the basis of the Lattice is stored in some row echelon form, but the pivots are not necessarily positive, and entries of the matrix above pivots are not normalized to HNF. This lazier policy may be faster if your basis is particularly sparse or small (say n <= 10 but always be sure to measure for your particular application). If you have a Lattice not stored in HNF then calling L.HNFify() will perform row operations to convert to HNF.

The full lattice that contains every vector in Z^n can be constructed using the classmethod Lattice.full(n). L.is_full() returns whether L == Lattice.full(L.ambient_dimension).

SNF invariants

Given a Lattice L in Z^n, some (integer-)invertible n-by-n integer matrix takes L to a Lattice with a basis [Vector([d0, 0, 0, ...]), Vector([0, d1, 0, ...]), Vector([0, 0, d2, ...]), ...] in which the ith Vector is positive in its ith entry and zero elsewhere. The matrix with these rows (and an additional and divisibility constraint) is the Smith normal form (SNF) of the matrix with the original basis of L for rows. The Lattice.nonzero_invariants() method returns a list [d0, d1, d2, ...] of these diagonal entries of the Smith normal form. The length of L.nonzero_invariants() is always L.rank. A related method L.invariants() returns the same list with zeros appended to the end until the length of the result is L.ambient_dimension.

>>> L = Lattice(4)
>>> L.add_vector(Vector([10, 10, 10, 10]))
>>> L.add_vector(Vector([0, 20, 20, 20]))
>>> L.add_vector(Vector([0, 0, 30, 30]))
>>> L.nonzero_invariants()
[10, 10, 60]
>>> L.invariants()
[10, 10, 60, 0]

Note that the quotient group Z^n/L is isomorphic to the direct sum of cyclic groups Z/dZ for d in L.invariants(), where Z/0Z = Z.

The homology/cohomology of a chain complex of integer matrices between free abelian groups can be computed using this method:

>>> # Chain complex from a Klein bottle Delta-complex
>>> cell_counts = {-1: 0, 0: 1, 1: 2, 2: 1, 3: 0}
>>> matrices = {
...     0: [Vector([])],
...     1: [Vector([0]), Vector([0])],
...     2: [Vector([2, 0])],
...     3: [],
... }
>>> invariant_lists = {
...    i: Lattice(cell_counts[i-1], m).nonzero_invariants()
...    for i, m in matrices.items()
... }
>>> for i in (0, 1, 2):
...     free_rank = cell_counts[i] - len(invariant_lists[i]) - len(invariant_lists[i+1])
...     torsion = [d for d in invariant_lists[i+1] if d != 1]
...     print(f"H_{i} =", torsion + [0] * free_rank)
H_0 = [0]
H_1 = [2, 0]
H_2 = []
>>> for i in (0, 1, 2):
...     free_rank = cell_counts[i] - len(invariant_lists[i]) - len(invariant_lists[i+1])
...     torsion = [d for d in invariant_lists[i] if d != 1]
...     print(f"H^{i} =", torsion + [0] * free_rank)
H^0 = [0]
H^1 = [0]
H^2 = [2]

Kernel computations

Given a list of k vectors, the relations_among([v1, ..., vk]) function constructs the Lattice of linear dependencies among these vectors.

>>> from mutable_lattice import relations_among
>>> L = relations_among([Vector([1, 2]), Vector([-1, 0]), Vector([0, 1]), Vector([0, 0])])
>>> print(L)
[ 1  1 -2  0]
[ 0  0  0  1]

Thinking of the provided list [v1, ..., vk] as a matrix M of row vectors, the result of relations_among() is the Lattice of vectors w such that wM=0, i.e, the left-kernel of M.

To instead compute the classic right-kernel that solves Mv=0, first the transpose the matrix with the transpose(n, [v1, ..., vk]) function (which requires each Vector in the list to have length n):

>>> from mutable_lattice import transpose
>>> M = [Vector([1, -1, 0, 0]), Vector([2, 0, 1, 0])]
>>> print(relations_among(M))
<zero Lattice in Z^2>
>>> transpose(4, M)
[Vector([1, 2]), Vector([-1, 0]), Vector([0, 1]), Vector([0, 0])]
>>> print(relations_among(transpose(4, M)))
[ 1  1 -2  0]
[ 0  0  0  1]

v.shuffled_by_action(a, result_size=..., /)

It is occasionally useful to shuffle around the entries of a Vector by a permutation:

>>> perm = Vector([0, 2, 4, 1, 3])
>>> Vector([0, 10, 20, 30, 40]).shuffled_by_action(perm)
Vector([0, 30, 10, 40, 20])

Note that each entry perm[i] above specifies where the ith entry moves to after the shuffle.

More generally, we can shuffle the entries of the Vector Using some function from range(len(v)) to range(result_size), represented as a "action" Vector. If result_size is not provided, it defaults to len(v). If the has duplicate entries a[j1] == a[j2] == ..., then v.shuffled_by_action(a)[a[j1]] will be their sum a[j1] + a[j2] + ..., so each action Vector specifies a linear operation.

>>> Vector([0, 10, 20, 30, 40]).shuffled_by_action(Vector([0, 1, 0, 1, 0]))
Vector([60, 40, 0, 0, 0])
>>> Vector([0, 10, 20, 30, 40]).shuffled_by_action(Vector([0, 1, 0, 1, 0]), 2)
Vector([60, 40])

This package does not provide a built-in way of applying more general linear operations on Vectors via matrices, nor a way to multiply matrices, but these can be emulated using appropriate Vector addition and scaling.

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

mutable_lattice-0.1.1.tar.gz (53.8 kB view details)

Uploaded Source

Built Distributions

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

mutable_lattice-0.1.1-cp314-cp314t-win_arm64.whl (57.4 kB view details)

Uploaded CPython 3.14tWindows ARM64

mutable_lattice-0.1.1-cp314-cp314t-win_amd64.whl (62.0 kB view details)

Uploaded CPython 3.14tWindows x86-64

mutable_lattice-0.1.1-cp314-cp314t-win32.whl (57.3 kB view details)

Uploaded CPython 3.14tWindows x86

mutable_lattice-0.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl (218.9 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

mutable_lattice-0.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl (220.3 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

mutable_lattice-0.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (223.8 kB view details)

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

mutable_lattice-0.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (230.5 kB view details)

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

mutable_lattice-0.1.1-cp314-cp314t-macosx_11_0_arm64.whl (58.0 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

mutable_lattice-0.1.1-cp314-cp314t-macosx_10_13_x86_64.whl (59.2 kB view details)

Uploaded CPython 3.14tmacOS 10.13+ x86-64

mutable_lattice-0.1.1-cp314-cp314-win_arm64.whl (56.1 kB view details)

Uploaded CPython 3.14Windows ARM64

mutable_lattice-0.1.1-cp314-cp314-win_amd64.whl (58.2 kB view details)

Uploaded CPython 3.14Windows x86-64

mutable_lattice-0.1.1-cp314-cp314-win32.whl (53.9 kB view details)

Uploaded CPython 3.14Windows x86

mutable_lattice-0.1.1-cp314-cp314-musllinux_1_2_x86_64.whl (172.3 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

mutable_lattice-0.1.1-cp314-cp314-musllinux_1_2_aarch64.whl (169.5 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

mutable_lattice-0.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (174.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

mutable_lattice-0.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (174.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

mutable_lattice-0.1.1-cp314-cp314-macosx_11_0_arm64.whl (56.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

mutable_lattice-0.1.1-cp314-cp314-macosx_10_13_x86_64.whl (57.8 kB view details)

Uploaded CPython 3.14macOS 10.13+ x86-64

mutable_lattice-0.1.1-cp313-cp313-win_arm64.whl (54.9 kB view details)

Uploaded CPython 3.13Windows ARM64

mutable_lattice-0.1.1-cp313-cp313-win_amd64.whl (57.6 kB view details)

Uploaded CPython 3.13Windows x86-64

mutable_lattice-0.1.1-cp313-cp313-win32.whl (53.2 kB view details)

Uploaded CPython 3.13Windows x86

mutable_lattice-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl (173.2 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

mutable_lattice-0.1.1-cp313-cp313-musllinux_1_2_aarch64.whl (169.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

mutable_lattice-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (175.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

mutable_lattice-0.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (174.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

mutable_lattice-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (55.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

mutable_lattice-0.1.1-cp313-cp313-macosx_10_13_x86_64.whl (57.9 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

mutable_lattice-0.1.1-cp312-cp312-win_arm64.whl (54.9 kB view details)

Uploaded CPython 3.12Windows ARM64

mutable_lattice-0.1.1-cp312-cp312-win_amd64.whl (57.6 kB view details)

Uploaded CPython 3.12Windows x86-64

mutable_lattice-0.1.1-cp312-cp312-win32.whl (53.2 kB view details)

Uploaded CPython 3.12Windows x86

mutable_lattice-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl (173.2 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

mutable_lattice-0.1.1-cp312-cp312-musllinux_1_2_aarch64.whl (169.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

mutable_lattice-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (175.6 kB view details)

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

mutable_lattice-0.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (174.2 kB view details)

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

mutable_lattice-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (55.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

mutable_lattice-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl (57.9 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

mutable_lattice-0.1.1-cp311-cp311-win_arm64.whl (54.5 kB view details)

Uploaded CPython 3.11Windows ARM64

mutable_lattice-0.1.1-cp311-cp311-win_amd64.whl (57.2 kB view details)

Uploaded CPython 3.11Windows x86-64

mutable_lattice-0.1.1-cp311-cp311-win32.whl (53.0 kB view details)

Uploaded CPython 3.11Windows x86

mutable_lattice-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl (166.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

mutable_lattice-0.1.1-cp311-cp311-musllinux_1_2_aarch64.whl (164.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

mutable_lattice-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (168.2 kB view details)

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

mutable_lattice-0.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (169.3 kB view details)

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

mutable_lattice-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (55.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mutable_lattice-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl (57.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

mutable_lattice-0.1.1-cp310-cp310-win_arm64.whl (54.5 kB view details)

Uploaded CPython 3.10Windows ARM64

mutable_lattice-0.1.1-cp310-cp310-win_amd64.whl (57.2 kB view details)

Uploaded CPython 3.10Windows x86-64

mutable_lattice-0.1.1-cp310-cp310-win32.whl (53.0 kB view details)

Uploaded CPython 3.10Windows x86

mutable_lattice-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl (159.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

mutable_lattice-0.1.1-cp310-cp310-musllinux_1_2_aarch64.whl (159.5 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

mutable_lattice-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (161.2 kB view details)

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

mutable_lattice-0.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (162.1 kB view details)

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

mutable_lattice-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (55.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mutable_lattice-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl (57.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for mutable_lattice-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7a7b6359f1254ee7596a5bf020e682bfe440cc26e0d41c565b9aa53d9d47199e
MD5 251de6c02854d954941e6ff1c7c57b5d
BLAKE2b-256 4ead8bd758657131c1ff1e19fa1d2af032d8ece93eb4348c72dd7a1315ce00ed

See more details on using hashes here.

Provenance

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

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314t-win_arm64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 2f42accd0fd6506c283a1872dc214c0692c7503c36386b9c61bf05ed61960aad
MD5 913a50a133957db64678da0f7731784d
BLAKE2b-256 82fc99b5c5b2941f163b8b5cd90e7f3facf47ca7ad200ed636f660b5880cd58e

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314t-win_arm64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

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

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 ec13b644fea67793091dd136c49784fb02dcec65f61898d26c768b963c3f8840
MD5 9fd9b879c4f030dd6038a870efcdaef4
BLAKE2b-256 0ce2d1a527076a4a3424e863fab32c3307ba3bdc301c3d21bf68c8492fcd7492

See more details on using hashes here.

Provenance

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

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314t-win32.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 71d13831a9b423f1830fd717619abdba79e23802f0793c2f9f68282c0460ed1e
MD5 d0a188e845c5f803544ada0c0c4c44a0
BLAKE2b-256 4b1fe8aa860af012e4855a9b0b2507d3d7386f6776c623ee6d29ad11de346a7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314t-win32.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 be8abf89a9444995cdb9dc45d799e2229ff3dfcbfbf8fa6dc2d68698daf50ce2
MD5 2cc23b1ef6caf6176ad39ff8389ccd6a
BLAKE2b-256 42dcd2a76755ebaa502dfe495221f3e0ce3662059add5fe32cbba941ca0b41f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ea2a14cad737845a5a7586c9370865b7bbb85c01bf61ac87a4776ee84b5bcc5e
MD5 a0666aec607337fd4605ac114b52d6b5
BLAKE2b-256 60dcf7bdee8644bcbf7fae83aa1b1f6b293b101e8729587bf1a3c2ab4de71e1a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 be43b4e38d2c797d13595f0d7b62a5354b5933b50c032215feb14468de3cb850
MD5 af79306caf9888492021f19ad34842ca
BLAKE2b-256 78718d6206f7128e17ce207cbba905a0f83e0102660fa5b42d983481ce0c5fef

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f5711c403a7ecaa95ecbbdce919a3cf8c2bd61c8ff78a9d0479fd79fd10238c7
MD5 801a32f48dfeb22ddfaab51217a342c7
BLAKE2b-256 c6c88b6dc7bb3ffd7b418457aa96ee4890ca259c4ab453d27c50acd715a6b726

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

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

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e8aa8fe7a956eefe6db37f5ee43fcdd74893310ed9a1b9bc724f211d11b290ba
MD5 6267a0a94063490c20f78af72cd839fc
BLAKE2b-256 f9e7b961f7bfaf965d77724bd5e7f7bba31de4913d8692ec58098fe3120d7f8a

See more details on using hashes here.

Provenance

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

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314t-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314t-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 170bd0e4377d1b559f65fec38f5d0c1a3df89bf5ea09a24b07da98a49245f5d3
MD5 65bd90f80954bec33437894bed67aba4
BLAKE2b-256 c5686fc280c88fd89a1f96c7ced9db32967301220b9f31055d2cb9f7cf8063d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314t-macosx_10_13_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314-win_arm64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 ee7385af9946bddde1b204ce05e7f591a3a6063ed3612d6650985e30c8a242c3
MD5 cd361f89520622eb8d72c789215cccb1
BLAKE2b-256 8c7f5fef783e031312aacd328e7fb36b6851cea0f6e9403d9d8cc57d466ab2af

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314-win_arm64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 891a58f8ee0a4cc029f5a1f485a71768c8dc537b7df05f06c12e21acffb69fd4
MD5 aed529a1d9a00f0064a6911eed5853af
BLAKE2b-256 7dc78908e095ed52d640343c3628f13c9d0b63e60f1fe08fe80ba576bea3dd0c

See more details on using hashes here.

Provenance

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

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314-win32.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 352005894cb2478967e4e7b0429a665368e16494608243b710be0fbc4d117ce0
MD5 150f07058dc3e83d86b3ec9dbaf56d4c
BLAKE2b-256 3f2c8b3dae625aa37de7ce19bb87fdb51666f02a6593ce566a0e4702d0fc9f33

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314-win32.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5a7de39d1e12b8c1895e3567240acdf334b26fdb28275bd78b2412a79a63956d
MD5 574050ce840571129b70b4ec3f2c8840
BLAKE2b-256 feeb663f0088b2efa0757d1251638a453dbc5e5048c4c28463855d129935e3e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3e07ce2f77babf02aa0b0c1ad598f67df6d163b21b851670dad6a9798c3d5c98
MD5 dab7d23b1e1de9c20f163364f6ffe953
BLAKE2b-256 3c332f6cb7fdf05cbebb973634bab82cb7791953e1e3bd782fad9e8b7f11d100

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 acfcc526688e8137841010899c1612cd1bdf5ca24809c02de96c44265cbfe24e
MD5 68bcf0e4604a7704a9b24bda6f0c1580
BLAKE2b-256 55fd40c6346a558a8e3ce8c223adadaf7d9a25deb684952a3ba9f54318b6957a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 981d17e940c834a9799ee071e910556a2f1a16868fa4291dc0baf7cc373a7c65
MD5 aba7a89dca5c122be4903038bf3fd334
BLAKE2b-256 3c29a7a2997995e47d7ac519e31a9c5dbc2df601818cf4e6f1ab032f25f1cc45

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 66b9e6dc49bdc0dfc7bf5f612db06e0d566169675a378bf01bf4be92443a656a
MD5 ab5e3c2a3c72816293c8e61cb99bf460
BLAKE2b-256 f92332bb57cfc88a30dda4cc4f89bad18070d2590f527d8e015667474f8f803c

See more details on using hashes here.

Provenance

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

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp314-cp314-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp314-cp314-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d233c6aca06175c409a04fed6beeb09acddb846a54813f9b41aa79a2398397b5
MD5 55c784dfa46b61122d7370b31d83f489
BLAKE2b-256 8d159eb758c8badbe9cb2466003339e6229fe2a05e9638f381bfe16bb777df92

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp314-cp314-macosx_10_13_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 36dd89dcdec438ee1fdcd550542fae91cea38d6fc12c1e91b7769b911d8c0421
MD5 9feb410bed46d144f387c48fd955c468
BLAKE2b-256 1b325c22c1e7645926a1c4eb0c8f2069e7c7e70d8437df830d069941a55b1667

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp313-cp313-win_arm64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ca20119154d0c1a611ac74bcca8d2e5b12166d759a8320c1b2a66471683797d2
MD5 e16e5878a4cef41644db917ed87a4806
BLAKE2b-256 fece67426eeaee5cf7028b66df0246a2a4fb27c88e8f3505ea84194dacb6d16e

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp313-cp313-win_amd64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp313-cp313-win32.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 f2d6fbecff6f75dd6bbeee42d6e2ea73be561fca55927b417a9e256a64b77037
MD5 396a3618627f4ef9077707421691d2a4
BLAKE2b-256 bee8369e02d397b1718f71fde66f40d08f08f119485c4f059939eb32188a8ce8

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp313-cp313-win32.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b2e941cf4e718aff230a6d39e99bc9a28be4147a228615c32b7956cb5d5a137b
MD5 798af70569ab3f935555f022772c80b1
BLAKE2b-256 06e952a6061527c15052f17bebad5b2ebf2ef27c5773e1b848a6b094f6575573

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a5ce2d61427617f074aa31ab7a8b4ad87320aa98df146e73bd4817b5a2f7525c
MD5 0c59b202a97dc63a60e20c2dd9a35eb7
BLAKE2b-256 6ad9c49a630d1feba11436ba6ea9a93dc496670c5d29afef49ac71246be17688

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 abe2ffa965afc98e5e681b2c8de763629e2c4a736fcb69595c0cf1615b81ef06
MD5 5161e38e7d87cd7b9fb02b32d387aed2
BLAKE2b-256 f292ce096eb5e4fe00f4335b8950183404296765c4b783ace157069cbd052981

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 82dc51057cd581627302669869e8d56c10d2b9f4a465b740cf0d542a917dda18
MD5 1657703011e65f9b981ae71924c4d68b
BLAKE2b-256 6d959f053cfb10603a17d6cbda90a79eefcb5a5c603beff605d266224d4e0660

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 52d6a2e13a83ae25966fa11f9b489d213da4fa469c3432f88f9a2d7d9defa443
MD5 21361736ced4b84a50d34587e950b2c6
BLAKE2b-256 a90f23e2b2d7ecd26fea796008d8dfffb9c1e84148f5028a32242c5603153a42

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 55634b3c5903ba7c04a3e8e001a63c6b1f3b97e95822e54a0bcf2b6e224ccd78
MD5 1eb69afeb4fbf545e05c93fca10133cd
BLAKE2b-256 068b8c44380bb097318a67001b5ad2e23a4630bab4ba549bbc16f528b8e3bfc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 c5bb9f43d47b8181ca0f4dfb04718126f65494c8e93a389bfe98facb7eb358ca
MD5 0230cd049bef793bef890e4f0ef0e30d
BLAKE2b-256 4218532b87eb492029b6de580e9bfa7f01b8af40ff2a8abab159d7439ae82c17

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp312-cp312-win_arm64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 902a58ab97f3d591d00bf0d35e8e8acbba072ed7c2185c3dd980f86d7445f487
MD5 7abbf3595527deb98f5c999edc80f933
BLAKE2b-256 6f9a88c5be3f348f7b644c2b116110b443c9ff2a9e73b536a3399bfdb1a421eb

See more details on using hashes here.

Provenance

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

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 f38b4baf1f1d2f4deb277bfac27963d6c839b399c5f53d587ed5f5ce23b31237
MD5 47342fb74d9491513db8fcfc8d6d1352
BLAKE2b-256 6c21d0da97dfb7ace373abb23e2cc796f85613261df7227964aaff7c656f67f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp312-cp312-win32.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 079079013850d533a34a34e36f0116453f13ce91cb79deda29cab8ebdc7ae480
MD5 467b28103d1b39e2ba068b7bb221578b
BLAKE2b-256 af86a22b99225761270352ecb70c3465a366e76548fc0272f04e873b236b12ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 dd968d234e79a4586c202fc3f8341b060154c5db1e6d41d7e60d0aca0b602ac1
MD5 778c75930e90f0d68fd10fce5fcbe0b0
BLAKE2b-256 a4c1123397d6c6b1fa1c7d90906b7b28956c4d6f70a45bc41f4f708036b73411

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 35627cb3a5c541656964c7da94a80e541c91eef84316ffd463e2c8d6faa4b448
MD5 f80e3885878f7996ee9be2491e2a8f06
BLAKE2b-256 dac373976b9f34d283753085d6612ba6c4e29569175dd13c769ac6f20348d2a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 54574925f3b1a52f7eb5bc08b2c602a330d0160fc5fdecc30c6ffb6bc5b077ae
MD5 97d800d4524c3c362d54a4638a42fc23
BLAKE2b-256 c0ae210aecdafafb71ab25b828f5f8436fc525dd41a638d635c74130985dbfc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f05482aa96896f020912eabd3bc252293fe1d2d8b6a609cf8db9ade061db8641
MD5 f783bb9313217221c1e803a7105a49e5
BLAKE2b-256 fd68b01deb38d283b35a833db58bf4b1959237bfc9379ecd9bbbcf5b2ce54cf3

See more details on using hashes here.

Provenance

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

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 93da45395824fe3451151597dc117a9fb4ca0afdbb9a3861e813a2c2c1deaa48
MD5 dacf7edab788fa25058356f1db21f87c
BLAKE2b-256 f3cd105ee341e9e44e671aa1bdb06352c397ccf50305950aa6fb7693301b067c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 b26eb261057d1491eb01a62a3a349e1c2c8f8f822f3e9f17977c64ce34208db9
MD5 62c6357602a7388d428c7914bd59bc29
BLAKE2b-256 6b34a52d869941ebc42769dcbb29c59bf162a724621ea56da0383c19dc8f3198

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp311-cp311-win_arm64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

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

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6a12f176806acf98e33c4062285698e3bf6c0ddb1ac4adf62b2115b2204231af
MD5 8a6448946f20557d12d990a0d1c04349
BLAKE2b-256 39894abadac2c9a924b608de3e6e5c2d913e248b93fa1ff212dfa769384cfb9a

See more details on using hashes here.

Provenance

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

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 8876ed052f5743435fe72f9afe16bc221ab460316c948761bdf89d558b6d5fed
MD5 45762473766152b15561cb61022d1a54
BLAKE2b-256 adfea89de2a6e6c68ea094226d6ae3fc5f0829bd271d92d03bea1ad024531b03

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp311-cp311-win32.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ae3043e4f094ceec402f46b4e11588e7932f63e6207f1822a35f376a408e2162
MD5 e4c757be6a5813759c378fe2147773be
BLAKE2b-256 344f7fe79d738793a428e65dde07cb843ea1dd1f1d9fe15cc326eb24907750cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 59d383a7f721d270acfdf8128cac0443cb7bd462c247faf401048d4dd5ea61c8
MD5 9d96da21829ca013aa499e02efb2cd27
BLAKE2b-256 74bcc355576d96b1f9b8a22ca81b28eab0fe703a7d0a13145af6f64f7385c0ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 70a7c6cff77b19015b47cb22d5b918fac2fb099670e84277d175a85b19b1c2c2
MD5 31b0d02a734ac11bd06c423627c1e02c
BLAKE2b-256 d151ad9225aa28769f5024b02a153a754ecf290f194aad70c8fdc38563903923

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ae7c5cc9cbb4b91bfc290ea999bac4476b6a1d27d9809f9019dc6c275c9596dd
MD5 0174cb9551020b074a4695d0d42cbdf9
BLAKE2b-256 4c553f1e94eaf868c4606a339e44cf0c9424b868f0c21f87beda8e52ee26e6d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

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

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 386c13c7934a030828a849454eb0e3ca4a6c363dacf40d7d1c03e8f96d1031d9
MD5 f32e60fd49f8f528eac9dccb1386d5cb
BLAKE2b-256 c224c6bbb1150543b1ff1b074fb7b9836389649b1ab7896118557e99fd86a172

See more details on using hashes here.

Provenance

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

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2acdfbd83a057d3c03f2e5406235812caccfd166513312fa9ca63aeb396e0aa7
MD5 fdec0a0292ba7a5add409ae7192346ad
BLAKE2b-256 3ddfa09d6c8727b16437e5ddf1250f0b02c2a27cf7d722bf86c72b8012ca2b3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 794acd3d83eecfcb5e1ceda30e69f13f8c2c2b3327328c8c0cc5e2967db95067
MD5 d457725bd63388a2cc92b7a67c1b1ddf
BLAKE2b-256 6b23642e05ca5976c3c3b35846c9700f8653fc0898bbf09fc62a71f7a9451760

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp310-cp310-win_arm64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

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

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ac5a9332794fe02b0dcaed3d2a588fc75773c7b79a913840952fddd0ae5e64c3
MD5 f0132f26e7ce8ce9c01e6074597861fd
BLAKE2b-256 3b0f3e855005fc8a43743a5b8e905522f50325a1919b0a85d161bf71e4117931

See more details on using hashes here.

Provenance

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

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 ec5c00aa26058dc388c7d338f67ca40cbbe313ee271f22554766a8d37bad6c29
MD5 52e5f7825204a39841b2d8351b94fe6d
BLAKE2b-256 0344ed65cb725d5aef8043d69217a8792cc78f877e13348140be3c11cc6773c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp310-cp310-win32.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 45410d3fdd458210529f236f718010ec9593d2942b126194f4e2cfe8eb8ca402
MD5 6fa4e16d3bc35af99f51ae925fc65b8c
BLAKE2b-256 b826512cdb70000b0b09ee05f8087d91b11e3534c86ab19e4442ba5162f598bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9d4bab88169bb37f034885c965e08c386cb05f93f663510d24adaa417a91c681
MD5 c30ccf8218208513ca268652583f9319
BLAKE2b-256 593d6bc89b75bd8f607a6f479a996b5ad42880beb12690fccdd67c536e015589

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b6bd0d72a32f6c9dce4aa8c4eeed37e924902e47deb46f4a1ee62b59a7848b32
MD5 30dc8d3d951ab924fae98ffd7672b7ea
BLAKE2b-256 32ba473f81e2af242ffaa213418fb5cfef4b4d8ef0424bb8d26791086e808f77

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7f903952c787e071e8ab1ee7d3533dc50eda31b91ec4715f33a8d96b654ec559
MD5 9242ec4089c3722c79ca0dad19e5e1a0
BLAKE2b-256 63f7511a60034a62a03124ef153880ab1ea91a0e0b44eaaabe1789ffc6083ca0

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

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

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7ff7b66ff6e576a24e4bfee93935257f3e008add5c913860cbca558df6f9893b
MD5 151bee0189cd278cca273f5eafdec2a8
BLAKE2b-256 f5d2a7b256bb8066b9e5a0b2014496fa792a886b1675f4dc8efd5c23b9438054

See more details on using hashes here.

Provenance

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

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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

File details

Details for the file mutable_lattice-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for mutable_lattice-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0c586ed1faf09050813a477e8ce4e652e62692de5e209fea347fbfad4880cf7a
MD5 dc4b02ac06215142df99c7208ec44789
BLAKE2b-256 5eaafaa1512c444fe13f1a0ebe8f945c294ae75942cd26d20c03339e64ef195a

See more details on using hashes here.

Provenance

The following attestation bundles were made for mutable_lattice-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: build_and_upload.yml on sweeneyde/mutable_lattice

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