Skip to main content

Fast SASA calculation using Zig

Project description

zsasa Python Bindings

Python bindings for the zsasa library - a high-performance implementation of Solvent Accessible Surface Area (SASA) calculation.

Features

  • NumPy integration: Pass coordinates and radii as NumPy arrays
  • Two algorithms: Shrake-Rupley (point-based) and Lee-Richards (slice-based)
  • Multi-threading: Automatic parallelization across CPU cores
  • Atom classification: NACCESS, PROTOR, and OONS classifiers with polar/apolar assignment
  • RSA calculation: Relative Solvent Accessibility using standard reference values
  • Per-residue aggregation: Aggregate atom-level SASA to residue-level with RSA
  • Library integrations: Built-in support for gemmi, BioPython, and Biotite
  • Type-safe: Full type hints and runtime validation

Installation

From Source (Development)

# 1. Build the Zig shared library
cd /path/to/zsasa
zig build -Doptimize=ReleaseFast

# 2. Install Python package
cd python
pip install -e .

Optional Dependencies

# For gemmi integration
pip install zsasa[gemmi]

# For BioPython integration
pip install zsasa[biopython]

# For Biotite integration (also works with AtomWorks)
pip install zsasa[biotite]

# All integrations
pip install zsasa[all]

Library Location

The Python bindings look for libzsasa.dylib (macOS), libzsasa.so (Linux), or zsasa.dll (Windows) in these locations:

  1. ZSASA_LIB environment variable (if set)
  2. ../zig-out/lib/ (relative to package)
  3. /usr/local/lib/
  4. /usr/lib/
  5. Current working directory

Quick Start

Basic SASA Calculation

import numpy as np
from zsasa import calculate_sasa, get_version

print(f"Library version: {get_version()}")

# Define atom coordinates (N, 3) and radii (N,)
coords = np.array([
    [0.0, 0.0, 0.0],
    [3.0, 0.0, 0.0],
    [6.0, 0.0, 0.0],
])
radii = np.array([1.5, 1.5, 1.5])

# Calculate SASA
result = calculate_sasa(coords, radii)
print(f"Total SASA: {result.total_area:.2f} Ų")
print(f"Per-atom areas: {result.atom_areas}")

Using Library Integrations (Recommended)

The easiest way to calculate SASA from structure files:

# With gemmi (fast mmCIF/PDB parser)
from zsasa.integrations.gemmi import calculate_sasa_from_structure
result = calculate_sasa_from_structure("protein.cif")

# With BioPython
from zsasa.integrations.biopython import calculate_sasa_from_structure
result = calculate_sasa_from_structure("protein.pdb")

# With Biotite (also works with AtomWorks)
from zsasa.integrations.biotite import calculate_sasa_from_structure
result = calculate_sasa_from_structure("protein.pdb")

print(f"Total: {result.total_area:.1f} Ų")
print(f"Polar: {result.polar_area:.1f} Ų")
print(f"Apolar: {result.apolar_area:.1f} Ų")

Per-Residue Analysis with RSA

from zsasa.integrations.gemmi import calculate_sasa_from_structure
from zsasa.analysis import aggregate_from_result

# Calculate SASA
result = calculate_sasa_from_structure("protein.cif")

# Aggregate to per-residue
residues = aggregate_from_result(result)

for res in residues:
    rsa_str = f"{res.rsa:.1%}" if res.rsa is not None else "N/A"
    print(f"{res.chain_id}:{res.residue_name}{res.residue_id}: "
          f"{res.total_area:.1f} Ų (RSA: {rsa_str})")

API Reference

Core Functions

calculate_sasa(coords, radii, *, algorithm="sr", n_points=100, n_slices=20, probe_radius=1.4, n_threads=0)

Calculate Solvent Accessible Surface Area.

Parameters:

Parameter Type Default Description
coords NDArray[float64] required Atom coordinates as (N, 3) array
radii NDArray[float64] required Atom radii as (N,) array
algorithm "sr" | "lr" "sr" Shrake-Rupley or Lee-Richards
n_points int 100 Test points per atom (SR only)
n_slices int 20 Slices per atom (LR only)
probe_radius float 1.4 Water probe radius in Å
n_threads int 0 Number of threads (0 = auto-detect)

Returns: SasaResult

SasaResult

Attribute Type Description
total_area float Total SASA in Ų
atom_areas NDArray[float64] Per-atom SASA values

classify_atoms(residue_names, atom_names, classifier=NACCESS)

Classify atoms and get radii.

Parameters:

Parameter Type Default Description
residue_names list[str] required Residue names (e.g., ["ALA", "GLY"])
atom_names list[str] required Atom names (e.g., ["CA", "N"])
classifier ClassifierType NACCESS NACCESS, PROTOR, or OONS
include_classes bool True Whether to include atom classes

