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.1.tar.gz (161.6 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.1-cp313-cp313-win_amd64.whl (175.8 kB view details)

Uploaded CPython 3.13Windows x86-64

zsasa-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (216.6 kB view details)

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

zsasa-0.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (203.6 kB view details)

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

zsasa-0.1.1-cp313-cp313-macosx_11_0_x86_64.whl (93.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

zsasa-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (86.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zsasa-0.1.1-cp312-cp312-win_amd64.whl (175.8 kB view details)

Uploaded CPython 3.12Windows x86-64

zsasa-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (216.6 kB view details)

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

zsasa-0.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (203.6 kB view details)

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

zsasa-0.1.1-cp312-cp312-macosx_11_0_x86_64.whl (93.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

zsasa-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (86.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zsasa-0.1.1-cp311-cp311-win_amd64.whl (175.8 kB view details)

Uploaded CPython 3.11Windows x86-64

zsasa-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (216.6 kB view details)

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

zsasa-0.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (203.6 kB view details)

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

zsasa-0.1.1-cp311-cp311-macosx_11_0_x86_64.whl (93.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

zsasa-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (86.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: zsasa-0.1.1.tar.gz
  • Upload date:
  • Size: 161.6 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.1.tar.gz
Algorithm Hash digest
SHA256 028eb369393511d42d05b8b7c7f94519f433d8bb385fd53f1b98313a13bb5ce9
MD5 3e0ca3c7488af353f3988e88024a8ba4
BLAKE2b-256 bef2a1f2764c67f4d2c8f93e846b7035c82d768a28e717b546c4e5a6b1a756d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1.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.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: zsasa-0.1.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 175.8 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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 dcf5648a1232f61111e4a0ad9c51bb02cf44841518b5fd8af38ae955ff11d9cd
MD5 fe51817502e7efc8a2c532a768c27a94
BLAKE2b-256 a1918260a125c13db24c525b6e853f6567daa7f7cc899e6e1184e434b11698ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 164d0a49daee4260a2ef1417593aaf0464797881f070ad77793acf911bd82404
MD5 78f45cfbbdefa185cc1b8afefb8dea29
BLAKE2b-256 b45f548d835aa36f326626c62cf6c5eca31594d8eed4165c827727e9239f833e

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eb5a33064779c9c41dff5f58471eee66e8b9a9daac66b0adf675f13392e9739e
MD5 0fe08cd0d74b91cfc0a11453692d7b39
BLAKE2b-256 ec72bedf8c2a7911b94459db9b43ba9ff40ed531c1f7c836e8b834e706caf8b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.1-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 615a1da694a2e9925675920b4908fb7ad8c87fcdb5de996212d4449609c27af3
MD5 6009c5fec1eefbcf55af0cdd92d90106
BLAKE2b-256 ca36baec06870ad844f3f1a50a102f57ad83c1ee2d2a227d63718fa9de2bab12

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 590b919388fe121d67fb78c5bf8697162a36822647dc571030e90d619ad5f066
MD5 a2800a67be5f11716e96902abe3abc48
BLAKE2b-256 b47d88e8288b728c7852de422904ccbcb90f488b524a41a3777d28d917d1cc04

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: zsasa-0.1.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 175.8 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5eb3ccbc9714f3058105bcf159cd60ff82d8ce31d8685fd1d949f35fceb65583
MD5 d0de2df6f1650def7a3233742cf5f1bf
BLAKE2b-256 2c9049cb6ac71ff41dfac23911e8713a67dfc50c8549876b418f854351a42249

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ee88cc2095888dc29d8828f55c754fd3146c159aef8a0912f5ffe07fe422a0cb
MD5 50140cc87b6922f218119170a9388721
BLAKE2b-256 0a2fb49c6b7488b7e79de8a1ef698171a87a7c0bdc8a9dc6698a018b82e6b4ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7508e164af5dbe9fba08a28160c269885242da9b92a8a804ee71f0eb438ff235
MD5 680c02e42dfb67d7c612b77df00f0b10
BLAKE2b-256 567ae62ca22e78b8b19ca8dfc4d5fdce3b819b842a2dd283d35369a64b2bcdc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.1-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 f2a39c05fa4e86e747635f982be9263364285c19d322cfce7ace823e46a2111e
MD5 75d0545eb81b0e603ba5768fe988f096
BLAKE2b-256 27e5995a500fcfd3ab9ba6d27db1d3b51e55001141a3fe90ee60800422f0294d

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 39af71bf29e58098183c5651942ef2587d766be25e1ae9b0b53d8be565066602
MD5 defdffef0cf264b5c2fa3810d17da09b
BLAKE2b-256 cd0387aeee2630ae401dd4232a27ccdf3fba5dda8c5b3a0b20a42b26a78e1834

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: zsasa-0.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 175.8 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 12c877faad24256a626e55a16aed2bf9d9e48a5a41455a1d42f5d4b7633c438f
MD5 b0648282ea07cb578e3c4353cbd139e9
BLAKE2b-256 fa331004f5f7930ca44ed315e2fb5b46c41fd310e6b9cc85e7ab7fbf37b683d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 21a91e1b4fed8f4559b2521ebbd5ccfa8c445b2ef8b087cf158e5fea77727376
MD5 0f8d7363afebf97b086595333f7d4be4
BLAKE2b-256 a2bf27aac46ac7eeb4b862f30c0e57c0d42df08c141e34596c6818db011ab0ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 db2d3081006f76bd334a90af148e13cdc87ac2d70943508dbcc19fac68646426
MD5 144ae539414a06ca5f65b1e1871aa2ed
BLAKE2b-256 4290f0791701be89f5b327d815eea86bb207ec8949df80c23f426bdad289598b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.1-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 1d48ec78b1aec442025233b827b62e8469fa70424f3cc82d97f2c838374ac142
MD5 2c179a6bd45de116811ea62100bb5d1a
BLAKE2b-256 90c558d082fb72f6c19eb66913f893f3cec3497cd51a4d7559f20a1d3cf40e1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zsasa-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0a1e99767310dfd2a85f7194b0de34d4bbf2e17cc2e2334bf700e1f7f0365bf7
MD5 ac45a7e279e8e024fd037a9bc93b9c4e
BLAKE2b-256 689c3bd95d66ee4d43a758d2347a0a216bcb796025483f2ec8164e00e3587ecb

See more details on using hashes here.

Provenance

The following attestation bundles were made for zsasa-0.1.1-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