Skip to main content

130 million TDEs per second, Python + CUDA TDEs from Nikkhoo and Walter 2015

Project description

DOI

Python CPU and GPU accelerated TDEs, over 100 million TDEs per second!

Note from Dec 2022: The code here work beautifully and I plan to continue making minor bug fixes maintaining the current functionality. But I no longer will be making any improvements to this project. I would be happy to chat or email to help anyone who wants to dive in. For the biggest potential improvement, see this issue: https://github.com/tbenthompson/cutde/issues/23

cutde: CUDA, OpenCL and C++ enabled fullspace and halfspace triangle dislocation elements (TDEs), benchmarked at 130 million TDEs per second. cutde is a translation and optimization of the original MATLAB code from Nikhoo and Walter 2015.. In addition to the basic pair-wise TDE operations for displacement and strain, cutde also has:

  • all pairs matrix construction functions.
  • matrix free functions for low memory usage settings.
  • block-wise functions that are especially helpful in an FMM or hierarchical matrix setting.
  • an adaptive cross approximation implementation for building hierarchical matrices.

See below for basic usage and installation instructions. For more realistic usage examples, please check out the TDE examples in these BIE tutorials. You'll find examples of using all the above variants.

import matplotlib.pyplot as plt
import numpy as np

import cutde.fullspace as FS

xs = np.linspace(-2, 2, 200)
ys = np.linspace(-2, 2, 200)
obsx, obsy = np.meshgrid(xs, ys)
pts = np.array([obsx, obsy, 0 * obsy]).reshape((3, -1)).T.copy()

fault_pts = np.array([[-1, 0, 0], [1, 0, 0], [1, 0, -1], [-1, 0, -1]])
fault_tris = np.array([[0, 1, 2], [0, 2, 3]], dtype=np.int64)

disp_mat = FS.disp_matrix(obs_pts=pts, tris=fault_pts[fault_tris], nu=0.25)

slip = np.array([[1, 0, 0], [1, 0, 0]])
disp = disp_mat.reshape((-1, 6)).dot(slip.flatten())

disp_grid = disp.reshape((*obsx.shape, 3))

plt.figure(figsize=(5, 5), dpi=300)
cntf = plt.contourf(obsx, obsy, disp_grid[:, :, 0], levels=21)
plt.contour(
    obsx,
    obsy,
    disp_grid[:, :, 0],
    colors="k",
    linestyles="-",
    linewidths=0.5,
    levels=21,
)
plt.colorbar(cntf)
plt.title("$u_x$")
plt.tight_layout()
plt.savefig("docs/example.png", bbox_inches="tight")

docs/example.png

Usage documentation

Simple pair-wise TDEs

Computing TDEs for observation point/source element pairs is really simple:

from cutde.fullspace import disp, strain

disp = disp(obs_pts, src_tris, slips, nu)
strain = strain(obs_pts, src_tris, slips, nu)

Replace the cutde.fullspace with cutde.halfspace to use halfspace TDEs.

The parameters:

  • obs_pts is a np.array with shape (N, 3)
  • src_tris is a np.array with shape (N, 3, 3) where the second dimension corresponds to each vertex and the third dimension corresponds to the cooordinates of those vertices.
  • slips is a np.array with shape (N, 3) where slips[:,0] is the strike slip component, while component 1 is the dip slip and component 2 is the tensile/opening component.
  • the last parameter, nu, is the Poisson ratio.

IMPORTANT: N should be the same for all these arrays. There is exactly one triangle and slip value used for each observation point.

  • The output disp is a (N, 3) array with displacement components in the x, y, z directions.
  • The output strain is a (N, 6) array representing a symmetric tensor. strain[:,0] is the xx component of strain, 1 is yy, 2 is zz, 3 is xy, 4 is xz, and 5 is yz.

I want stress.

Use:

stress = cutde.fullspace.strain_to_stress(strain, sm, nu)

to convert from stress to strain assuming isotropic linear elasticity. sm is the shear modulus and nu is the Poisson ratio. The strain array here is expected to have a shape (N, 6). In case you have a matrix or other shaped array, this snippet might help:

strain_to_stress(strain_matrix.reshape((-1, 6)), mu, nu).reshape(strain_matrix.shape)

