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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

cat_surf-1.0.18-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.18-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.18-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.18-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c8af11daaf543c67597fbf6fb13b74b57fd3d8f66a6920b817d99899a81e602f
MD5 75d6712dd7210b5e704d2a2f8e577c37
BLAKE2b-256 9913b99793ed7e7a7419fe49775c8ba76bb3ff34f67309e7577db23d8084ccb8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fff2d81f018a46b9467aca3b414ca0e291c0a29f18e0b1c783a791c8768e4e4f
MD5 114753716062a3030e19e09e950cc5b6
BLAKE2b-256 b1542713ae80d3b2ebe3ad5df4c9dd54d11fa0ca25f86da8b0186a6beaf0a178

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a8066090a3ff3dd54f0c3b17ce63af8243dc212a0289c5e9ac60a91479468ce6
MD5 6873cceaa7178f2f72a0f11b32431796
BLAKE2b-256 f0e99a6421e58713cee1e0e09ce69e77a8b7d84d236db3196fb16458b2b52dc7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a3ae36535b9175efc118849febc747b52f9f418fdf7889de1d91bc23e2c6afe
MD5 77e5ae56b748018d9bb94abee573d245
BLAKE2b-256 2fbfa87906a066f3fabf61815f190752c95d5916bc76e92526465f5c81ff147c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9405c7a3aad0856bf22d3547dc36dc76201ff2e0d9aebd708ba7fb3b461630d1
MD5 f69426ac65de46451555fa41e202d361
BLAKE2b-256 f00d086f6100f3ce54e64e0c80e514c3a266cedc4b89179222d52ed9f0c5d5d9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df444a361b752dde681187d11ddce8eb9c29898ca677c546520806d77cb701fd
MD5 94e1143baeda9e39280c7bd4f92fbb0c
BLAKE2b-256 dc9e3961236af06e06b35a961f072d97a8b1b660e98e57092681bdbd6db7ece0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9f8a6d20daa90791273fe7faa32d0fe10298dec66a2ccb6963a05c3a8c6b6a8e
MD5 20615b1478f33ddf05176ed5bfba6f74
BLAKE2b-256 9c438c8a71174f1fdc8f88a38fa4d504aa780ee951810b20cb90ac1e13331d96

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 103e4a94a96efe46b59eebf7b129d8f4ab59dbd61baeb502e9a8cbfd50ef865a
MD5 5e18e53ead9c9dd8ee9dd7d1eb6299dd
BLAKE2b-256 867539d2724afe9738934783a3915448ee4dd982f26083fd5e2ca7c6a1f8acfc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c2be4dc45a794c8c25c8b35b269db932c460bbfb11ffcde88301865f09765a2
MD5 ad5253ecb833c9afcd2f537bbc898f41
BLAKE2b-256 003d4159d259f267fca393efe65fdc6a3cd11327c9488b3e972e827c0ace10eb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f32d0102d02d74b33c835d67339183030c67c02921d23cdb0747446e1dc78321
MD5 d89d20091190f3c92a82de46a6f2850c
BLAKE2b-256 b54f158ee6ceb95561c96252536cb3aa053e3876f2570f80826e2f4b680059c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bfea57d443c219eb4971859f86d730b7de8e43ab9d868c9fae1df5a55cd9e95a
MD5 f114a798fbf64ea6e7895f571acaf46a
BLAKE2b-256 59fdfff4d56cb6c41f15c2163ccd83cb2237e5ee24a6acec9eb4c9a0ccf76b31

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e7cd5277576b6c04caabaa8f35d474f87a6268fde3fa4dbe0b9dbe1356436f2
MD5 55994c90e6ffd4a6a844ed7954b55857
BLAKE2b-256 63aa152c31fdbebdc0c813a62ee190bb527d36544806c7e4c486351e27b3529f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 33407cad655f568a26ea64e75b300800bf282334fb3ab6325e1db331a74ade9a
MD5 3247274ec73ebda2bfc676f9d60f0dff
BLAKE2b-256 c3118a6c204c55fbdc4071fb1bb4ba97345f4cb05e110cff2ca9d660c77c231b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d47ac071e8cee5a8fe98208eebe256b4c71ff37cc491a35682910453a6b53b47
MD5 eaa29d818eacb61ef1e169d77452fb59
BLAKE2b-256 dc8c4c4c9d04ebee3ed08f8013ee1c6eac8f19ff5d4a8241e227d23e14649fe7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cat_surf-1.0.18-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d6ff5bbb876d28590bea3f774ff79e9962830bdedf33cf2a0b777a5e7a4866b
MD5 bb38ccfbbc075e27264c89ed037afc4a
BLAKE2b-256 6f6f217280537b88e1b963caf57eb2c1102f0d286c6b4cebbc8aeb1fd8c7428d

See more details on using hashes here.

Provenance

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