Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

PRE-RELEASE

The code in this repository is under active development and testing prior to an official release. Until that time, the project should be considered unstable and liable to change without warning.

pysse — sequence scrambling and mutation tools

pysse provides tools for scrambling and mutating RNA/DNA genome sequences while holding chosen properties of those sequences constant — for example, preserving the encoded protein while randomizing codon usage, or nudging a sequence's dinucleotide composition (e.g., CpG content) toward a target value. These operations are used to build null-model or control sequences for studying compositional selection pressures in viral and other genomes.

The scrambling and mutation algorithms were originally written in PowerBasic. That code was translated into C, and Python bindings were added on top of the C extension, all written by Claude, Anthropic's AI coding agent. The C code was checked (via the Python bindings) for equivalence with the original PowerBasic implementation (see Testing below).

Methods

The following methods are implemented identically in the PowerBasic original and the C code (for which Python bindings are provided). They are described here in a language-independent way; see Implementations below for how to call them from either language.

All methods operate on a nucleotide sequence (A, C, G, T). Methods whose description mentions "codons" require the sequence length to be a multiple of 3 and treat it as a coding sequence read in one frame, starting at the first base.

  • NDR (Nucleotide Distribution Randomization) — repeatedly swaps pairs of individual nucleotides, choosing swaps that preserve the sequence's n-tuple (e.g., trinucleotide) frequency distribution.
  • CDLR (Codon Distribution at Leucine and aRginine) — swaps nucleotides between synonymous codons so as to preserve dinucleotide frequencies while leaving the encoded protein sequence unchanged.
  • NOR (Nucleotide Only Randomization) — shuffles all nucleotides in the sequence with no constraints, other than leaving gap (-) and ambiguous (N) characters in their original positions. This destroys both the reading frame and the encoded protein.
  • COR (Codon Only Randomization) — shuffles whole codons to new positions with no constraints, preserving the overall codon composition but not the encoded protein sequence or codon-to-position mapping.
  • CLR (Codon Like Randomization) — shuffles synonymous codons (those encoding the same amino acid) among the positions that encode that amino acid, preserving the protein sequence while randomizing synonymous codon usage.
  • CLS (Codon Like Swap) — like CLR, but performs the randomization as a series of pairwise swaps between synonymous codons, rather than a full shuffle.
  • CLM (Codon Like Maximal) — for each codon position, independently draws a new, random synonymous codon, maximally randomizing synonymous codon usage while preserving the protein sequence.

All of the codon-aware methods (CDLR, COR, CLR, CLS) accept a genetic code number (1–23, following the NCBI genetic code tables) so that non-standard codon tables can be used.

In addition to scrambling, a mutation method nudges a sequence toward a target frequency for a chosen dinucleotide (e.g., CpG or ApT), expressed as a ratio relative to the frequency expected from the sequence's base composition. It can preserve the encoded protein, optionally preserve overall mononucleotide frequencies while it mutates, and can be told to leave specific other (named) dinucleotides unchanged.

Implementations

Python

Installation

pysse ships as a compiled Python package (the C code is built into a Python extension module), with prebuilt wheels for common platforms.

Using pip:

pip install pysse

Using uv:

uv add pysse

Command-line tools

Installing pysse provides the following commands:

  • scramble — scramble sequences in a FASTA file (or from stdin, or a single sequence given directly) using any of the methods described above.

    # Scramble a FASTA file using the CDLR method, with genetic code 1
    scramble cdlr input.fasta --genetic-code 1 --output scrambled.fasta
    
    # Scramble a single sequence using NOR, with a given random seed
    scramble nor --sequence ACGTACGTACGT --seed 42
    
    # Read from stdin, scramble with NDR
    scramble ndr --n-tuple 3 < input.fasta > scrambled.fasta
    
  • mutate — mutate sequences in a FASTA file (or from stdin, or a single sequence) toward a target dinucleotide frequency ratio.

    # Reduce/increase CpG toward a 2x target ratio (the default)
    mutate input.fasta --output mutated.fasta
    
    # Target ApT at a different ratio, with a fixed seed
    mutate input.fasta --dinuc-mutate ApT --diverge 1.5 --seed 123
    
  • encode-alignment — convert a FASTA alignment into the internal, digit-encoded alignment format used elsewhere in the package.

    encode-alignment alignment.fasta --output alignment.enc
    
  • sse-benchmark — run performance benchmarks over the scrambling and mutation methods, optionally writing results as HTML, Markdown, or CSV.

    sse-benchmark --markdown results.md
    

All of the FASTA-processing commands (scramble, mutate) share a common set of options, including --seed (for reproducibility), --output, --wrap (output line wrapping), --repeat (apply the operation more than once per input sequence), and --checksum (print an Adler-32 checksum of the output, used when validating against the PowerBasic reference — see Testing).

Library functions

The high-level, recommended entry points are SSE_for_Py.scramble.scramble (a generator that dispatches to any scrambling method) and SSE_for_Py.mutate.mutate:

from SSE_for_Py.scramble import scramble

# Scramble a single sequence directly
for seq_id, scrambled in scramble("cdlr", sequence="ATGCGTAAATAG", genetic_code=1):
    print(scrambled)

# Scramble every sequence in a FASTA file
for seq_id, scrambled in scramble("ndr", "input.fasta", n_tuple=3):
    print(f"{seq_id}: {scrambled}")
from SSE_for_Py.mutate import mutate

result = mutate("ATGCGTAAATAG", dinuc_mutate="CpG", dinuc_diverge=2.0)

Each scrambling method is also available directly as its own function, if you don't want to go through the scramble dispatcher:

from SSE_for_Py.scramble_ndr import scramble_ndr
from SSE_for_Py.scramble_cdlr import scramble_cdlr
from SSE_for_Py.scramble_nor import scramble_nor
from SSE_for_Py.scramble_cor import scramble_cor
from SSE_for_Py.scramble_clr import scramble_clr
from SSE_for_Py.scramble_cls import scramble_cls
from SSE_for_Py.scramble_clm import scramble_clm

scramble_ndr("ACGTACGTACGT", s_method=2, no_swaps=10, n_tuple=3)
scramble_cdlr("ATGCGTAAATAG", genetic_code=1)
scramble_nor("ATGCGTAAATAG")
scramble_cor("ATGCGTAAATAG", genetic_code=1)
scramble_clr("ATGCGTAAATAG", genetic_code=1)
scramble_cls("ATGCGTAAATAG", genetic_code=1)
scramble_clm("ATGCGTAAATAG")

Invalid arguments (e.g., a sequence whose length isn't a multiple of 3 for a codon-aware method) raise ValueError. Failures in the underlying C code, or a scramble that could not make enough progress to be considered meaningful (see the min_swap_fraction argument on scramble_ndr and scramble_cdlr), raise SSE_for_Py.exceptions.ScrambleError.

C library

The algorithms themselves live in a small, dependency-free C library under src/c/, with one source file per method (scramble_ndr.c, scramble_cdlr.c, scramble_nor.c, scramble_cor.c, scramble_clr.c, scramble_cls.c, scramble_clm.c), plus mutate_sequence.c for the mutation method and lib.c/lib.h for shared utilities (codon table setup and translation, RNG seeding).

All of that is compiled into a single Python extension module, SSE_for_Py._combined, built from combined_module.c plus the files above. Everything is built as one extension, rather than one per method, so that every method shares a single C-level RNG state — important for reproducibility when a script calls more than one scrambling method with the same seed.

The C code has no dependencies beyond the C standard library and libm, and can also be compiled and used standalone, outside of Python — see the benchmark-bin target in the Makefile for an example of linking it into a plain C binary.

Testing

Clone the repository and install the development dependencies with uv:

uv sync

Run the test suite:

make test

which is equivalent to uv run pytest. To run the tests across every supported Python version (currently 3.10 through 3.14), use:

make nox

Validating against the PowerBasic reference

Because the C code is a translation of the original PowerBasic implementation, the C extension can optionally be compiled with a simplified, deterministic random number generator instead of the platform's real one. Building with this test RNG (SSE_TEST_RNG=1) makes the C code draw from the exact same pseudo-random integer sequence as the PowerBasic code, given the same seed. This allows the two implementations' outputs be compared directly rather than only statistically.

That comparison is done by running the same input through both implementations and comparing an Adler-32 checksum of their output (the --checksum option on the scramble and mutate commands prints this). A checksum match on a given input and seed is strong evidence that the C translation faithfully reproduces the PowerBasic original's logic for that case. This technique was used throughout development to verify the C translation against the PowerBasic reference implementation, and is exercised by the test suite via:

make nox-with-rng-checksum

which builds the extension with both SSE_TEST_RNG=1 (the shared deterministic RNG) and PREVENT_REVERSIONS=1 (an extra guard against a specific class of double-free bug) before running the tests.

Benchmarking

make benchmark

builds the C benchmark binary and the Python extension, then runs sse-benchmark to compare performance across methods and implementations.

benchmark results

SSE benchmark results

  • Sequence lengths: 100, 1000, 10000
  • Sequences per length: 100
  • Length SD: 0.0
  • Methods: cdlr, clm, clr, cls, cor, ndr, nor, translate
  • Repeats per sequence: 3
  • Warmup calls per sequence: 0
  • Seed: 1
  • Generated: 2026-08-24 16:08:09 UTC

Nucleotides per second

Sequence length 100

Method C nt/s Python nt/s C / Python
cdlr 3,169,342 3,139,684 1.0x
clm 197,419,355 164,881,017 1.2x
clr 8,913,487 8,502,869 1.0x
cls 9,161,677 8,994,179 1.0x
cor 53,310,105 45,940,360 1.2x
ndr 3,846,154 3,892,160 1.0x
nor 25,478,768 24,327,750 1.0x
translate 209,589,041 225,625,582 0.9x

Sequence length 1000

Method C nt/s Python nt/s C / Python
cdlr 6,378,915 6,357,758 1.0x
clm 229,115,854 210,912,714 1.1x
clr 8,733,548 8,519,392 1.0x
cls 10,308,288 9,736,246 1.1x
cor 41,582,515 40,226,251 1.0x
ndr 10,796,638 10,718,490 1.0x
nor 18,030,230 18,298,231 1.0x
translate 136,202,990 128,342,080 1.1x

Sequence length 10000

Method C nt/s Python nt/s C / Python
cdlr 6,449,089 6,439,097 1.0x
clm 231,563,513 210,873,606 1.1x
clr 8,285,014 8,196,008 1.0x
cls 10,424,397 10,263,846 1.0x
cor 35,344,421 34,134,994 1.0x
ndr 11,555,925 11,540,557 1.0x
nor 14,413,142 13,958,460 1.0x
translate 26,553,512 26,086,465 1.0x
Call/timing details

Sequence length 100

Method Language Calls Skipped Discarded Total nt Total seconds Min (s) Max (s) StdDev (s)
cdlr C 300 0 0 30,600 0.0097 0.000025 0.000101 0.000005
cdlr Python 300 0 0 30,600 0.0097 0.000025 0.000112 0.000007
clm C 300 0 0 30,600 0.0002 0.000000 0.000001 0.000000
clm Python 300 0 0 30,600 0.0002 0.000001 0.000010 0.000001
clr C 300 0 0 30,600 0.0034 0.000010 0.000023 0.000001
clr Python 300 0 0 30,600 0.0036 0.000011 0.000022 0.000002
cls C 300 0 0 30,600 0.0033 0.000009 0.000016 0.000001
cls Python 300 0 0 30,600 0.0034 0.000010 0.000019 0.000001
cor C 300 0 0 30,600 0.0006 0.000001 0.000008 0.000001
cor Python 300 0 0 30,600 0.0007 0.000002 0.000012 0.000001
ndr C 300 0 0 30,600 0.0080 0.000017 0.000059 0.000006
ndr Python 300 0 0 30,600 0.0079 0.000016 0.000070 0.000006
nor C 300 0 0 30,600 0.0012 0.000003 0.000012 0.000001
nor Python 300 0 0 30,600 0.0013 0.000004 0.000008 0.000001
translate C 300 0 0 30,600 0.0001 0.000000 0.000009 0.000001
translate Python 300 0 0 30,600 0.0001 0.000000 0.000003 0.000000

Sequence length 1000

Method Language Calls Skipped Discarded Total nt Total seconds Min (s) Max (s) StdDev (s)
cdlr C 300 0 0 300,600 0.0471 0.000140 0.000271 0.000014
cdlr Python 300 0 0 300,600 0.0473 0.000138 0.000226 0.000012
clm C 300 0 0 300,600 0.0013 0.000003 0.000015 0.000002
clm Python 300 0 0 300,600 0.0014 0.000005 0.000013 0.000001
clr C 300 0 0 300,600 0.0344 0.000106 0.000213 0.000010
clr Python 300 0 0 300,600 0.0353 0.000107 0.000174 0.000008
cls C 300 0 0 300,600 0.0292 0.000089 0.000158 0.000008
cls Python 300 0 0 300,600 0.0309 0.000091 0.000135 0.000007
cor C 300 0 0 300,600 0.0072 0.000021 0.000038 0.000003
cor Python 300 0 0 300,600 0.0075 0.000022 0.000046 0.000004
ndr C 300 0 0 300,600 0.0278 0.000082 0.000187 0.000010
ndr Python 300 0 0 300,600 0.0280 0.000082 0.000229 0.000013
nor C 300 0 0 300,600 0.0167 0.000050 0.000090 0.000005
nor Python 300 0 0 300,600 0.0164 0.000050 0.000081 0.000005
translate C 300 0 0 300,600 0.0022 0.000006 0.000014 0.000001
translate Python 300 0 0 300,600 0.0023 0.000007 0.000018 0.000002

Sequence length 10000

Method Language Calls Skipped Discarded Total nt Total seconds Min (s) Max (s) StdDev (s)
cdlr C 300 0 0 3,000,600 0.4653 0.001424 0.001747 0.000067
cdlr Python 300 0 0 3,000,600 0.4660 0.001408 0.002351 0.000094
clm C 300 0 0 3,000,600 0.0130 0.000038 0.000059 0.000004
clm Python 300 0 0 3,000,600 0.0142 0.000042 0.000064 0.000004
clr C 300 0 0 3,000,600 0.3622 0.001108 0.001386 0.000055
clr Python 300 0 0 3,000,600 0.3661 0.001108 0.001386 0.000056
cls C 300 0 0 3,000,600 0.2878 0.000873 0.001066 0.000041
cls Python 300 0 0 3,000,600 0.2923 0.000885 0.001074 0.000044
cor C 300 0 0 3,000,600 0.0849 0.000263 0.000405 0.000020
cor Python 300 0 0 3,000,600 0.0879 0.000265 0.000389 0.000019
ndr C 300 0 0 3,000,600 0.2597 0.000783 0.001266 0.000054
ndr Python 300 0 0 3,000,600 0.2600 0.000789 0.001362 0.000065
nor C 300 0 0 3,000,600 0.2082 0.000644 0.000829 0.000032
nor Python 300 0 0 3,000,600 0.2150 0.000646 0.000852 0.000039
translate C 300 0 0 3,000,600 0.1130 0.000346 0.000446 0.000020
translate Python 300 0 0 3,000,600 0.1150 0.000351 0.000488 0.000023

Download files

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

Source Distribution

sse_for_py-0.1.0rc9.tar.gz (35.9 MB view details)

Uploaded Source

Built Distributions

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

sse_for_py-0.1.0rc9-cp314-cp314-win_amd64.whl (59.0 kB view details)

Uploaded CPython 3.14Windows x86-64

sse_for_py-0.1.0rc9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (98.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

sse_for_py-0.1.0rc9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (99.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

sse_for_py-0.1.0rc9-cp314-cp314-macosx_11_0_arm64.whl (53.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

sse_for_py-0.1.0rc9-cp314-cp314-macosx_10_15_x86_64.whl (54.4 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

sse_for_py-0.1.0rc9-cp313-cp313-win_amd64.whl (58.2 kB view details)

Uploaded CPython 3.13Windows x86-64

sse_for_py-0.1.0rc9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (97.9 kB view details)

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

sse_for_py-0.1.0rc9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (99.5 kB view details)

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

sse_for_py-0.1.0rc9-cp313-cp313-macosx_11_0_arm64.whl (53.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

sse_for_py-0.1.0rc9-cp313-cp313-macosx_10_13_x86_64.whl (54.3 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

sse_for_py-0.1.0rc9-cp312-cp312-win_amd64.whl (58.2 kB view details)

Uploaded CPython 3.12Windows x86-64

sse_for_py-0.1.0rc9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (97.9 kB view details)

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

sse_for_py-0.1.0rc9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (99.4 kB view details)

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

sse_for_py-0.1.0rc9-cp312-cp312-macosx_11_0_arm64.whl (53.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

sse_for_py-0.1.0rc9-cp312-cp312-macosx_10_13_x86_64.whl (54.3 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

sse_for_py-0.1.0rc9-cp311-cp311-win_amd64.whl (58.2 kB view details)

Uploaded CPython 3.11Windows x86-64

sse_for_py-0.1.0rc9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (98.1 kB view details)

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

sse_for_py-0.1.0rc9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (99.6 kB view details)

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

sse_for_py-0.1.0rc9-cp311-cp311-macosx_11_0_arm64.whl (53.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

sse_for_py-0.1.0rc9-cp311-cp311-macosx_10_9_x86_64.whl (54.4 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

sse_for_py-0.1.0rc9-cp310-cp310-win_amd64.whl (58.2 kB view details)

Uploaded CPython 3.10Windows x86-64

sse_for_py-0.1.0rc9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (98.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

sse_for_py-0.1.0rc9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (99.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

sse_for_py-0.1.0rc9-cp310-cp310-macosx_11_0_arm64.whl (53.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

sse_for_py-0.1.0rc9-cp310-cp310-macosx_10_9_x86_64.whl (54.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file sse_for_py-0.1.0rc9.tar.gz.

File metadata

  • Download URL: sse_for_py-0.1.0rc9.tar.gz
  • Upload date:
  • Size: 35.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sse_for_py-0.1.0rc9.tar.gz
Algorithm Hash digest
SHA256 3384fd527851d7a3e23f130a3d751ea8a1d9bcdf16b1bf38d331f071aaabb1ac
MD5 27902cd5f14ea38500ec290a6f4d33c6
BLAKE2b-256 d8a96451c85017fa0b1cebb96dda7e63767789e469a832b43edbd56947753fce

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9.tar.gz:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 4f3cd1a00a4a5557eac8cf5270b7a1f861273396ccbb0f421a947c356e521d89
MD5 1b364617f0d92844a1ada5e53a199ded
BLAKE2b-256 c913936ab38374bcef0fec0cfcaec157e5c208f6dcfda61d7674e2f3ed14ef14

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a885f3a06f63f762e763556ccf22539eae944dec0df553b9fbdd6b9519770a07
MD5 5d51aacc8012728ec9753484bcd1bfec
BLAKE2b-256 bde6d38c3031bc2319b60fd4ae7b1cfb00f67da5f0888fcda99b6dcbb3136b15

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b35b4f46c5a970b406227ad077c3ea85490beb2ba01fe149ae3b7edb2b09c413
MD5 6f779176ca5c93eb1f1d136e25f1a2c1
BLAKE2b-256 7b5482871269bd4e98e8023fed45f8361180a94e102a38d1b0138b57a2413b91

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1fee8e7b8652c68d93b07c32b7550375a9173206df3c7d924756d882d8450257
MD5 a43847888df8d0fac6f37e7a2534ce9b
BLAKE2b-256 b95328b531751d7a9dfa9b36468263c7e8ae23c387d417098959ab9aee95ba50

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2fbec0b140c3f46fa287f51a1f0d6f4ba3ac4e013778cac0ce47d3d255ac48ab
MD5 6ab810e66a6f4e1dac4bc63ddfdc0eb6
BLAKE2b-256 1a973382acf23916eb9f10e16b05801b337bc2453543bacf3924fe48e7e079ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 81fefc3dccab733c210665a68fe22b98ac899c52b1d039dbd2a8c4602121e8e3
MD5 d0a0417d99f942e18e07b12a85cbdfd2
BLAKE2b-256 8246cf12f3028c33deb195536c5280b808f4db2ea94f91c87de5c985f8f92b68

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fb7b41ac5e15c45757f32b49d70c1d83e6d043155571ae618b1492c598ab7287
MD5 18dc20d4f7e4abdcf10e245c55a1140c
BLAKE2b-256 4de1d1b1fe83bd00e792befd2005a1b2d1bb494f08d6f7a7c255c8b55392822d

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0efeb35b87f85f0d53f424fd4bc3850de4bf62f4f6aa820a4023bced06bf2bea
MD5 1ac019f69d83ef4a3d4de0d1058d4994
BLAKE2b-256 28ab7afc2e89b1fcbd37d4720dfab2ee44cf516fb4e2b108ea7c459d7e75a93c

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3a757ff74cb040f9db1d7fa67c396828c59293d60b95dfae5d7057dbf7fae814
MD5 139e6b4d65d089d89477882522a555fe
BLAKE2b-256 1b60705f864c682d644a98f8bbe257abe1001d94fcae2fbf102706619567a430

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a3b20ff0b1068c02d911122c0218f2b3ea14d72acb9b2fc4552cdee72c59c58a
MD5 03555b4208aacdb59964c1eff745a1d3
BLAKE2b-256 1d435857a6c2b284a359a37fcb964d20a9d84e6e5c29a1568b48ad4105c4bd20

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 26e1d7c555d31c87365af7ae691a555c64234f4a25458343cbc8e00f34487ab5
MD5 05e902a664663bb28bf238df15baa668
BLAKE2b-256 12d53d4d90153c62eb0419533610092b99cdc2e9c89fb2c6189f45c6e512f8ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0dabf1fa0df792ee436e0a999885aa2a3fa7a4a02fe190041af0c6e79c843217
MD5 660aca84a58974426d7a67d33fb33049
BLAKE2b-256 af57372afd25c981aed474e9377ce3a681ddc0c3894da468e59cdd60178e8660

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7589237fce2a96bb2d2b73ee39c90e84ef4514526184fee8ded34db73fc31c9f
MD5 50b2214febfc9ec3bdd60f39462c971b
BLAKE2b-256 502841c19bc4f5e82ecba5c73cb334e4a99feca817a6ba1adb4dff2526fb6e76

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 76ade75304298837e2bc4e412d149cd191523d470d300e9085c6230c35b21268
MD5 f38649aeea0bb3df69f9bfd29a5d3675
BLAKE2b-256 462a1b07dd18cf09ae5e54640c24a641c5bfa888979c035a5d67acc58f4e6c71

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 bdef894db691a9c01c5a745276e3b6703063f15109b0bda26c37571d603e380b
MD5 d87bd2a78681d8f41790d61435925116
BLAKE2b-256 725e022596c032019a92bf273fd3bdfbb4c3d4ba503799ac21eb6d9b81f84255

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 172ecb8481bc583323a02ad16c6dddf69cc1206fac40a1d5c7e72b8bafcb404c
MD5 d2d2574bdddcfa3d51d15b79a4c4f099
BLAKE2b-256 40b84c7d2ed0342eadf4926c4ca3dd600ea54a79009b257e5730f3a47d01a261

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d81c956003b6d477e4b8a63b018b9b4d30e304db9de674c06ce4885b403c5bf3
MD5 3465bb3b4d2aad1825edc29029078b12
BLAKE2b-256 aa3fdbc8e498b281dfbc29d556bbbba3c71f15defc489558791a6a7f612b8f05

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 83683581111b505987254817d670b20b7fa84c7c5f0e1b60778a9d40f3fd1ecd
MD5 5a54759e1d51553cae5b631d0bd6a48a
BLAKE2b-256 1e86eaaad3d8c9cfa7a1b4f8dd970bcc895e80a0b30f31b3a610a443e648c144

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d44b7117398aafbb7a236a9d3e8774d28534bbdbe5083a65b5fca26965157662
MD5 5b9b99df7ed7a71c760e2d8bf155a039
BLAKE2b-256 43bd451d0d5b0d994752bcd7052c9a5b063948b19b2f9e480406bd6ec73252c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4427aeb3a3616f3dab308d9200342556d9d821c9a5477fd7cfbb21cb220c6b6d
MD5 5961f15c58a30feec1a4bd547ca65970
BLAKE2b-256 89a9b52e6db11b5af54608ca9183011d1b25f67ba6c03bd23514088266d6b366

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e6ae212aa53e4a5be14b25cad7f309660b320e27e829ce2698f09147918245fa
MD5 d9704a44e98e916c7e63b7d58a6e4e7e
BLAKE2b-256 6121b27a6730c1173255e3493b6b4a4db3c22c471443a84cb29e97ae9b1b075c

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4814e4a21537f81033c1b72e4006e33e5b25e972ffe07f13ab57f45e74a21328
MD5 306d6870d3ca253bc1a7855531cbbe6b
BLAKE2b-256 d352a2cccbbcdf56909cb5118d82a976334ea3783eb3f464fe1476e92b1f0e10

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5d7425c0505d0b45ac0d9f94376afa1ce0e7d1fbe8abd1ec3f9c34444610c115
MD5 c67c0ac59c7d8d0d3510f6b63e100c49
BLAKE2b-256 427b97955a96714cdb36d23b32cc65ed06abfca1bbbd1b9dd22634c694f03a81

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08694a258092c9a8bcd525cb77a92101893c311b6ffb51ecf749dcb8fec076a9
MD5 befc524f28cea342a624f34f19ed5e78
BLAKE2b-256 ed0b83eaad6273045cbac9f658fbeb6ad8830a694eaf5a196206f0824c927233

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

File details

Details for the file sse_for_py-0.1.0rc9-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc9-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b67a83167f9920cc3fb0a44d7472dafb2d7397218e4896fca6e88798b4cb4370
MD5 3ab45c193ef623e16c0e067076c236be
BLAKE2b-256 51318e4675e8740478d92901241636be6ef060daca65a28818f341cb705f47bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc9-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: publish.yml on psimmond/SSE_for_Py

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

Release history Release notifications | RSS feed

This release

0.1.0rc9 This release

26 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page