Returns: ClassificationResult with radii and classes arrays

get_version()

Returns the library version string (e.g., "0.1.0").

calculate_rsa(sasa, residue_name)

Calculate Relative Solvent Accessibility.

Parameters:

Parameter Type Description
sasa float SASA value in Ų
residue_name str 3-letter residue code

Returns: float | None (None for non-standard amino acids)

Utility Functions

These functions are available for advanced use cases:

Function Description
get_radius(residue, atom, classifier) Get radius for a specific atom
get_atom_class(residue, atom, classifier) Get polarity class for an atom
guess_radius(element) Guess radius from element symbol
guess_radius_from_atom_name(atom_name) Guess radius from PDB atom name
get_max_sasa(residue_name) Get max SASA reference value for RSA
calculate_rsa_batch(sasa_values, residue_names) Batch RSA calculation

Analysis Functions

aggregate_from_result(result)

Aggregate per-atom SASA to per-residue.

Parameters:

Parameter Type Description
result SasaResultWithAtoms Result from integration module

Returns: list[ResidueResult]

ResidueResult

Attribute Type Description
chain_id str Chain identifier
residue_id int Residue sequence number
residue_name str 3-letter residue code
total_area float Total SASA in Ų
polar_area float Polar SASA in Ų
apolar_area float Apolar SASA in Ų
rsa float | None Relative Solvent Accessibility
n_atoms int Number of atoms

Integration Modules

All integration modules provide the same API:

  • extract_atoms_from_model(model) - Extract atom data
  • calculate_sasa_from_model(model) - Calculate SASA from model object
  • calculate_sasa_from_structure(source) - Calculate SASA from file or structure

SasaResultWithAtoms

Extended result with atom metadata:

Attribute Type Description
total_area float Total SASA in Ų
atom_areas NDArray[float64] Per-atom SASA values
atom_classes NDArray[int32] Per-atom polarity classes
atom_data AtomData Atom metadata
polar_area float Total polar SASA in Ų
apolar_area float Total apolar SASA in Ų

Enums

ClassifierType

Value Description
NACCESS NACCESS classifier (default)
PROTOR ProtOr classifier
OONS OONS classifier

AtomClass

Value Description
POLAR Polar atom (N, O, etc.)
APOLAR Apolar atom (C, S, etc.)
UNKNOWN Unknown classification

Examples

Algorithm Comparison

import numpy as np
from zsasa import calculate_sasa

coords = np.array([[0.0, 0.0, 0.0], [3.0, 0.0, 0.0]])
radii = np.array([1.5, 1.5])

# Shrake-Rupley (default, faster)
result_sr = calculate_sasa(coords, radii, algorithm="sr", n_points=100)
print(f"SR: {result_sr.total_area:.2f} Ų")

# Lee-Richards (more precise)
result_lr = calculate_sasa(coords, radii, algorithm="lr", n_slices=20)
print(f"LR: {result_lr.total_area:.2f} Ų")

Multi-threading

# Auto-detect CPU cores (default)
result = calculate_sasa(coords, radii, n_threads=0)

# Use specific number of threads
result = calculate_sasa(coords, radii, n_threads=4)

# Single-threaded
result = calculate_sasa(coords, radii, n_threads=1)

Atom Classification

from zsasa import classify_atoms, ClassifierType, AtomClass

residue_names = ["ALA", "ALA", "ALA"]
atom_names = ["N", "CA", "O"]

# With default classifier (NACCESS)
result = classify_atoms(residue_names, atom_names)

# Or with explicit classifier
result = classify_atoms(residue_names, atom_names, ClassifierType.PROTOR)

print(f"Radii: {result.radii}")
print(f"Classes: {result.classes}")

# Count polar/apolar
polar_count = sum(1 for c in result.classes if c == AtomClass.POLAR)
apolar_count = sum(1 for c in result.classes if c == AtomClass.APOLAR)
print(f"Polar: {polar_count}, Apolar: {apolar_count}")

Finding Buried Residues

from zsasa.integrations.gemmi import calculate_sasa_from_structure
from zsasa.analysis import aggregate_from_result

result = calculate_sasa_from_structure("protein.cif")
residues = aggregate_from_result(result)

# Find buried residues (RSA < 20%)
buried = [r for r in residues if r.rsa is not None and r.rsa < 0.2]

print(f"Buried residues ({len(buried)}):")
for r in buried:
    print(f"  {r.chain_id}:{r.residue_name}{r.residue_id} - RSA: {r.rsa:.1%}")

Working with AtomWorks