All pairs interactions matrix

If, instead, you want to create a matrix representing the interaction between every observation point and every source triangle, there is a different interface:

from cutde.fullspace import disp_matrix, strain_matrix

disp_mat = disp_matrix(obs_pts, src_tris, nu)
strain_mat = strain_matrix(obs_pts, src_tris, nu)
  • obs_pts is a np.array with shape (N_OBS_PTS, 3)
  • src_tris is a np.array with shape (N_SRC_TRIS, 3, 3) where the second dimension corresponds to each vertex and the third dimension corresponds to the cooordinates of those vertices.
  • the last parameter, nu, is the Poisson ratio.
  • The output disp_mat is a (N_OBS_PTS, 3, N_SRC_TRIS, 3) array. The second dimension corresponds to the components of the observed displacement while the fourth dimension corresponds to the component of the source slip vector. The slip vector components are ordered the same way as in disp(...) and strain(...).
  • The output strain_mat is a (N_OBS_PTS, 6, N_SRC_TRIS, 3) array. Like above, the dimension corresponds to the components of the observation strain with the ordering identical to strain(...).

Note that to use the strain_to_stress function with a matrix output like this, you'll need to re-order the axes of the strain array so that the 6-d strain axis is the last axis. You can do this with np.transpose(...).

Matrix-free all pairs interactions

A common use of the matrices produced above by disp_matrix(...) would be to perform matrix-vector products with a input vector with (N_SRC_TRIS * 3) entries and an output vector with (N_OBS_PTS * 6) entries. But, building the entire matrix can require a very large amount of memory. In some situations, it's useful to compute matrix-vector products without ever computing the matrix itself, a so-called "matrix-free" operation. In order to do this, the matrix entries are recomputed whenever they are needed. As a result, performing a matrix-vector product is much slower -- on my machine, about 20x slower. But, the trade-off may be worthwhile if you are memory-constrained.

from cutde.fullspace import disp_free, strain_free
disp = disp_free(obs_pts, src_tris, slips, nu)
strain = strain_free(obs_pts, src_tris, slips, nu)

The parameters are the same as for disp_matrix(...) with the addition of slips. The slips array is a (N_SRC_TRIS, 3) array containing the source slip vectors.

Block-wise interaction matrices

In some settings, it is useful to compute many sub-blocks of a matrix without computing the full matrix. For example, this is useful for the nearfield component of a hierarchical matrix or fast multipole approximation.

from cutde.fullspace import disp_block, strain_block
disp_matrices, block_idxs = disp_block(
    obs_pts, src_tris, obs_start, obs_end, src_start, src_end, nu
)
strain_matrices, strain_block_idxs = strain_block(
    obs_pts, src_tris, obs_start, obs_end, src_start, src_end, nu
)
  • obs_pts, src_tris and nu are the same as for disp_matrix.
  • obs_starts and obs_end are arrays with N_BLOCKS elements representing the first and last observation point indices in each block.
  • src_starts and src_end are arrays with N_BLOCKS elements representing the first and last source triangle indices in each block.

The output disp_matrices and strain_matrices will be a densely packed representation with each block's boundaries demarcated by block_idxs. As an example of extracting a single block:

disp_matrices, block_idxs = disp_block(obs_pts, src_tris, [0, 5], [5, 10], [0, 2], [2, 4], nu)
block1 = disp_matrices[block_idxs[0]:block_idxs[1]].reshape((5, 3, 2, 3))

Adaptive cross approximation (ACA)

Sometimes the matrix blocks we want to compute represent far-field interactions where the observation points are all sufficiently far away and separated as a group from the source triangles. In this situation, the matrix blocks are approximately low rank. An approximate matrix will require much less storage space and allow for more efficient matrix-vector products. Adaptive cross approximation is an algorithm for computing such a low rank representation. See Grasedyck 2005 for an accessible and general introduction to ACA. Or, see the ACA section here for an introduction that builds up to using the cutde.fullspace.disp_aca(...) implementation.

disp_appxs = cutde.fullspace.disp_aca(
    obs_pts, tris, obs_start, obs_end, src_start, src_end, nu, tol, max_iter
)

Like all the other functions, this function is provided by both cutde.fullspace and cutde.halfspace.

