Skip to main content

Cython bindings to the CAT-Surface library (libCAT) for cortical surface analysis

Project description

cat-surf — Python bindings for CAT-Surface

PyPI Python License: GPL-2.0

cat-surf provides Python access to CAT-Surface, a mature C/C++ toolkit for surface-based neuroimaging analysis, focusing on the processing and analysis of cortical surface meshes.

CAT-Surface has been used internally for more than 10 years as part of CAT12, the SPM toolbox for computational anatomy. With this package, it is now distributed as an independent Python package for direct integration into external workflows to make CAT-Surface easier to use:

  • in T1Prep workflows (currently relying on CAT-Surface binaries)
  • in Python-based pipelines without subprocess-heavy wrappers
  • in reproducible environments via published wheels

Installation

pip install cat-surf

Pre-built wheels are available for:

  • macOS — arm64 (Apple Silicon), x86_64 (Intel)
  • Linux — x86_64, aarch64 (manylinux)
  • Python 3.9 – 3.13

Basic usage

import cat_surf

# Check version
print(cat_surf.__version__)

# Load a surface file (GIFTI, FreeSurfer, BIC/MNI formats)
vertices, faces = cat_surf.read_surface("lh.central.gii")

# Per-vertex area
area, total_area = cat_surf.get_area(vertices, faces)

# Euler characteristic
chi = cat_surf.euler_characteristic(vertices, faces)

# Smooth per-vertex data (heat kernel, FWHM in mm)
smoothed = cat_surf.smooth_heatkernel(vertices, faces, area, fwhm=20.0)

Surface operations

Function Description Mirrors
read_surface / write_surface Multi-format surface I/O (GIFTI, FreeSurfer, BIC)
read_values / write_values Per-vertex scalar I/O
get_area Per-vertex and total surface area CAT_SurfArea
get_area_normalized Area normalized by a reference sphere CAT_SurfArea -sphere
euler_characteristic Topological integrity check
smooth_heatkernel Heat-kernel smoothing of per-vertex data
smooth_mesh Laplacian/Taubin mesh vertex smoothing
smoothed_curvatures Mean curvature estimation
sulcus_depth Sulcal depth via depth potential
reduce_mesh Quadric (QEM) mesh decimation (aggressiveness, preserve_sharp) CAT_SurfReduce
remove_intersections Self-intersection repair (MeshFix) CAT_SurfRemoveIntersections
count_intersections Count self-intersecting faces CAT_SurfRemoveIntersections -count
surf_average Vertex-wise averaging across surfaces (return_rms for std dev) CAT_SurfAverage
surf_to_sphere Inflate surface to sphere CAT_Surf2Sphere
sphere_radius Mean radius of a spherical surface
correct_thickness_folding Folding-based thickness correction (slope, max_dist clipping) CAT_SurfCorrectThicknessFolding
point_distance Linked vertex distance between two meshes CAT_SurfDistance -link
point_distance_mean Mean (Tfs) vertex distance CAT_SurfDistance -mean
hausdorff_distance Hausdorff distance between two surfaces
resample_to_sphere Resample surface/values onto a target sphere CAT_SurfResample
surf_deform Deform a surface toward a volume isovalue CAT_SurfDeform
surf_to_pial_white Estimate pial + white surfaces from a central surface CAT_Surf2PialWhite
central_to_pial Generate a pial surface from central + thickness
surf_warp DARTEL-based spherical registration CAT_SurfWarp

Volume operations

Function Description Mirrors
vol_sanlm Structure-adaptive non-local means denoising CAT_VolSanlm
vol_blood_vessel_correction Blood vessel intensity correction CAT_VolBloodVesselCorrection
vol_thickness_pbt Cortical thickness via projection-based method CAT_VolThicknessPbt
vol_amap Adaptive maximum a posteriori tissue segmentation CAT_VolAmap (core only)
vol_marching_cubes Isosurface extraction with genus-0 topology correction CAT_VolMarchingCubes
vol2surf Map a volume to a surface along inward normals CAT_Vol2Surf

Volume input convention

Every volume-consuming function accepts three input forms interchangeably:

import cat_surf, nibabel as nib
import numpy as np

# 1. file path
v, f = cat_surf.vol_marching_cubes("brain.nii.gz", threshold=0.5)

# 2. (ndarray, affine) tuple — supply a 4×4 RAS+ affine
v, f = cat_surf.vol_marching_cubes((array, affine), threshold=0.5)

# 3. any nibabel-image-like object (.affine + .get_fdata())
v, f = cat_surf.vol_marching_cubes(nib.load("brain.nii.gz"), threshold=0.5)