# AtomWorks is built on Biotite, so use the biotite integration
from atomworks.io.utils.io_utils import load_any
from zsasa.integrations.biotite import calculate_sasa_from_atom_array
from zsasa.analysis import aggregate_from_result

# Load with AtomWorks
atom_array = load_any("protein.cif.gz")

# Calculate SASA with zsasa
result = calculate_sasa_from_atom_array(atom_array)
residues = aggregate_from_result(result)

print(f"Total SASA: {result.total_area:.1f} Ų")

Performance

Library-to-library comparison (Python bindings vs FreeSASA Python):

Structure Atoms Zig SR FS SR SR Speedup Zig LR FS LR LR Speedup
1CRN 327 0.5ms 0.7ms 1.4x 1.5ms 4.4ms 2.9x
1UBQ 602 0.6ms 1.3ms 2.2x 2.0ms 8.4ms 4.2x
1A0Q 3,183 2.4ms 7.6ms 3.2x 8.9ms 48ms 5.5x
3HHB 4,384 3.4ms 11ms 3.2x 12ms 69ms 5.5x
1AON 58,674 44ms 163ms 3.7x 171ms 931ms 5.5x
  • SR algorithm: Zig is 1.4-3.7x faster (speedup increases with size)
  • LR algorithm: Zig is 2.9-5.5x faster
  • Accuracy: Results match FreeSASA (< 0.01% difference)

Run benchmark: ./benchmarks/scripts/run.py --tool zig --algorithm sr

Development

Running Tests

cd python
uv run --with pytest pytest tests/ -v

Type Checking

cd python
uv run --with ty ty check zsasa/

Linting

ruff format .
ruff check --fix .

References

RSA Reference Values

  • MaxSASA: Tien, M. Z.; Meyer, A. G.; Sydykova, D. K.; Spielman, S. J.; Wilke, C. O. Maximum Allowed Solvent Accessibilites of Residues in Proteins. PLoS ONE 2013, 8(11), e80635. doi:10.1371/journal.pone.0080635