The parameters are the same as disp_block(...) with the addition of tol and max_iter. The tolerance, tol, is specified as an array of length N_BLOCKS in terms of the Frobenius norm of the error matrix between the true matrix and the approximation. The algorithm is not guaranteed to reach the specified tolerance but should come very close. The maximum number of iterations (equal to the maximum rank of the approximation) is also specified as an array of length N_BLOCKS.

The output disp_appxs will be a list of (U, V) pairs representing the left and right vectors of the low rank approximation. To approximate a matrix vector product:

U, V = disp_appxs[0]
y = U.dot(V.dot(x))

Installation

Installing from conda-forge is preferable because there should be fewer issues involving compilers. To install cutde from conda-forge:

conda install -c conda-forge cutde

or to install from pypi with pip:

pip install cutde

Installing via pip will build the C++ extensions from source which will require access to a non-ancient version of either GCC or Clang.

That should be sufficient to use the C++/CPU backend. If you want to use the GPU backend via PyCUDA or PyOpenCL, follow along below.

GPU installation

Install either PyCUDA or PyOpenCL following the directions below.

PyCUDA

If you have an NVIDIA GPU, install PyCUDA with:

conda config --prepend channels conda-forge
conda install -c conda-forge pycuda

Mac OS X

Install PyOpenCL and the PoCL OpenCL driver with:

conda config --prepend channels conda-forge
conda install pocl pyopencl

Ubuntu + PyOpenCL/PoCL

Just like on a Mac:

conda config --prepend channels conda-forge
conda install pocl pyopencl

Ubuntu + PyOpenCL with system drivers

conda install pyopencl ocl-icd ocl-icd-system

You will need to install the system OpenCL drivers yourself depending on the hardware you have. See the "Something else" section below.

Windows

See the PyCUDA instructions if you have an NVIDIA GPU.

I'm not aware of anyone testing cutde on OpenCL on Windows yet. It should not be difficult to install. I would expect that you install pyopencl via conda and then install the OpenCL libraries and drivers that are provided by your hardware vendor. See the "Something else" section below.

Something else

I'd suggest starting by trying the instructions for the system most similar to yours above. If that doesn't work, never fear! OpenCL should be installable on almost all recent hardware and typical operating systems. These directions can be helpful.. I am happy to try to help if you have OpenCL installation issues, but I can't promise to be useful.

Why can't I use Apple CPU OpenCL?

You might have gotten the message: cutde does not support the Apple CPU OpenCL implementation and no other platform or device was found. Please consult the cutde README.

The Apple OpenCL implementation for Intel CPUs has very poor support for the OpenCL standard and causes lots of difficult-to-resolve errors. Instead, please use the PoCL implementation. You can install it with conda install -c conda-forge pocl.

Development

For developing cutde, clone the repo and set up your conda environment based on the environment.yml with:

conda env create

Then, pip install -e ..

Next, for developing on a GPU, please install either pycuda or pyopencl as instructed in the Installation section above.

Then, you should re-generate the baseline test data derived from the MATLAB code from Mehdi Nikhoo. To do this, first install octave. On Ubuntu, this is just:

sudo apt-get install octave

And run

./tests/setup_test_env

which will run the tests/matlab/gen_test_data.m script.

Finally, to check that cutde is working properly, run pytest!

Architecture

A summary of the modules.

  • halfspace.py and fullspace.py - the main entrypoints. These are very thin wrapper layers that provide the user-facing API.
  • coordinators.py - the driver functions that call the CUDA kernels. I would suggest starting here!
  • geometry.py - geometry helper functions
  • common.cu - a semi-direct translation of the main computation kernels in the MATLAB. These are called by the other CUDA kernels below.
  • pairs.cu - the CUDA kernels for the pair-wise TDE calculations.
  • matrix.cu - the CUDA kernels for the all pairs TDE calculation that constructs a matrix.
  • blocks.cu - the CUDA kernels for the block-wise matrix calculation.
  • free.cu - the CUDA kernels for the matrix-free matrix-vector product calculation. This can be used if the matrix you'd like to construct is too large to hold in memory.
  • aca.cu - the CUDA kernels for the adaptive cross approximation implementation.
  • backend.py - a layer that abstracts between the CUDA, OpenCL and C++.
  • gpu_backend.py - some helper functions for the CUDA and OpenCL backends
  • cuda.py - the PyCUDA backend.
  • opencl.py - the PyOpenCL backend.
  • cpp.py and cutde.cpp_backend - combined, these two files provide a portability layer so that the CUDA code can actually be compiled as C++ and run, albeit a bit slowly, on the CPU.