The data is auto-converted to float32 (matching the C library's expectation), and 4-D series default to the middle frame. No copy is made if the array is already float32/Fortran-order. Internally a minimal nifti_image is built from the affine — only the fields libCAT actually reads (dims, voxel sizes, sto_xyz).

Registration

Function Description
bbreg Full BBR pipeline: optional NMI init → boundary-based surface registration
bbreg_detect_contrast Auto-detect T1/FLAIR vs T2/BOLD from WM/GM intensity ratio
volume_register_nmi Cross-modal rigid registration via Normalised Mutual Information (≈ mri_coreg)
volume_register_robust Same-modality rigid registration via Tukey biweight M-estimation (≈ mri_robust_register)

Basic BBR usage

import cat_surf
import nibabel as nib

# Load surfaces (GIFTI or any format supported by cat_surf.read_surface)
lh_verts, lh_faces = cat_surf.read_surface("lh.white.surf.gii")
rh_verts, rh_faces = cat_surf.read_surface("rh.white.surf.gii")

# Full pipeline: NMI init from T1w reference, then BBR
matrix, cost = cat_surf.bbreg(
    "bold_mean.nii.gz",
    lh_surface=(lh_verts, lh_faces),
    rh_surface=(rh_verts, rh_faces),
    ref_file="T1w.nii.gz",     # NMI initialisation
    verbose=True,
)
print(f"BBR cost: {cost:.4f}")
print("EPI → T1 matrix:\n", matrix)

# Save the 4×4 transform for use with FSL / ANTs
import numpy as np
np.savetxt("epi_to_t1.txt", matrix)

Standalone volume registration

# Cross-modal (EPI ↔ T1w) — NMI
matrix, nmi = cat_surf.volume_register_nmi("T1w.nii.gz", "bold_mean.nii.gz")

# Same-modality (T1w ↔ T1w) — robust IRLS
matrix, res = cat_surf.volume_register_robust("t1_ref.nii.gz", "t1_moving.nii.gz")

Contrast auto-detection

# 0 = T1/FLAIR, 1 = T2/BOLD, -1 = undetermined
contrast = cat_surf.bbreg_detect_contrast(
    "bold_mean.nii.gz",
    lh_surface=(lh_verts, lh_faces),
    rh_surface=(rh_verts, rh_faces),
)

Conversion utilities

Function Description
arrays_to_polygons Convert NumPy vertex/face arrays to internal polygon mesh
polygons_to_arrays Convert internal polygon mesh back to NumPy arrays

cat_surf.cli — drop-in replacement for the CAT binaries

The cat_surf.cli subpackage mirrors the CAT_* command-line binaries one-to-one: same names (snake_case, CAT_ prefix dropped), same positional argument order, same option semantics and defaults. Each function reads its inputs from disk, calls the in-memory numpy wrapper, and writes the outputs — ideal for porting shell scripts to Python.

from cat_surf import cli

# CAT_VolMarchingCubes brain.nii.gz brain.gii -thresh 0.5
cli.vol_marching_cubes("brain.nii.gz", "brain.gii", threshold=0.5)

# CAT_Surf2PialWhite central.gii thickness.txt labels.nii pial.gii white.gii
cli.surf2pial_white("central.gii", "thickness.txt", "labels.nii",
                    "pial.gii", "white.gii")

# CAT_SurfDistance -mean surf1.gii surf2.gii out.txt
cli.surf_distance("surf1.gii", "surf2.gii", "out.txt", mode="mean")

# CAT_VolSanlm in.nii out.nii -strength 1.0
cli.vol_sanlm("in.nii", "out.nii", strength=1.0)

The full mapping:

CAT binary cat_surf.cli.<name>
CAT_Surf2PialWhite surf2pial_white
CAT_Surf2Sphere surf2sphere
CAT_SurfArea surf_area
CAT_SurfAverage surf_average
CAT_SurfCorrectThicknessFolding surf_correct_thickness_folding
CAT_SurfDeform surf_deform
CAT_SurfDistance surf_distance
CAT_SurfReduce surf_reduce
CAT_SurfRemoveIntersections surf_remove_intersections
CAT_SurfResample surf_resample
CAT_SurfWarp surf_warp
CAT_Vol2Surf vol2surf
CAT_VolAmap vol_amap
CAT_VolBloodVesselCorrection vol_blood_vessel_correction
CAT_VolMarchingCubes vol_marching_cubes
CAT_VolSanlm vol_sanlm
CAT_VolThicknessPbt vol_thickness_pbt

For composable in-memory pipelines, prefer the lower-level cat_surf API directly — the CLI shims are just thin convenience wrappers.


Typical use cases

  • Cortical mesh processing (resampling, smoothing, metrics)
  • Thickness and folding related computations
  • Volume-to-surface projection
  • Denoising and volume preprocessing for structural MRI

Citation / provenance

If you use this package in research, please cite Dahnke et al., 2013 and mention the cat-surf package version for reproducibility.


Source

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

cat_surf-1.0.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

cat_surf-1.0.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

cat_surf-1.0.9-cp313-cp313-macosx_11_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cat_surf-1.0.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

cat_surf-1.0.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

cat_surf-1.0.9-cp312-cp312-macosx_11_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cat_surf-1.0.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

cat_surf-1.0.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

cat_surf-1.0.9-cp311-cp311-macosx_11_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cat_surf-1.0.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

cat_surf-1.0.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

cat_surf-1.0.9-cp310-cp310-macosx_11_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cat_surf-1.0.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

cat_surf-1.0.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

cat_surf-1.0.9-cp39-cp39-macosx_11_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file cat_surf-1.0.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d8f7d2c5386410fb62218cedbbee7c15508e2b4e80c92362f738f6ee1e34a56d
MD5 bfd737499f8578442fc0d127724e728e
BLAKE2b-256 dc4943b752b84e5d97c580729579e0c55d805c5cc2a417be674872a0f72d9d9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1a7ffb73ce956f5f220eab84866d8340348f70bf89312ad92473bc4126b004e6
MD5 3c6179d50b23a45e2fdba42ecef5263e
BLAKE2b-256 fb4dc3f3246af5d7b84588d8325fdbb7488e6805725e386f408d20594108a724

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06688fd84ca624aa6c386002128dc16aa2df415b47273ec79c81fb7afd91e5eb
MD5 b8c041298dad32e6c81bba071e68dab1
BLAKE2b-256 d6c846db994982c26e60d4b8959638e717411078dc2c61b85c9f6eb6de96ad59

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ab47b8cf724cd59acdf55caee88c0667dfa9f06428a59cd2911233cd7815e33c
MD5 047d6ff35c766a704be93462a6156381
BLAKE2b-256 e346faf548266212c673298456713a5a3fd2666dbf7631eef6a91e920f5b773d

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ce7652c7b895028a6985f06cea23f2782757c009e9b79437161378a2cb9fed2d
MD5 a89c26a37112907989cab3eb6ae0fba8
BLAKE2b-256 3f2f55f4733dc1416cac765d93db6e87d3e1dd7acb9b85d66aac48bc0e86ae62

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8503f6448bd0a2b7c806280974015875eb3d8f3a7c04bf7e64baf8f18e34a74b
MD5 a2e455457e550d914319711404ec7543
BLAKE2b-256 2a3879fa923062459bf85c0b806dbc2c55e1e139f38d31637f47a871ecb64c50

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef30ceae05592b40e4cb1cf8b55ae0908183ce7ac1ba9f733bf7e98a80eeb63a
MD5 175aca4080244d2991612c6db3cab0e0
BLAKE2b-256 51491fcd4ea32c2134fa3b2c9f79204e64a5042e7808668b02e231632895647f

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6810c3eaaf604a806e986260d46a4d6f6124cf8a17c3b8af10ff7bf7bc8aef58
MD5 524e0186a04faf3e69dc5bfb0425cca5
BLAKE2b-256 2b71cbb8f9d0af4826af09f3afe8fb17ce09db1aeb7678de734118886bebe11c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7527a20d6f5937b49aa8d4cf96269c992a5758caa3ed7468c9ed0af5b6c029f6
MD5 cd3bf5bf70126a56206465c1cb8d0f39
BLAKE2b-256 21f9a34de768ed65955675b7d46d040de162f40bb9d4a99a7e7235d3b7bac5eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b03c0fa122fba65032123a1d360069a6f68ddd59a94dcff24f98455f511f6a04
MD5 4e48b6dd85179cb46416b2dfafda8afd
BLAKE2b-256 01645b4932aec107fcc36e896a9e7527df00ddc2f23dd851ce96086af84fadad

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 11dcae9b1a4f8a41a6444f7090727b7826a000c72055205f8d288eaedd104b65
MD5 341498d91745798be81883215717235d
BLAKE2b-256 f6263392945a12e0c5f6bd12756b4287bd45fb5ee563b99dedbb912be033abe5

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b23b54476c52c70d62c102351ef1a0cd7b6187d27edb01bdc888646a5a0c2b74
MD5 b24be9d57a87afd6fad1030740fc3def
BLAKE2b-256 bbbae65081b7e297af941ee73498a4d44fc74c886a95b249bf8038bc3c5b479c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 35dcab6ffc580731f0971c546ed1cd4277a1fa322fc8d119f8824b5fe50a2f89
MD5 90ca392734aacc4093f99ee1792b8995
BLAKE2b-256 060c44c938292872d6220a260035d251cf942bc7ce5bb4565ffa396ac4fa8da3

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 807058bc188d18b50667252037a2468d17fb814295b299d7ac68adde01e4ce83
MD5 a4b3c6df520f6d220645fbee8d71d63b
BLAKE2b-256 487d21ba5c8e25b8c4330b018fd1cc1962e2ebddfe4f460c6a904b6217e4e690

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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

File details

Details for the file cat_surf-1.0.9-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.9-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e9b4c69ab805d914e8f37c463384d2869d943223e3184ee08cca161acaec2a14
MD5 26f3c5f9aec412122b0855d8249d7936
BLAKE2b-256 165430391a172c961fc2aab8eec6d054c4727dc2a8f13f53ace77f2c70137404

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.9-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on ChristianGaser/CAT-Surface

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