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.3.tar.gz (174.3 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.3-cp313-cp313-win_amd64.whl (332.5 kB view details)

Uploaded CPython 3.13Windows x86-64

zsasa-0.1.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (888.3 kB view details)

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

zsasa-0.1.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (844.1 kB view details)

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

zsasa-0.1.3-cp313-cp313-macosx_11_0_x86_64.whl (252.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

zsasa-0.1.3-cp313-cp313-macosx_11_0_arm64.whl (236.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zsasa-0.1.3-cp312-cp312-win_amd64.whl (332.5 kB view details)

Uploaded CPython 3.12Windows x86-64

zsasa-0.1.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (888.3 kB view details)

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

zsasa-0.1.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (844.1 kB view details)

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

zsasa-0.1.3-cp312-cp312-macosx_11_0_x86_64.whl (252.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

zsasa-0.1.3-cp312-cp312-macosx_11_0_arm64.whl (236.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zsasa-0.1.3-cp311-cp311-win_amd64.whl (332.5 kB view details)

Uploaded CPython 3.11Windows x86-64

zsasa-0.1.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (888.3 kB view details)

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

zsasa-0.1.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (844.1 kB view details)

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

zsasa-0.1.3-cp311-cp311-macosx_11_0_x86_64.whl (252.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

zsasa-0.1.3-cp311-cp311-macosx_11_0_arm64.whl (236.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: zsasa-0.1.3.tar.gz
  • Upload date:
  • Size: 174.3 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.3.tar.gz
Algorithm Hash digest
SHA256 c4b8b20b44a2e6e8ca87705be475793158657e669162953e84f626f5195cef74
MD5 ec94ea861bac5c73fc7211df50f5cef2
BLAKE2b-256 c26aa900dbbf8460bc5370d77e4d440103b45cab74cefc62591ef5306e83e223

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: zsasa-0.1.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 332.5 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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 28a6e6d1c9be34b41d4eee3b475487d6f48c03a5178d3d31b1f345bf5a10d14e
MD5 38d2b6e1a92cb5cc6eea83323983ed56
BLAKE2b-256 ade4b5e0e3c9aa57f448aba935a03b6fc00469fdef26df723acc89377d385bed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for zsasa-0.1.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a4cf4208dedee0f7d47d8b14b4e505ca2acd707e303b2a2a2c19e5adc2c67e42
MD5 2bec3a3317226d5971077b659609c296
BLAKE2b-256 ca601e2eee6b854534404cd751536d50beb8d842cc51937ebfe8971e42a7da3b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for zsasa-0.1.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8a6e7f26150ed890a59c3f1809c106fd6a44ddfc83b924f4336e7bf4ad5ca4b2
MD5 c51704ade1bc8977201839ff38023adc
BLAKE2b-256 690d84b7973478e40a37c9e2f7e1ec0c1d1cc34c3bba93a870d8fbc2236c4f94

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for zsasa-0.1.3-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 e14e6a1eb279e262d4b327fb92a2c68eac0ce4a7a3d632b094faffc0c8b15692
MD5 02f920088ed39bfbb8e02fba9deb8cfe
BLAKE2b-256 7c97bc697f0904c0760d19ca53da078216e959996484587387c554daeed5cc49

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for zsasa-0.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e298bafdbe320f79bca1a8e7233f9467620f6add9261b5fc5ae01b085aa9aa31
MD5 9df9f8d7e58af5b2b61da6b82872dd10
BLAKE2b-256 9d4c0e7d5735e2bead41aca3d284eb7548375fa9235a9dc4d5becb3bc2b8b419

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: zsasa-0.1.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 332.5 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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b3eb99431e695d65878dc4f53c762fd1361787693db1a7a913149a21bebe26d6
MD5 b59c52de8cc19f3fbcc450563cbd26a9
BLAKE2b-256 9d747b593e7568a4a03c81ac281fdaff83ac6eeb56d79a586f07e33e5998ad90

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for zsasa-0.1.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8eea21ec15552af4a31d63cd0a230e3f60117887eb7cb00fc5d86d2e1ec297b8
MD5 e32bad6bff4bd08fa8e8e666fcf8009e
BLAKE2b-256 e6282793d331015301a4e2bafb99d5dea2c229e83e323d3cb8c222b964932364

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for zsasa-0.1.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0685a0e2671bac7c316cd86d304c70f2677f936fd71eb9cad277b6b954dfb220
MD5 bdc55d430d97a6de23fc014eff3e8914
BLAKE2b-256 ee072e3939fb384aa336962d4b4c666c64da9ca62f541610b64d9d3b7b92cc8c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for zsasa-0.1.3-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 e3fb749b97ad80064a04adc83c3f163fd97d45c8fb0a2a8ce6b927f5afbf7b09
MD5 3948202b6be5c22bf8da15f1c8b78c9e
BLAKE2b-256 4c96c5de0bc68000825c5e29e097dc75b1b1254fcb8a81ef8ccd602c14b75957

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for zsasa-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3cc1cb41d62c8eff1dbe127ccd38005b9f99b16b8278c1c74556fb88d777a743
MD5 0fa6bdf3deb8b5facbcd1a5f53c71bce
BLAKE2b-256 1e276997ff4ae793c15873beff5e05acacc6f8e08f28ef5d5a2bd00df59f182e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: zsasa-0.1.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 332.5 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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 78f3d8ee2ed127a057c9d4cc253c83b42a6584aaff33c80f67f2c049fc8201a6
MD5 6e7a9dcd2100f239855b68eb4e48f06d
BLAKE2b-256 fb1bb12a3fb87563136fb9d158e23c5f2e68259aae58ee60ef1361bdc2bd28fd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for zsasa-0.1.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 97e393ae3148a74eb70af386315c0863b05c6b483e39d4bab1f5d47f60dba261
MD5 d6f612f50e5aaf99974da289ce1db067
BLAKE2b-256 7270b3f394d9ec823c55b151cbe8e9ec733779ab9b7a6abcc774b200c042896b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for zsasa-0.1.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fcb28c423ba4213cddcac389785a99f54b01012c5c69d3f0d09ba8c491a1d445
MD5 1d765d5562669b7d34a16552df0c05a4
BLAKE2b-256 dc098edfd2714c991943f23f74db48ff0b16abdd5f5812c0bd3a2fca64cf9e80

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for zsasa-0.1.3-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d7602ba0aa6ef20cdf69a9f96231e1b70abaff280fe52f120e92c82d7c221dda
MD5 56f6d50eeb8aa68b56f394d585be5fa2
BLAKE2b-256 88547d53aad366917fa8012b08181a84b4b1a8071b831c9597b417f536a86422

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for zsasa-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 39d125724f9e60c1ce4c8220bf659b60a785726fb1f6843bc5ec60d17b1d7657
MD5 77e6a8f728c4f73d70b5c5f9a0fcab0b
BLAKE2b-256 0dbee22348aae08fbd86979e1e6c0e7f6388040871c7b78a3dd229346b073c1a

See more details on using hashes here.

Provenance

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