Skip to main content

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
fix_self_intersect Self-intersection repair (topology preserving) CAT_SurfFixSelfIntersect
count_intersections Count intersecting triangle pairs CAT_SurfSelfIntersect
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 (remove_intersect repairs both) CAT_Surf2PialWhite
central_to_pial Generate a pial surface from central + thickness
surf_warp DARTEL-based spherical registration CAT_SurfWarp
spherical_demon Spherical Demons spherical registration CAT_SurfSphericalDemon

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 -remove_intersect central.gii thickness.txt labels.nii \
#     pial.gii white.gii
cli.surf2pial_white("central.gii", "thickness.txt", "labels.nii",
                    "pial.gii", "white.gii", remove_intersect=True)

# 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_SurfFixSelfIntersect surf_fix_self_intersect
CAT_SurfResample surf_resample
CAT_SurfSphericalDemon surf_spherical_demon
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

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.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

cat_surf-1.0.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

cat_surf-1.0.15-cp313-cp313-macosx_11_0_arm64.whl (5.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cat_surf-1.0.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

cat_surf-1.0.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

cat_surf-1.0.15-cp312-cp312-macosx_11_0_arm64.whl (5.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cat_surf-1.0.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

cat_surf-1.0.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

cat_surf-1.0.15-cp311-cp311-macosx_11_0_arm64.whl (5.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cat_surf-1.0.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

cat_surf-1.0.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

cat_surf-1.0.15-cp310-cp310-macosx_11_0_arm64.whl (5.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cat_surf-1.0.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

cat_surf-1.0.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

cat_surf-1.0.15-cp39-cp39-macosx_11_0_arm64.whl (5.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f6e91af2ea7d09175975e6c2ce124af498ccc67afb481ecc5cfa5b7af8d3df03
MD5 e87a61f576220e1d691c0d98f5a73b09
BLAKE2b-256 2b6e644b1b4895b28baeb80effd2fc3c1a7c5f1cc670128ededbf7dfad4af4fc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2c5fa1699746562ddd82786dbd3fce3ae4b3d45e7db462af37a303e3a92f32df
MD5 b77c1a19a4853c9d523d80b54b3024a6
BLAKE2b-256 015d3f6d0cfb434b740e741a68b56971658ddc07684df33b8365096cc5258b65

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0600d04eb6a3e36d87b51d36af07efcbdd55c83245254d23293932e6ed5e3a14
MD5 1a6279aef0b1b175eabac7df7d481536
BLAKE2b-256 b9ac3c4bc7595551fb475ad7466c10fedcf3ee6e813bac9181a38c28516a90a7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5e9d821f0c7f7c8273be2fb96c758c1b5873ee8f574c1ae8b4e90fff915b5a04
MD5 5dd87837e914c9d80f34be28b02e4cc5
BLAKE2b-256 e986675fcddf1e39047f9e9936b287eb1fc9445f2948a17655a9e78e336e3f69

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e540edea8859083137b5a5b7589dcc61627bc3da16ba7f52adc3257e9c884eac
MD5 d10bfa20c12ff8b695f4908499b51d55
BLAKE2b-256 2cbac17b4243a51ec2a5a838bfc4e579ad6f7ce76098d3550d0b7c03bf26bbbf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00454b53dadd1fe049cac42bb47abb96e0276a24e3e52cf343e0065769d3599f
MD5 58bce23c96e5eaec22b8188c38c1c956
BLAKE2b-256 93b6c64896735ba9fc6ef0cd938386edced5e5e2230c1c2464219cbddef30cc4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 28ac481353cf0c2cd2b94d0844f052bb4b738a22c713226089b5dee705c2759e
MD5 91f30869af4482c5a85d77ff4b90b564
BLAKE2b-256 a9ac294923df8ca70dcbe27596499cc0c032ff06e870b6adbfd69d80ccd710d2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 34caf7fdbb1d52b19e333c0763fc413e6d1b7ca7241b762451415da9b7a63ef7
MD5 ccf570d124e471ba617ec38f7ce2b3c4
BLAKE2b-256 800e9099b31612238b9f0dadf9d79a8a571d6501ddc85d8fffc7b9ac237eb06d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3444708d06602dc90f919f9d16296e3ee12697d1cdc63402c227fb44a58bf2e1
MD5 c0a45096c8ff3d4b4db88e5be86f5d22
BLAKE2b-256 56edee6b4bf559f4149888ed9981efcbd70454ec8d76787a50f10f7907c6ca45

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ecda9f04a0ec358be39e960b1d079a719e9d917da061892e626dea65c09e60fb
MD5 274cea50bfafda2ceb8213e1ef84b160
BLAKE2b-256 7e8a8ead8e69cbc984c047bdfd7ef884f5c6c7b618f5ca6ddbef814dde0e3216

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2c0769f83bf4386643e409d394506ec342371313fdf8207cf17a99f4ba7e783a
MD5 a50bae331f635acd81d4f98acddfb697
BLAKE2b-256 57f0c605b600089df86c8d90e180db61c94795be957ddce170f70e432f834384

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41037af601af0ef4773cf46e35f5b7320d6e0a51e9857dfcd9c0fd2117e69cd4
MD5 f0d183ce5d5c521a3055f5f8c084e7fb
BLAKE2b-256 7cf81f4f776420181a5703311737287f96058983112a1755a6a9e112529d0a1a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7166c8e3fe4fe3e4f91501cc90f926af1080d6388cdb48be79ffa77a651e75b4
MD5 6f41bbfa094d9bc0c74c0ae59554e734
BLAKE2b-256 8d07e9a6e4032635afcc7098969c4e1472723439a71f37c7b6a83f6f6218372c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9bac244970ce241eff742db36e9e0503d3a629a33cbfd562759347e0c009039f
MD5 f7dbc698b66293de9c41a5248fb7ad89
BLAKE2b-256 dbf0cb87c946101bf8043b4dfdcbb3d46d3df14341e92458a4cecda635e565c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.15-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ada5d357e50f34fb8c94302e3e4a190e178f834414b9e5c89b7566b578a5dbc5
MD5 0e4c18e6c7a5651bc098fdfed39da0c0
BLAKE2b-256 2c59a7190cee5326feade5ea5abf21752a6688f77e463e93d7074e2bed632021

See more details on using hashes here.

Provenance

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