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.11-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.11-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.11-cp313-cp313-macosx_11_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cat_surf-1.0.11-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.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

cat_surf-1.0.11-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.11-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.11-cp311-cp311-macosx_11_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cat_surf-1.0.11-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.11-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.11-cp310-cp310-macosx_11_0_arm64.whl (5.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cat_surf-1.0.11-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.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

cat_surf-1.0.11-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.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 94fa67cac7b4aad098987ba963e984d070d6c2c173ea5d34a89f869390fa36f6
MD5 b772c2e101fd231ba6af8ebfaaceab4e
BLAKE2b-256 84960a9e03bfedd4bfa2145eba1bd6b81b175eb8be7c4ab8ad1f037ab30b777c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0af03ab465f0a82cbc8b7b2774354b446b8fd03cb8061ddae89d414c274d9e54
MD5 2cc5d68b201a03e592feac19746921c2
BLAKE2b-256 07ed8329597cf32ac73a68a368e2b91b51dde287ad6dd4e46b5d9102b045f949

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c55067b7cb6aecc7e0fbed14b0a6f2f9d70486bb0eea0cee510a7bb66ac63302
MD5 eae7455d15e6760a600037b36ca30451
BLAKE2b-256 ab3e44b8dfb8ba19466a3831e4c7ce1096c4d9fbabd6c2f20d5844292000d4df

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7734aa97bc2d98bf5b555b79eea2e589c6560398f888b6736f1d26ac800c60c6
MD5 8b3335a29ea37dedb2c150de82228468
BLAKE2b-256 0ebe0c5cbd0bb48188bcef29ec08c299680dc4671adb1232e76dd8e6b0559b4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 32a1362f9251f4271a25105f9440d6e02b56d78af8ac033f24a9cf04f80c94dc
MD5 8d8996091553ba3b8a7f5b796818699a
BLAKE2b-256 9234595eaf098269a76b6e0757cb089e54f8afdb7a8134d14b3f512d20f530a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 10a90c3d339e528ea28d3468343c299e72904f4a57901155b10dd9f9748bc977
MD5 b6d4e0b4e6e0a8b863ec108e9bd37e2f
BLAKE2b-256 9b1bb3c8c0ef2af594c459a5406ff78de8c58af606af301fb0bd81eefa092437

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a51140d13f9d34888744aafd3467c8f0457de98b65bc8b79172aa52b6c5d08aa
MD5 4f2ef5fe538f17811a393c79022e3a8a
BLAKE2b-256 937b37d67ac71e2949040ed2489228b43d3c8794d498f404c0c8be2090d38989

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9cc67aaa9f678c0b9df77c59a7f2fdc9bb185967255a65c0d42b62e91d683e72
MD5 6ccf00509845b18b6fbb26112cc7ed96
BLAKE2b-256 167405e32f78207892700b2238f39d4b6f8372b1ee7816a9bd46191f8b3dbd39

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea8633a94736db94dfc919065de3ae7eb92abfff7454a0ff7f48e74796c645b4
MD5 7011ab36a3b4dfbf7074d9b4f17db669
BLAKE2b-256 720bcb2cb16585d4cdca43e5190e1f4733d0ef9454d254a84f5bd3fe426ea394

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 85ea5b63a5ce4b9f3b850dfbb62b097cb5bcba2c3368d49ac115d34010224f3f
MD5 90ddb3655d0c13d8c8da59bf98192a02
BLAKE2b-256 caf55399ad30c110feee9e510788ca568ba166f6625dac0dc21f94c35bd0b137

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 db883f0a7becb9811022ff96665e365432d37e354cf33fc4eb05f46d71c115eb
MD5 93cee2b686383aca8c7e71fda79f494f
BLAKE2b-256 03e637bc0ae114b05698e6717f8462f0fab52c33e9934fb63589e998750c2627

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bd3016291316cca58e87f64d5ae7fdf82d1f51885a9d0f4966c9f025217ad623
MD5 5a0793a1543d6ee668b999c5b6f45e7e
BLAKE2b-256 0cbbbfec3b1bc9d174d0d8da955e0c248753f28323f2dca2d959be82522b2fdc

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bfa9df444c9de96217fcf155342b682935d42b31cb0bb70e8f1bf637dab85a33
MD5 cb5edcd8acf6df5a56d4a3d52be888eb
BLAKE2b-256 35488d9f1989e30653015ee07dfda5e0b7bd1a286eacad5ca8d34a6608f3625d

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9ca779915995b6423df35651415ac320df365e14971c7eec82f46319fb58dc9f
MD5 92921e769c649d030188cc1190f51d0b
BLAKE2b-256 41e60a0c7106b9638c08fae4532ac0b04f1ceac50fcb1624078fab02a3dae7c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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.11-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.11-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0ccf16c241100a0c5cee4609370452942ede9dafdbc3946786918c4fa0894943
MD5 23a57b0eb6989fef21e3a52bf2f99cef
BLAKE2b-256 6b6ec47b25532d7d6c4a7c894d4ebbfe47040701bfbea9f876ce49dc47662d42

See more details on using hashes here.

Provenance

The following attestation bundles were made for cat_surf-1.0.11-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