The tests/tde_profile.py script is useful for assessing performance.

Some tests are marked as slow. To run these, run pytest --runslow.

If you several backends available and installed cutde will prefer CUDA, then OpenCL and finally fall back to the C++ backend. If you would prefer to specify which backend to use, you can set the environment variable CUTDE_USE_BACKEND to either cuda, opencl or cpp.

The README.md is auto-generated from a template in docs/. To run this process, run docs/build_readme.

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

cutde-26.3.6.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

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

cutde-26.3.6-cp314-cp314-win_amd64.whl (618.4 kB view details)

Uploaded CPython 3.14Windows x86-64

cutde-26.3.6-cp314-cp314-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

cutde-26.3.6-cp314-cp314-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

cutde-26.3.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (907.6 kB view details)

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

cutde-26.3.6-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (849.1 kB view details)

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

cutde-26.3.6-cp314-cp314-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

cutde-26.3.6-cp314-cp314-macosx_10_15_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

cutde-26.3.6-cp313-cp313-win_amd64.whl (612.2 kB view details)

Uploaded CPython 3.13Windows x86-64

cutde-26.3.6-cp313-cp313-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

cutde-26.3.6-cp313-cp313-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

cutde-26.3.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (907.0 kB view details)

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

cutde-26.3.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (847.9 kB view details)

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

cutde-26.3.6-cp313-cp313-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cutde-26.3.6-cp313-cp313-macosx_10_13_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

cutde-26.3.6-cp312-cp312-win_amd64.whl (612.2 kB view details)

Uploaded CPython 3.12Windows x86-64

cutde-26.3.6-cp312-cp312-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

cutde-26.3.6-cp312-cp312-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

cutde-26.3.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (907.0 kB view details)

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

cutde-26.3.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (847.9 kB view details)

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

cutde-26.3.6-cp312-cp312-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cutde-26.3.6-cp312-cp312-macosx_10_13_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

cutde-26.3.6-cp311-cp311-win_amd64.whl (608.7 kB view details)

Uploaded CPython 3.11Windows x86-64

cutde-26.3.6-cp311-cp311-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

cutde-26.3.6-cp311-cp311-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

cutde-26.3.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (905.1 kB view details)

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

cutde-26.3.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (845.2 kB view details)

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

cutde-26.3.6-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cutde-26.3.6-cp311-cp311-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

cutde-26.3.6-cp310-cp310-win_amd64.whl (607.8 kB view details)

Uploaded CPython 3.10Windows x86-64

cutde-26.3.6-cp310-cp310-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

cutde-26.3.6-cp310-cp310-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

cutde-26.3.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (901.0 kB view details)

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

cutde-26.3.6-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (844.3 kB view details)

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

cutde-26.3.6-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cutde-26.3.6-cp310-cp310-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

cutde-26.3.6-cp39-cp39-win_amd64.whl (611.4 kB view details)

Uploaded CPython 3.9Windows x86-64

cutde-26.3.6-cp39-cp39-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

cutde-26.3.6-cp39-cp39-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

cutde-26.3.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (901.5 kB view details)

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

