Cython bindings to the CAT-Surface library (libCAT) for cortical surface analysis
Project description
cat-surf — Python bindings for CAT-Surface
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cat_surf-1.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 7.5 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90550c102200ae941a869bc855a5c161e9768c9f3e469ed64dbf14cb2fd21e88
|
|
| MD5 |
a008f3b8594e50f9ec6cd1ab0bdddaf1
|
|
| BLAKE2b-256 |
30057a13ae23fb3b33cf55659d3c2fda9a5fbd867d5d2988b67dd0827d0af83f
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
90550c102200ae941a869bc855a5c161e9768c9f3e469ed64dbf14cb2fd21e88 - Sigstore transparency entry: 1524614570
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 7.2 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17bcfea5e05fb91186b3f6e30bb7067576fe51616679381976a460b053aa4923
|
|
| MD5 |
e06e09c6527413b7ee2102b30f3ba0b7
|
|
| BLAKE2b-256 |
f8d5933258eb2f492d57ea7edfc52abae9bfbcc4d11248423c67d723ace67b98
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
17bcfea5e05fb91186b3f6e30bb7067576fe51616679381976a460b053aa4923 - Sigstore transparency entry: 1524614514
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e69a8155169acd2599ea97a8137985aac7437b264bbdac44fd4e37e8fb7b335
|
|
| MD5 |
47c35860ddbf4cab776900158cae25ff
|
|
| BLAKE2b-256 |
8effb504b4a2379536894008342ff1fd931d3242c2875ed552e67e671c561e73
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
4e69a8155169acd2599ea97a8137985aac7437b264bbdac44fd4e37e8fb7b335 - Sigstore transparency entry: 1524614527
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 7.5 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
333b100c39d8965fe2d55e114b2e7039b1654d11787fbf5566168df915afddc6
|
|
| MD5 |
05445520e7bf6850d847481e9a0461dc
|
|
| BLAKE2b-256 |
a67ec544bd0b3d0e2449308ebded44296fe8b41d469e0da7c1660e5d7b1a8662
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
333b100c39d8965fe2d55e114b2e7039b1654d11787fbf5566168df915afddc6 - Sigstore transparency entry: 1524614457
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 7.3 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
749104ffd7fc251355b4e3c413800f8e9d336fc8b2f17e51287abfdbdc180ecc
|
|
| MD5 |
f8fc90c904f0a785057b0f8852c4d601
|
|
| BLAKE2b-256 |
9e5824c7f05f4e9aa232cb65628664eb58d0b1c4861c819dc3d1a373686dc723
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
749104ffd7fc251355b4e3c413800f8e9d336fc8b2f17e51287abfdbdc180ecc - Sigstore transparency entry: 1524614550
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff665c24415a63cd7a21d2373747e00c0b8d18aa364cb47c7163a3a082e33bc1
|
|
| MD5 |
c368b8f7ba824d7aa4cae4bde30c00f2
|
|
| BLAKE2b-256 |
2a025d4062d48e3c548c5ea9d8204028f6ebd3ce546e1e0ca53076bfe9e7115d
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
ff665c24415a63cd7a21d2373747e00c0b8d18aa364cb47c7163a3a082e33bc1 - Sigstore transparency entry: 1524614713
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 7.5 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb99e5f3671a5f3499c46d82905eb0723fb319cd95be8719d39a405e5dbf8aaa
|
|
| MD5 |
8c9b3932549abae22b433377a617f4ab
|
|
| BLAKE2b-256 |
9535f34ba167123073e25a7e80cf6aa553aeefbbd60dc17d5ba6802956f98c3c
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
fb99e5f3671a5f3499c46d82905eb0723fb319cd95be8719d39a405e5dbf8aaa - Sigstore transparency entry: 1524614449
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 7.3 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
538d0acec2b9809ea2625e6cd01c6a6cc9a1d940915a7410e29179248d50eab7
|
|
| MD5 |
349d1452e28be432c323f017876622ce
|
|
| BLAKE2b-256 |
f2605476607706d105034f83bf7d4107c297dc3f081ae985531bc92adc1a6006
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
538d0acec2b9809ea2625e6cd01c6a6cc9a1d940915a7410e29179248d50eab7 - Sigstore transparency entry: 1524614596
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6efdeaf53449ca22abccb7e998249a3e033db9b4ee38db9d7df7cedf9126ddd7
|
|
| MD5 |
dea25d235d62318691e76f54ca27eee1
|
|
| BLAKE2b-256 |
2d954da3f6880bbd433b0283f0849b6d98dcd303dbed1824e0be892001a68d4a
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
6efdeaf53449ca22abccb7e998249a3e033db9b4ee38db9d7df7cedf9126ddd7 - Sigstore transparency entry: 1524614582
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 7.3 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34e040cdb13454f89f150a8510820ff93fbcc6438b3f5c4d3739e3a4b231ea45
|
|
| MD5 |
79eb4a130445b54a13852cbb5ffd1efe
|
|
| BLAKE2b-256 |
fce09c5f69aed58273ec07a41dc85bc5366a876e23ad3a0448c296407252fb61
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
34e040cdb13454f89f150a8510820ff93fbcc6438b3f5c4d3739e3a4b231ea45 - Sigstore transparency entry: 1524614656
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 7.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1423af58381911bfd57b3a6bad0842498c354b989782af51cd4d154045f66d73
|
|
| MD5 |
d9e269fa41be560bc4b5a35be4bd8075
|
|
| BLAKE2b-256 |
4dc8d97c32bf667df353d1f6fda0cc270bee38b63f6393cd8383f6301bb938f9
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
1423af58381911bfd57b3a6bad0842498c354b989782af51cd4d154045f66d73 - Sigstore transparency entry: 1524614629
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a731121b0e6bbb0e9e497325b01d193619801891f66f0fe4e263efd277db909c
|
|
| MD5 |
5621d431be048c4a404340bee6cf8783
|
|
| BLAKE2b-256 |
c19a5afc35c16c381f43eac0e4bce11ef1f7afa67a094a92cd07a5e37f5c44a8
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp310-cp310-macosx_11_0_arm64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp310-cp310-macosx_11_0_arm64.whl -
Subject digest:
a731121b0e6bbb0e9e497325b01d193619801891f66f0fe4e263efd277db909c - Sigstore transparency entry: 1524614467
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 7.3 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88973aef21d8bb6a32f5aad8767380ca885ce1123114917c06792b512de13fe9
|
|
| MD5 |
9a635711862d1993ef03408727605121
|
|
| BLAKE2b-256 |
f65937d4013ab7551bd521a9bdd8757125c2c2d293135f0ec0aed2862d91979f
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
88973aef21d8bb6a32f5aad8767380ca885ce1123114917c06792b512de13fe9 - Sigstore transparency entry: 1524614519
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 7.1 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
812a5a8bf5fe996340be1e6cbdf75680bb2c694b5d816e5303f27c490d0ae9c7
|
|
| MD5 |
365467a6a612f91c3bf54192299ebc8d
|
|
| BLAKE2b-256 |
e9b5e3b8b79e8354ec1876fc4bf4b248a0a23ac1bc5b59a1c99c685f7c3cb0ea
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
812a5a8bf5fe996340be1e6cbdf75680bb2c694b5d816e5303f27c490d0ae9c7 - Sigstore transparency entry: 1524614477
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cat_surf-1.0.8-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: cat_surf-1.0.8-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.5 MB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4c29d9e2c5fe73ab7cb04153b0eea6715f1e1c87535eb25de28b271cd357dd1
|
|
| MD5 |
caf6d93ed0a84e8d554295036390cd1e
|
|
| BLAKE2b-256 |
a0499874ea7fc24972a2d2420ae938baefe9222a0617e3e94e8716cbe424afc6
|
Provenance
The following attestation bundles were made for cat_surf-1.0.8-cp39-cp39-macosx_11_0_arm64.whl:
Publisher:
publish-pypi.yml on ChristianGaser/CAT-Surface
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cat_surf-1.0.8-cp39-cp39-macosx_11_0_arm64.whl -
Subject digest:
c4c29d9e2c5fe73ab7cb04153b0eea6715f1e1c87535eb25de28b271cd357dd1 - Sigstore transparency entry: 1524614681
- Sigstore integration time:
-
Permalink:
ChristianGaser/CAT-Surface@962c5e25099389e1f1520536035b870a9b0204cc -
Branch / Tag:
refs/heads/master - Owner: https://github.com/ChristianGaser
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@962c5e25099389e1f1520536035b870a9b0204cc -
Trigger Event:
workflow_dispatch
-
Statement type: