Skip to main content

Python tools (backed by Rust) for sequence analysis

Project description

prseq (Python)

Python tools for sequence analysis, powered by Rust.

PyPI Python Version Build Status Downloads License: MIT

Overview

prseq provides Python bindings to a high-performance Rust library for FASTA and FASTQ parsing. It includes:

  • Pythonic API: Full type hints and Python-native data structures
  • CLI Tools: Ready-to-use command-line utilities
  • Rust Performance: Fast parsing with automatic compression detection
  • Memory Efficient: Streaming parsers for large files
  • Universal Input: Files, compressed files, and stdin support

The core parsing is implemented in the Rust prseq library.

Installation

Using uv (recommended)

uv add prseq

Using pip

pip install prseq

From source (developers)

git clone https://github.com/VirologyCharite/prseq.git
cd prseq/python
pip install maturin
maturin develop

Quick Start

Command Line Tools

# Analyze a FASTA file
fasta-info sequences.fasta
fasta-stats sequences.fasta.gz  # Works with compressed files
fasta-filter 100 sequences.fasta  # Keep sequences ≥100bp

# Analyze a FASTQ file
fastq-info reads.fastq
fastq-stats reads.fastq.bz2
fastq-filter 50 reads.fastq  # Keep sequences ≥50bp

# All tools support stdin
cat sequences.fasta | fasta-stats
gunzip -c reads.fastq.gz | fastq-filter 75

Python API

import prseq
from pathlib import Path

# FASTA files
records = prseq.read_fasta("sequences.fasta")
for record in records:
    print(f"{record.id}: {len(record.sequence)} bp")

# FASTQ files
records = prseq.read_fastq("reads.fastq")
for record in records:
    print(f"{record.id}: {len(record.sequence)} bp, quality: {len(record.quality)}")

# Streaming for large files - accepts str, Path, file object, or None
for record in prseq.FastaReader("large.fasta"):  # String path
    if len(record.sequence) > 1000:
        print(f"Long sequence: {record.id}")

for record in prseq.FastaReader(Path("large.fasta")):  # Path object
    print(f"{record.id}")

# Read from stdin
for record in prseq.FastqReader():  # None = stdin
    print(f"Read: {record.id}")

# Read from file object (must use binary mode 'rb')
with open("sequences.fasta", "rb") as f:
    for record in prseq.FastaReader(f):
        print(f"{record.id}")

Python API Reference

FASTA Support

from pathlib import Path
from prseq import FastaRecord, FastaReader, read_fasta

# FastaRecord - represents a single sequence
record = FastaRecord(id="seq1", sequence="ATCG")
print(record.id)        # "seq1"
print(record.sequence)  # "ATCG"

# Read all records into memory
records = read_fasta("file.fasta")
records = read_fasta("file.fasta.gz")  # Auto-detects compression
records = read_fasta(None)  # Read from stdin

# Stream records (memory efficient) - source can be:
# - str: file path
# - Path: pathlib.Path object
# - file object: open file in binary mode
# - None: read from stdin

reader = FastaReader("large.fasta")  # String path
reader = FastaReader(Path("large.fasta"))  # Path object
reader = FastaReader()  # None = stdin

with open("file.fasta", "rb") as f:  # Binary mode required
    reader = FastaReader(f)  # File object
    for record in reader:
        print(f"{record.id}: {len(record.sequence)}")

# Performance tuning
reader = FastaReader("file.fasta", sequence_size_hint=50000)

FASTQ Support

from pathlib import Path
from prseq import FastqRecord, FastqReader, read_fastq

# FastqRecord - represents a single read
record = FastqRecord(id="read1", sequence="ATCG", quality="IIII")
print(record.id)        # "read1"
print(record.sequence)  # "ATCG"
print(record.quality)   # "IIII"

# Read all records into memory
records = read_fastq("reads.fastq")
records = read_fastq("reads.fastq.bz2")  # Auto-detects compression
records = read_fastq(None)  # Read from stdin

# Stream records (memory efficient) - source can be:
# - str: file path
# - Path: pathlib.Path object
# - file object: open file in binary mode
# - None: read from stdin

reader = FastqReader("large.fastq")  # String path
reader = FastqReader(Path("large.fastq"))  # Path object
reader = FastqReader()  # None = stdin

with open("reads.fastq", "rb") as f:  # Binary mode required
    reader = FastqReader(f)  # File object
    for record in reader:
        # Validate quality length matches sequence
        assert len(record.sequence) == len(record.quality)
        print(f"{record.id}: {len(record.sequence)} bp")

# Performance tuning for short/long reads
reader = FastqReader("reads.fastq", sequence_size_hint=150)  # Short reads
reader = FastqReader("nanopore.fastq", sequence_size_hint=10000)  # Long reads

Advanced Usage

import prseq

# Filter sequences by length
def filter_by_length(filename, min_length):
    for record in prseq.FastaReader(filename):
        if len(record.sequence) >= min_length:
            yield record

# Calculate GC content
def gc_content(sequence):
    gc_count = sequence.upper().count('G') + sequence.upper().count('C')
    return gc_count / len(sequence) if sequence else 0

# Process compressed files
records = prseq.read_fasta("sequences.fasta.gz")
avg_gc = sum(gc_content(r.sequence) for r in records) / len(records)

# Convert FASTQ to FASTA
def fastq_to_fasta(fastq_file, fasta_file):
    with open(fasta_file, 'w') as f:
        for record in prseq.FastqReader(fastq_file):
            f.write(f">{record.id}\n{record.sequence}\n")

CLI Tools

FASTA Tools

Command Description Example
fasta-info Show basic file information fasta-info sequences.fasta
fasta-stats Calculate sequence statistics fasta-stats sequences.fasta.gz
fasta-filter Filter by minimum length fasta-filter 100 sequences.fasta

FASTQ Tools

Command Description Example
fastq-info Show basic file information fastq-info reads.fastq
fastq-stats Calculate sequence statistics fastq-stats reads.fastq.bz2
fastq-filter Filter by minimum length fastq-filter 50 reads.fastq

CLI Examples

# Basic usage
fasta-info genome.fasta
fastq-stats reads.fastq

# With compressed files (auto-detected)
fasta-stats sequences.fasta.gz
fastq-info reads.fastq.bz2

# Using stdin (great for pipelines)
cat sequences.fasta | fasta-stats
gunzip -c reads.fastq.gz | fastq-filter 100

# Performance tuning for large sequences
fasta-stats --size-hint 50000 genome.fasta
fastq-filter --size-hint 10000 150 nanopore.fastq

Development

Prerequisites

  • Python 3.8-3.12
  • Rust 1.70+
  • maturin for building Python extensions

Setup

cd python
pip install maturin
maturin develop

Testing

# Run all tests
python -m pytest tests/ -v

# Run integration tests
python -m pytest tests/ -v --integration

# Type checking with MyPy
mypy src/prseq

Building

# Development build
maturin develop

# Production wheel
maturin build --release

Publishing

cd python
maturin publish

Type Checking

The package includes full type hints and is configured for MyPy with Python 3.8+ compatibility. Type stubs are automatically generated for the Rust extension modules.

Rust Core

The Python package is built on top of the Rust prseq library, which provides the high-performance parsing implementation. If you need Rust-native parsing without Python, check out the Rust crate directly.

Links

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

prseq-0.0.31-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (396.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

prseq-0.0.31-cp314-cp314-win_amd64.whl (237.6 kB view details)

Uploaded CPython 3.14Windows x86-64

prseq-0.0.31-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (393.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

prseq-0.0.31-cp314-cp314-macosx_11_0_arm64.whl (335.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

prseq-0.0.31-cp313-cp313-win_amd64.whl (238.0 kB view details)

Uploaded CPython 3.13Windows x86-64

prseq-0.0.31-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (394.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

prseq-0.0.31-cp313-cp313-macosx_11_0_arm64.whl (335.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

prseq-0.0.31-cp312-cp312-win_amd64.whl (237.9 kB view details)

Uploaded CPython 3.12Windows x86-64

prseq-0.0.31-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (393.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

prseq-0.0.31-cp312-cp312-macosx_11_0_arm64.whl (335.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

prseq-0.0.31-cp311-cp311-win_amd64.whl (239.3 kB view details)

Uploaded CPython 3.11Windows x86-64

prseq-0.0.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (396.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

prseq-0.0.31-cp311-cp311-macosx_11_0_arm64.whl (336.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

prseq-0.0.31-cp310-cp310-win_amd64.whl (239.3 kB view details)

Uploaded CPython 3.10Windows x86-64

prseq-0.0.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (396.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

prseq-0.0.31-cp310-cp310-macosx_11_0_arm64.whl (336.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file prseq-0.0.31-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prseq-0.0.31-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8c52c5710b11f6c516ea163a91929de5a6958fe8cec7820906f2b957ec5de009
MD5 db15428c4e01d8f1ffbed276c3806447
BLAKE2b-256 3a899772b5b141bedc4994649cb6bcf62ecf8c7277ccc5e9e44278370c2fffb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: prseq-0.0.31-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 237.6 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for prseq-0.0.31-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b5f2e9f74ffa0204941929eb0056d904474b4ec5d7181136fa45fe6397563bd7
MD5 89e87d72f0cde6166b97536440ecccd5
BLAKE2b-256 de18fdd8a828c79af803a898bacae0c717a2cc893bb0b158ff97194d8b9a913c

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp314-cp314-win_amd64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prseq-0.0.31-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f3b8f2c443851c6024d25c5a411cac90af452f499066e93c52d07e0971eec3cb
MD5 17819d27a7c090bc6435b8b106b7d8e1
BLAKE2b-256 90419e0d0c06d039cd1626486fa29860e8cf216e718f77b627b1eb9a9d5c4b3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for prseq-0.0.31-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 82d74e64b1794480c02f0cf1b4fae01c982236496e5283df7044152c002b01f2
MD5 68d2bbd36bc4d6514a6f59b2106aec01
BLAKE2b-256 16d3905e5612dce680fa0d35e1a67bab778f2b407e3dd37c935efbe17f65998b

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: prseq-0.0.31-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 238.0 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 prseq-0.0.31-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ee347806175dbc7f140396f578adeff2c4f2ef42f688ae51de3dd9a6d603f38f
MD5 39e84bb8abb146c950bab8216ff954f0
BLAKE2b-256 c7243f079fa43bc88a7459ccc12a83ca155c7687c7e522fc38232fc28fb2ad1b

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp313-cp313-win_amd64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prseq-0.0.31-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9b965d7193da86ca8ef6dec410e8baf70c8ad2a083018ca6a12227198b843b41
MD5 496148cfe305e8f2fe30021d3f4ccd89
BLAKE2b-256 e4131e60a3211159d1d046bc2f96daf3a83acbf47712a4d4100bfc8e506ec708

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for prseq-0.0.31-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f4ac4aa19771fc0eed8cc78b6f49b2180132b997f556c5f3eb5104d7f4687cdc
MD5 747154778e76c96f7382cf73fc9f54b4
BLAKE2b-256 aa7e17f55244f7dd9f9d9c1edd9718b45c089e156ae2d9544d04d8746ac133bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: prseq-0.0.31-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 237.9 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 prseq-0.0.31-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c1668f798c211e24aee74e20155979beabf9efdc5c013eca8c4d4adfe0df75b0
MD5 202393a1a45649a31fd9716b8e728566
BLAKE2b-256 244fe83541963a288bb7206277d855f5bc50deb2f3df5174d9f3752fcbad1ac8

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp312-cp312-win_amd64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prseq-0.0.31-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e14a5e81690e903294f07f0121e9040b499afdfa64bd50dbab3eeed6fd8f7d93
MD5 04062ed794e761fa6fd38a76b66a3ca1
BLAKE2b-256 226589912fd364482062dc2830fa0757a0165a2bb80fde38b2046ef16742f452

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for prseq-0.0.31-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 60f7f62842f69111322c5520c9afe345854ec99a7776ac4a58a9df28f5d89ebf
MD5 33ebf2e47165481fadcafe734657c46f
BLAKE2b-256 789f42976db4a2453d9180b494596c393ab48f7666683c6c516e74db1072847d

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: prseq-0.0.31-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 239.3 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 prseq-0.0.31-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e821399446be81288b930f38a59ffc1c13f637e79e61d4570d6693367ced5ffd
MD5 d003a2c7e019324d596b414934fd56ec
BLAKE2b-256 1b000d5f3b45a972de2182303256ff1af15363c50e9574803778a99566689bcb

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp311-cp311-win_amd64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prseq-0.0.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e828df6099e0f7caa82b51fafd0220b5606541e3596d40b4ca115f41585f49dc
MD5 46aae95a7998bbfcd1f31129620449e5
BLAKE2b-256 f7a76edc9e77b82bedf92bf90e1951d4643fe023455550635465ba52d0b14d0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for prseq-0.0.31-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41e6dba7b49d21f3afe37d8355bb51f6fb292d7b85fcc7f83cda8e0061146af3
MD5 a56e54e18ad5a8f3c0a361415996d716
BLAKE2b-256 72f6a3dd6fc799f53b1890c60f8ca1a1303c82ea2e3d263ade803be7a2f208b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: prseq-0.0.31-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 239.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for prseq-0.0.31-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c8a5e5cf7024472e402f3c56c1b1925b67c2601d1e23cbcded7ee0387fcc9e9d
MD5 4b955c29ab9d39ad999f49a3180b1ee1
BLAKE2b-256 59ab613c247d514caf3a05dda3cc155aefb9260080c832460c7f3f3d476b2e3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp310-cp310-win_amd64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for prseq-0.0.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 81e936c05fefb10816242886ad7c764cd3f5e23be0cc52e999a490a4911a7438
MD5 abaf2af785628079fa927c57cc3ab3db
BLAKE2b-256 8e40c9f0b756b159791fe7e780b45e30645f7c778cdf607fee0d059dcb53f063

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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

File details

Details for the file prseq-0.0.31-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for prseq-0.0.31-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2000f5812c4bfaa3363d4498220fcf4d09dfa793de38a3ed4bbf9297da206bc
MD5 8c8b1c038f8fb334ea63071f6363dd6b
BLAKE2b-256 10fbb16ccfca5afd103d8a17327b5788c922151d566d2020594e581c25a1e50d

See more details on using hashes here.

Provenance

The following attestation bundles were made for prseq-0.0.31-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: workflow.yaml on VirologyCharite/prseq

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