cutde-26.3.6-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (844.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

cutde-26.3.6-cp39-cp39-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

cutde-26.3.6-cp39-cp39-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

cutde-26.3.6-cp38-cp38-win_amd64.whl (607.1 kB view details)

Uploaded CPython 3.8Windows x86-64

cutde-26.3.6-cp38-cp38-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

cutde-26.3.6-cp38-cp38-musllinux_1_2_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

cutde-26.3.6-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (899.9 kB view details)

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

cutde-26.3.6-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (843.0 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

cutde-26.3.6-cp38-cp38-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

cutde-26.3.6-cp38-cp38-macosx_10_9_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

Details for the file cutde-26.3.6.tar.gz.

File metadata

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

File hashes

Hashes for cutde-26.3.6.tar.gz
Algorithm Hash digest
SHA256 0b7ee56dfab027e459d0504797824e910b9c334151c716f0815a7108a6e36c7b
MD5 58ffb57cd30f2bdd9e54aad1bec9eb38
BLAKE2b-256 741e5205320df484817909955880d8d01e909ca807d15d448ec004c8ccf807d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6.tar.gz:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp314-cp314-win_amd64.whl.

File metadata

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

File hashes

Hashes for cutde-26.3.6-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e601e048d607448c3faa2049f38220da08f0808ad335682be23cb58321f106e9
MD5 35b0701dcd23ef007dca5c3c1ff69f8e
BLAKE2b-256 24774ca8d2fc33635b77656a4a2f382bc9851f007ea475147a9156be542ace16

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp314-cp314-win_amd64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4f6bf12a4eec7a5b27cf4654686c3f85cc8b117285b32f7a9a3fa850838a4a27
MD5 c126dbe3bc3da4e68e04d6f6d595100e
BLAKE2b-256 3c7835c7d8db3e6fac587656d9924ace8367a87b0ed58f560573366997ce3f50

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 de06777c227829a775209eab957e421da7071780685523df3501bb1fa2cd6b52
MD5 a767f779dd561daa8bbc0d946522f21a
BLAKE2b-256 acc5412652280c681ca009f2efc95773d87d63de1371169ad04c56762eebff91

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 35e25da1d8d3d47437955736b300ad8aac7bb249d3f1dbfcca84ceeb90bb6c68
MD5 6d12f3a1629d95546a558ed40939ccbb
BLAKE2b-256 6baf59d56ecd546e79cb9f28d4fb0c1d862fdbab5df85115641e95f2929bbcc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f051165b5cb0bbdf411450b5efb6ec707fc58b0eb3272790d5974e8cb3263451
MD5 47902d5e116a8b24073afde27e8955c9
BLAKE2b-256 b61b265306beaaef383e39acb1f8b4b53855bf9c7009891deb9723ac2479e3d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb6dafa03721ee1f7e578308878cc3f76fa93b3513eee2434d8a022ee3b9dd2f
MD5 d6cff84a2bad510fab952ed880c16016
BLAKE2b-256 eed34a7989b72f83a4d2cfb4da9a0fad6557ffe506ad69e8faca11665e328b32

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1c4cba254263e8ef8fd0c81b2e7779516f5966c73f4c790d6304cf549229c0e2
MD5 f3b3c6fc4156e4729e389a4422f00ba5
BLAKE2b-256 9373f9772fc670abdb6a8b142915fb991183809bc56406ec6bca784965af4eb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp313-cp313-win_amd64.whl.

File metadata

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

File hashes

Hashes for cutde-26.3.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1f128dadd7fcae78f5fe744856e2a42c86eea8652bc6042d705aff9d7eb2f95c
MD5 1181e91d431c6e42959505172ddc6abd
BLAKE2b-256 5d53e6af5bd2baea2752885441ce5861b10dd71651df49f9a73a53e3b5e98da5

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp313-cp313-win_amd64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 db7926abdf1bbfca4b8b131314eff305c868393ed4a5fa3b8279dedfee7eb8cf
MD5 b119a4579a67f5a16e3a2350bf649a66
BLAKE2b-256 950a7f5c094e53c0a91b484ebd30055afc875c216d586982848d83490a79b8dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2d6e7ee2e61412792758d00aa52db0f9961c5f7b106cd4af1327e86847f0adb2
MD5 3f432c03197afcf83fd03302f467c58c
BLAKE2b-256 66d859f2f5a085d6482c130d4aef2ae290ae6ebe03069f23c925054ba64b766c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 93904d4556b07e63d9a7a51b5685691c7780456b6af5a49c6fcd2244205dd1b9
MD5 802f93cdae45ecaa3138e375b76b9fef
BLAKE2b-256 680131364f316d2f2b6b4a7e73d80acb9bc0c991e6f1c8fb1a64255000f81423

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 95ed8e6989f5acb9afeb85747d4b8368dab045ec28981a8f5db9307f393f261e
MD5 bd89d739a918269efe986de43bd017a1
BLAKE2b-256 b18bd0eeb68c615c73b91ecb12a384f12e357cded67b628add8d1340608def52

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8356d1352d4394f2a45e67c31e804b14fdaf1564688e125c3c0a3babad848afa
MD5 b48845ed7549445be817250a1bb49740
BLAKE2b-256 a64b6c09fdad8b9c547dcf2fce4640c2c931ec15a62f69e35a50d997a81c9b57

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 dfa01875123f17447a89795117c6cd60879fe5a48b594b340a4f809ae5240d58
MD5 e36040a93bf1e27136bd042ce37609dc
BLAKE2b-256 979f5011aeeb984535e9938a81962f6c296f5d17797000f9959f2a8910902a15

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp312-cp312-win_amd64.whl.

File metadata

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

File hashes

Hashes for cutde-26.3.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f5aa1985f8852fb19b61f92f7af5465e9493d25bbc2fe6a26301f79c78b8213a
MD5 73387cf08efc2f79587b82b68ab03392
BLAKE2b-256 c488fae8acac81c24af006926b9af4f0783405260a00668fc9c67850cf36bf9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp312-cp312-win_amd64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 27e57ddee9daec4cf39daa804f50d3e1d468199cbc206b08135a4905fdb21c7d
MD5 281e745a2d1237bf7e841c30eb6b5784
BLAKE2b-256 b2d88ba0b6e1ebc649d0a92dee6ff312e1c13ed2965d0c91f96c9d31f5a40d94

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 dc368b8b864fec36d1fc674ffda8239f25a4b700e3b69e2794e583b68a85ecd4
MD5 94232412def3339829244cf947f2a462
BLAKE2b-256 3420851cde763af87f0a15604954f3ef40d8421378d4ea7d67d12b0530d3a975

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 962e9e8bce92f04b37a6c066047b498a84719770a4a495e3bcbbae7411088a37
MD5 398d6831311f4ab7be1f3d0bf6603a2c
BLAKE2b-256 b68afcaaa056097b1528e9370e3b7f679cf955399953b2db33381aad028904ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7327aa93873fdfcfd022ff73c18b88d819e0897862d47b3ea511b9f00fbb53cf
MD5 06dc6d1ea25ec671e7463a39c2ffd467
BLAKE2b-256 0cd4a3548ba8c00047bafc5b86965512fcfc20d552ef6ead317e8dd274554213

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 09410ac1d03d36bfc08b96ada3e65633b1b9748c061da435b9e15da22851b624
MD5 bc48f55d6af304a3a35b6ec6b57d6b5c
BLAKE2b-256 767ba45266f54fe6e67b39b11deea21790cacca829e1b49e9adeec0ad4dd3f78

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 0db54cc1d61e7a138de5f6c05fab955c9ef465b0817dbb49553f691b7c0b4118
MD5 8d6751f7082fe14950bc693ac95a4f2a
BLAKE2b-256 01449b887672b09cbf1bec7c6282d4f37491dc625d753a1253ebcac87b806004

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp311-cp311-win_amd64.whl.

File metadata

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

File hashes

Hashes for cutde-26.3.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ab4021cf6e95cd41c7506d4654acedc23f09a1b23474e3278423fb34413a15a5
MD5 46800aa10acd9c92a085ab8622543317
BLAKE2b-256 7c85e076b7bc9903523c48f230a27f40a42c56b7f7ca9999e86a9bcc179933fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp311-cp311-win_amd64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6cbaf83f45cf81159a22821342a2af35a3d637d48780b050bd21db5aedcbdff5
MD5 f031922389e4784b21fb1032354887ce
BLAKE2b-256 4ca5f28f0080da0f2a6ca00fef65e22a45be4a5c033ec5c32aa63959d7e9b19f

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9688bfc19c86f34ccfbb4fad9d414defd04d03e209260667906cb9036ae825d8
MD5 6c135e6cbdcb68731161a7c8b8402a0f
BLAKE2b-256 78272b5d6096036246a823244004d8a1167da815d35fd69b77f2da7857a16914

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cb57dc5140ee9c61c49dd64220ac3dd16f0643dc9d04e76a10df4ca5e78cad4a
MD5 d3747627e13c9df34aaf4cd5ff0de5a1
BLAKE2b-256 7cc73c5ef49eba95b3141e46d584399b9decc59e18d3287092cf194498c53021

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3b646be651f87f140d75f330e692323395be67448ae455f533a8e5e6c6fb38f7
MD5 77fb5e6df03db028bd1e95dfa819451d
BLAKE2b-256 11817d8822c7e05b885e0a5283b70113c3d9cfbdb08eedecdcd3bf5c811d0a4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16174e1e76561e19a0c012d291ba89348f377c0c7507a8c2dc63d9120d858c9d
MD5 32631ed1e20815398717e4647fcc6017
BLAKE2b-256 56697a7db7dc283e5403a3c980f6eec24182ce6519bc4da4245e467f5ec1257c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9be6bc570190efe88621340a8517f7690da57cb9d739e2b0e1113188616c3142
MD5 23baa1a5231ce42e9db60fd42f540ac1
BLAKE2b-256 d8e8afe7631ab7b092b636e344e9b5a50c26aa9973f0143db49fd804f9908bbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp310-cp310-win_amd64.whl.

File metadata

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

File hashes

Hashes for cutde-26.3.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0c1f353dea8ecb827c4e482788058bda356c1e3706ad262c6d91d0971362c287
MD5 dd8cba8418600464c93f34555e7d0f78
BLAKE2b-256 3e3909fb12128d39736484e9b8107fcd020c2312165d3569f6d29664d7237107

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp310-cp310-win_amd64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 67b30bbbd55ef9f54e1e083d85bc6787cd375cce8181e93bd5c1c3fa9974dab8
MD5 7d590d4b49cd8875ee62a23c7e89c07a
BLAKE2b-256 e97dc090781593902bf801b17621ea641bc6c52415ae03785ca0812abfde237c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2db78593eefc802a16394d7ac1a5cba5028e781934025c4d1164a0f6a71f0274
MD5 9c54f93ad75f701fae0d00fe198c4a6f
BLAKE2b-256 3e7147a2eceb1ee39d69a9cd0fc41c4e8bd7be01821a584268a88a6363053ad4

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5f5eded0ce0a4213d8ca65cc0aed3b49ce4f7d0a6bf70621c7f3a9039e0f3da4
MD5 0f8c848b419f7664967d657c988af26e
BLAKE2b-256 4f95f6334316c65f01e06f13e81facc90f0f074606309975193ced7ba3997970

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 30363a5995f04ee694eddf9e29377e7bbbecfa62af9b874ad10d918b08de1473
MD5 b923b5d737673d5e2b6bc023b800f076
BLAKE2b-256 36c8d9d27bf2356a9d7bcd7c43a2c1274770b663758d68fc30ad35f6dc963b25

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 212c20f9c7341082a94a8d89645230773fbc5f933fa75f0cf1cf25d5b90dbd12
MD5 c060b96d8b30b53ff6602517afa05d0c
BLAKE2b-256 02940f5ec8b4e59519de89a6375df8845544ff2d4b340f28a079182a202960e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e55a9b45f75dc22810f710ae7bc0cdbc8e02d8f40968b14c9960f81ad75a5e36
MD5 79b693ccea8faf41918d39d1381a567a
BLAKE2b-256 2fd64292b5348c8a5c1e8023dff949eee114501e234870536d23cf7210dd5804

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: cutde-26.3.6-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 611.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cutde-26.3.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 28a0034b8e372fb2de235c30dd2035ae802dfe8557801d0f411fa68dce4e08c4
MD5 ab9199d908551545f8f8034b61e41b32
BLAKE2b-256 93a2bdbe55c025bfb5825813ac29556b24bb8f52d0b21afa64c032677bb7e298

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp39-cp39-win_amd64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 549c89574d06c552739c3c213a5ead3ab78d1b4dea119b33e9bd831d708e70fe
MD5 b604b8bbc3633bc85538511c94503b01
BLAKE2b-256 4245ca08d66cf552dd839bd99eb9f3d5ee47fc76f3d1dbd89c0d337420eaca4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2ebd6f7f95d8ae763deb32bd5e89c6d046e290699a92bd829b36ce0ede35edc4
MD5 c89a1ea2719ac28a773f3af1e5c6548a
BLAKE2b-256 0578d290393e7be1202f52dee16ca1421b0774240f635aed083d58720b6fbf65

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp39-cp39-musllinux_1_2_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eae9c12ca66d897496144e5ee23883836ddd3213e11262b4f9ff1526f58bdab7
MD5 619e55b1b15120ce2940920097ebd13c
BLAKE2b-256 bee68380976fbe6a0f9647a9bbf0e730325b309556af74b696df5fe67972a5df

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2aa889f51615807a6f0a1fe99bc38fb09a5f26e9ed7f1c1e55ffb9d0cf2d72aa
MD5 7a61fb87b12ec531504ada9babc7841a
BLAKE2b-256 39bd9773240acb06e78e7a42c650acd3a7c65545f16e4c913c768f450837d654

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5033a9f2b0487397bb656b6d9f285bef2805b1eac9764000736a9a6caae9c755
MD5 fec3969d524314b73f7b42df43d8f073
BLAKE2b-256 4b924728d48be16e514b6aa311c075e8c9879db4fc1ca3d41c2bfe77e0722179

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8f605d6f7123747cc6ce6a539d91f0f43da44053a44aac20f005c31a2305a8fa
MD5 6c9ce4ae4600db778ad6a562b7d65b8b
BLAKE2b-256 dce7969b55a0c3ae30e8f3239b7243c945d7da4c389453908095aa7fe9711add

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: cutde-26.3.6-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 607.1 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cutde-26.3.6-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d2728f433f2741fb2e10c4176b25d3b7d77124d7d31e7fa696daf0fdef8ae25b
MD5 2ca08057224281b91b9adacbe8781ccd
BLAKE2b-256 226bda7f6f7d2dddee11fe12a6ea4fde751a73703480673812b0f1090bc27583

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp38-cp38-win_amd64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2133f4d401dd62a7da4849516efc3991a3d42552b916d0fd57cf55777bc9528b
MD5 74104440d4496c21feb9e083046df0e4
BLAKE2b-256 f75021cd7759e1951f9d1bb8034799c3709314b7d0ff37bb785bd942d1e2a255

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp38-cp38-musllinux_1_2_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 46814a503fa23021f6c1849e1e0410f14813a2fe758f9f3da0689c2ec665b88f
MD5 9d5325d5768217379d5ef96e16c9407d
BLAKE2b-256 83fe0ee455cb16d5a595ef9cc84c565fc5c6613d84db723986c0d011d60f65ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp38-cp38-musllinux_1_2_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 51072eabe9183af60f43b225e4931bdae44cc30d20b2cd5f5de1f2e42bfc3e86
MD5 ca89bc1cba267834f5c584c1fc6f2d64
BLAKE2b-256 58cfc9971b85b2b75b51cead6e661e3a368e240436e252aa8ec17a08c2690dbe

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5a4075b7f249d75023fa7f4dafaa64dc67841aaa49bd652f73f6551246f31c20
MD5 616394c6dbac0141be2ce0921ab6eb49
BLAKE2b-256 6506029245c7da5656129713081a9b7a12a277f1900c9f59b181d9fc9e08fb9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 af5a91dddc684d26ceb0532060404a8b2b6bf9b7c77bb249cdd098cb82f3bb74
MD5 30d56dfe9236dadc0452debd1959eb68
BLAKE2b-256 66102f80e70e60f8176604933362cf3d58ce1fc214aeb32b5c656712c02469ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp38-cp38-macosx_11_0_arm64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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

File details

Details for the file cutde-26.3.6-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cutde-26.3.6-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 30878570b0b9094507b5ee4fb9b13bf6395756c8119a7ac4262ea3b9f4eeed1f
MD5 1b7a7fb175fddbd58a342562c6b13fa9
BLAKE2b-256 9b5a1cfe22ebf0f95344f90fae84be75970d3ff8f45a177adfd00aa97cd6df08

See more details on using hashes here.

Provenance

The following attestation bundles were made for cutde-26.3.6-cp38-cp38-macosx_10_9_x86_64.whl:

Publisher: cibuildwheel.yml on cutde-org/cutde

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