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

Uploaded CPython 3.13macOS 11.0+ ARM64

cat_surf-1.0.17-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

cat_surf-1.0.17-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.17-cp312-cp312-macosx_11_0_arm64.whl (5.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cat_surf-1.0.17-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.17-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.17-cp311-cp311-macosx_11_0_arm64.whl (5.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cat_surf-1.0.17-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.17-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.17-cp310-cp310-macosx_11_0_arm64.whl (5.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cat_surf-1.0.17-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.17-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.17-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.17-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fae558be0268f4aca5028b6bdfe2cf28f89d37519c85aa9aeade1af29ac15d33
MD5 afc7fece187f9b64488773d1b1354f2f
BLAKE2b-256 908a56d332e50131d437500a1c5a027f5521610237852c129f07f70cd399cff9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 85f968cc215be562193a4b595550358f05d5b2bd594592e6da2f66f1833af44b
MD5 b44d0110725a5ba678c5da0a678b012c
BLAKE2b-256 962b22114639ced53701cbea07eacc3930e31b02b3bacf977a3e28c0780ff75e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 652cf46de0e3cc6744ea112d7eddf7a96dfa895255a4428b6eed11d164b31ffe
MD5 7e1c296e43fdeda38e57face510e9516
BLAKE2b-256 ccc2ffceea4383e3fb4c5444ea8b17c84078657d756c63c8327894fcb9b2c25c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f985d6082e82ae1dea2063591151a340f5b0cedb487b4f8b7c12f61430b05421
MD5 49dab06a8f4e9ac567471725a7fecff1
BLAKE2b-256 cb83314f73b38a12702856cd29390225c0dda14e4be289db644b39bc51d22fc4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 529a5d107d0d50b0ab91c5cdfe6d97fa9b26a8c3f2c91849a146d1941a9632de
MD5 f45e087ffd6158fbc2e6d66dd97da29b
BLAKE2b-256 f9bb8ea8a2920596fb4711676fa52a80422c68b45b8ae3e123125356f9b86910

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06fcfb0a73c93cc822c61a3ba2524f5d78ccca874c80064462a2de442dc8e824
MD5 56ec57a15104de814eb8f2b22a1dbf67
BLAKE2b-256 b79187d5739d8213df07c71742fc704016ff17fd6b4ad8ede4295006e8677a72

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c05437c8b12591aa05a0975237fb4c547ef1b400423c175abcbe9c4eca2ab4f7
MD5 a494f038db9f15b220d0386ef2a3cddb
BLAKE2b-256 43b01a5b452408bef79d673395a7da318ff8fc15d5af914c1380ef68e030e2cf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0791c4391b75dc89a2f5eefa078f6eb8c73337b10ef714b4ad517c941a348240
MD5 586d0ed3c8889bade698f5fa8fa3d4a7
BLAKE2b-256 fbe9cad32d481456a4e1082aa517c451e438c32d4c308dc3d51cede179b6e908

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 69e41bfb31fadcd61670bf0dc56c3a0fb7539bb56deb087f893dacb60dd936f3
MD5 3444e1a15ebf0a1c9003656ee8adc8e0
BLAKE2b-256 135351235bfba103a95dce99c220c1d55a5ceb315ddaa9a6dcf0f47384adb99e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 73052903781dd7735e2a7ed2214c10e34eb79cbc45f8da545bb326fd65a87e37
MD5 87672c4fadaefebd60c0d5c39c9b2c07
BLAKE2b-256 86f2856db25eb2c9cd2a4d285f2cea5c5b2d5ceab82d95692f09dc2edc512ad9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 22f42f9094490824bf5e9cd6be3c79103ba92b887d65f4d7ed9891dd25ccae47
MD5 f0aa0c4b8b083e7af812090a19e31d36
BLAKE2b-256 83a865c2dbec081425fc6d17f19afff80f853e2c2ac5176d44f12b9e09280387

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3afafa619cd3e8d43b44705561fbdf86985e0fc613b1da5d25d43f0205ca01b7
MD5 b25aaa4bb44d149a4f12912dafcf2040
BLAKE2b-256 07a8d1527cbae447b51901da9c4812db936f6a9328b0ab84a9a40d2bb75f8c37

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8da2cb83a6988f48e011239b8e11a79ecd6954bedf66d5ec06bf6de421453565
MD5 922833b3bb9c1734faa6d5cc1ba3f617
BLAKE2b-256 4eee29bb6b0b292eada8f4d576344b0b482d6449bb6641c8263c7bf2e7c0dbc4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 801a1a773ba2a2c91b1bcd3757916dbbe52caddbf6475f37d4a1917c13e5fb01
MD5 e7eac95193fbeba6af12c180c0fe8529
BLAKE2b-256 a9cd03f1910c774cdee2e009ec9e9b9c5b1354d9087fc2ceb4e871b8357a79ae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.17-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16e3c877fdac5d3103d6d9374bc4d2b0b5aa59848d525eaf03d5da973809bf37
MD5 029db43451d0176417e5986ef2c77f76
BLAKE2b-256 4e0068116f52faf0f18c0c600909cb2e7f3d1b59d4dcb8b8c331500f08570975

See more details on using hashes here.

Provenance

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