Integration Libraries

  • Gemmi: Wojdyr, M. GEMMI: A Library for Structural Biology. J. Open Source Softw. 2022, 7(73), 4200. doi:10.21105/joss.04200
  • BioPython: Cock, P. J. A. et al. Biopython: Freely Available Python Tools for Computational Molecular Biology and Bioinformatics. Bioinformatics 2009, 25(11), 1422–1423. doi:10.1093/bioinformatics/btp163
  • Biotite: Kunzmann, P.; Hamacher, K. Biotite: A Unifying Open Source Computational Biology Framework in Python. BMC Bioinformatics 2018, 19, 346. doi:10.1186/s12859-018-2367-z

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zsasa-0.1.2.tar.gz (171.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

zsasa-0.1.2-cp313-cp313-win_amd64.whl (183.7 kB view details)

Uploaded CPython 3.13Windows x86-64

zsasa-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (232.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

zsasa-0.1.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (219.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

zsasa-0.1.2-cp313-cp313-macosx_11_0_x86_64.whl (100.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

zsasa-0.1.2-cp313-cp313-macosx_11_0_arm64.whl (93.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zsasa-0.1.2-cp312-cp312-win_amd64.whl (183.7 kB view details)

Uploaded CPython 3.12Windows x86-64

zsasa-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (232.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

zsasa-0.1.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (219.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

zsasa-0.1.2-cp312-cp312-macosx_11_0_x86_64.whl (100.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

zsasa-0.1.2-cp312-cp312-macosx_11_0_arm64.whl (93.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zsasa-0.1.2-cp311-cp311-win_amd64.whl (183.7 kB view details)

Uploaded CPython 3.11Windows x86-64

zsasa-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (232.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

zsasa-0.1.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (219.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

zsasa-0.1.2-cp311-cp311-macosx_11_0_x86_64.whl (100.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

zsasa-0.1.2-cp311-cp311-macosx_11_0_arm64.whl (93.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file zsasa-0.1.2.tar.gz.

File metadata

  • Download URL: zsasa-0.1.2.tar.gz
  • Upload date:
  • Size: 171.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zsasa-0.1.2.tar.gz
Algorithm Hash digest
SHA256 434fc869a7519f4d63f5b52242d808b5bf65d762bd8ae4184ca6381bfb9f9c26
MD5 2f716d3e528043b5c9340eab742286f9
BLAKE2b-256 c7e2d7216563d7ad39d842a876bdca2a813eb70051d7019e1ab049b8e48fc268

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2.tar.gz:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: zsasa-0.1.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 183.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zsasa-0.1.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 69b085a3c07edbfde06859c84b8ae199235c0b7789e57d6dffcba969077d4359
MD5 fca0f429950394c5d2ca8babacf732b7
BLAKE2b-256 ab436e06124114625c5c302d82ad3f42bf10de5ca38a9b30797e5e5688d3c773

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1436fe82d7237d884b552b817fc438c096107e1703244b366f4e1125ad552d75
MD5 dac9fb816204d8e2ba9ea4213d813784
BLAKE2b-256 8904570f7c709a1218ede4c867929115f96f2a77723db2f7b7dc410b8b84444b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 061bb032382c8dcf48732a898070c3db9bd2cf2a79606d85ae479c370cbdc3c0
MD5 be3623211945c81c4c82d911a3068c78
BLAKE2b-256 53ff28ea948a349961b76191526638551dea66a7e2eb4460e2a8791d07742c12

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.2-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 655f93e1ed8b863efe2b1699a10bb6afbb2f07340f30bf34cd991c718cd20e46
MD5 7aa173bbb9a464ac38f6bb8c53f071b0
BLAKE2b-256 630a422b886735ecb4ce0d8e989b92b4cbccf029d0655b4950a3d2a674833bbe

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp313-cp313-macosx_11_0_x86_64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26bc8fbff9ddcfcbbde615f2b19df9e657d86fde8a0926bd85705c31148d21eb
MD5 91f2f813b9d911a78122bdac010b3c40
BLAKE2b-256 0cc09e69aa34526e946625be82702929ac81a3ed0fea93c8194311a04713e3df

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: zsasa-0.1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 183.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zsasa-0.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bfa026fdbf6b6c8f3cbb189b91ed084bb65015a83a49cd4962ec9f5f822db002
MD5 127e2f0863d3700b0139304e67006aab
BLAKE2b-256 67e7f29ac63492741e3d0410831deac16bf0c3c0939ce37239ff84ec52a289e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 04572c672954172654b827bf6be75b2546c6f92ada74f29520a062fe78551a75
MD5 3787300e9d32258b850053f6e503fd3d
BLAKE2b-256 4f529d08c0d0366bc30006f402ed04d2525e06f904b916bbbc2cb08cae674b8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 41c284d919d726876e41a76057fe13b91081c6693311b47ce830964058911f6f
MD5 cc826e75e5c972f91c5840f7387b9432
BLAKE2b-256 fa7efe68f5afe0250138f687dfe10f388ab618b23ca69c356765b17921809799

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.2-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 a8ec2ef3aee6466b77112277958aa02e9c6248ad62ddfc57bfd04e512e201131
MD5 9b204a7a3fbf614251ab7d004bedf422
BLAKE2b-256 592b92f1d00593bce754aaac935290de23686149d186122fddd2f220deddebc5

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp312-cp312-macosx_11_0_x86_64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 89c0cbf4ffae80a546423ad2133710a158dfe29aebf679f9b636ed5a95dccc01
MD5 f7fdaa46d637b850945d86374569f443
BLAKE2b-256 91dc377670662e6b5f41b0c1f922ed85b7c3ae20297a913a344eec7ec84a401d

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: zsasa-0.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 183.7 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zsasa-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9b06021b35ccf673d84ccca30a1b71acb68cf1201b3d619a616eac6dbca51a32
MD5 cfcfa99ba5265bc1383abcde70ddf74c
BLAKE2b-256 a687658bdb629dfe0619cb8f52c667b098eefdf62decb8b0aac5884056d42402

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 85fafeee2a0f8ad058a40cd615e35fe1911fa13df07eae066331895cdecbe651
MD5 70115cf03556be01665f70d35f8e05dd
BLAKE2b-256 222681475416c41f01c9c9c3b5881ed2448a04ab948448bace5c94c3b87d036e

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 72dbb072a48c761f0ff2913aa65d4d84863beca4d81c5e34dda45b33755f6ead
MD5 30e9fed850dbaae55ad85573d29e6062
BLAKE2b-256 d8a2c753d90353693bd6e8d06ebf07a691619e8f592527da3b1f2d011edf41f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.2-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 a94090ba6601348131aaf976b1704e267816bd8ea1988f4e7734579b1ca748eb
MD5 ef81de45495df35ce4793bf8fdab5305
BLAKE2b-256 99994c8a4d23005a7348b7c64f49710f96db12c5a530774f506331a224c73846

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp311-cp311-macosx_11_0_x86_64.whl:

Publisher: publish.yml on N283T/zsasa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zsasa-0.1.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a719da440574c1b6bd856a36b21dafd010ce8d116b2d9c649745eac814db28a0
MD5 b4e52039e4da3601d324fbe56dc94064
BLAKE2b-256 17308f2840a64f8cbbe3ef50558fa1b0056486635502d7dbb4aca5d001d8316b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on N283T/zsasa

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