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.

SSE_for_Py — sequence scrambling and mutation tools

SSE_for_Py 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

SSE_for_Py 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 SSE_for_Py

Using uv:

uv add SSE_for_Py

Command-line tools

Installing SSE_for_Py 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.0rc10.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.0rc10-cp314-cp314-win_amd64.whl (59.0 kB view details)

Uploaded CPython 3.14Windows x86-64

sse_for_py-0.1.0rc10-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.0rc10-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.0rc10-cp314-cp314-macosx_11_0_arm64.whl (53.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

sse_for_py-0.1.0rc10-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.0rc10-cp313-cp313-win_amd64.whl (58.2 kB view details)

Uploaded CPython 3.13Windows x86-64

sse_for_py-0.1.0rc10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (98.0 kB view details)

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

sse_for_py-0.1.0rc10-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.0rc10-cp313-cp313-macosx_11_0_arm64.whl (53.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

sse_for_py-0.1.0rc10-cp313-cp313-macosx_10_13_x86_64.whl (54.4 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12Windows x86-64

sse_for_py-0.1.0rc10-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.0rc10-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.0rc10-cp312-cp312-macosx_11_0_arm64.whl (53.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

sse_for_py-0.1.0rc10-cp312-cp312-macosx_10_13_x86_64.whl (54.4 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11Windows x86-64

sse_for_py-0.1.0rc10-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.0rc10-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.0rc10-cp311-cp311-macosx_11_0_arm64.whl (53.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

sse_for_py-0.1.0rc10-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.0rc10-cp310-cp310-win_amd64.whl (58.2 kB view details)

Uploaded CPython 3.10Windows x86-64

sse_for_py-0.1.0rc10-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.0rc10-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.0rc10-cp310-cp310-macosx_11_0_arm64.whl (53.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

sse_for_py-0.1.0rc10-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.0rc10.tar.gz.

File metadata

  • Download URL: sse_for_py-0.1.0rc10.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.0rc10.tar.gz
Algorithm Hash digest
SHA256 45b9b252707315aedbc1f3e52dcdaef8ceb93c3ad37639f320b8a805a8eb94e0
MD5 652344e7c8ce025b0ba099c9c0916b29
BLAKE2b-256 c430b214beee4c33770de9a7dad56729a4faca4b1c2417725fcd72dff87cad7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10.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.0rc10-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ef7e385a0ac7ee11548d129b4fefd1c13080c1f2154c295384c0a0e5b8d8c827
MD5 4d4a0e20d4ab11e31293b690666ce0b5
BLAKE2b-256 bff45821746ea8a3bc92a33c6c8b9a71cfb1a56696e2c6ba21f43a2b29909afa

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-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.0rc10-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a0ff8ad7302cfae5e56c305bb6f3345cf9fa7ff5b6b863d82f1764f9d912fabc
MD5 1b67819c1b45a55651722cb0270cc719
BLAKE2b-256 b96463f5bddfc24dd877f3af13a010b546c7f12ff855206bb32ce5e92b998ca9

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d7ea848723d73591bbeb9961b4d2462af61b4b7ee53aa53e775eed28902a0f8f
MD5 15c3979ed412528489f4d734b717cce6
BLAKE2b-256 cf39f266e076b8a88cb3416da0f798dd6dedbf488f00feb958acb12b5026cea0

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 42d03b5c8d702d19e17734fd8bcd38e9891f4dfcbc977f49640d885ca5d0de79
MD5 8d446e15bdc321d749fe94e1c020615e
BLAKE2b-256 1d5997b85d5a128d79af4798d35bcb7b0ecb893b362b5d7944cef76a6bac836c

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e6cf47ce5df261584d22bb92a0b6210a9b97515e0fd3f4d12e5907ac9b0674f0
MD5 dc1408d6a0e57604bdcab88c0b04730b
BLAKE2b-256 3efbc303c1ab2743a92468b778f723ace05b9f4132d1a4b4f8226ec8933ccf1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f90b556e85925e1cf46af70909e15d4359480ab9fcf17f7508da06da464f6999
MD5 cd97199b4e56a46d30ab05e41a684f6f
BLAKE2b-256 96648f286903b661524f2f2d6a71f43c10061bd96ccc5dac4b414bc3882bd78c

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-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.0rc10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a1f3df31688d1e7e879788e803502597939507c9a6c9ebfc67f253362f8e80d8
MD5 c6c96cf02d02071054b8cad6d709ffa3
BLAKE2b-256 c7c354d4f8062951db77e710193f0f893ac68b81c38d4fd553d9303ed71aa9f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d15ebdb6f3a0f888ba24e0e0bbe91b18d037d20d64718f574844872257141d49
MD5 e037f924fe09dfa37acdeaf5cc6bd8d9
BLAKE2b-256 9f8b694b004d6833dd4a274b7c548a8b45ef73c6f3518e85463a978aeefd1972

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d1c58d88f333da3550906f960c524b2e02fcfd3b71e05b8bfe73b66960fcade
MD5 5fad774fe546ef04564742a6f3747abd
BLAKE2b-256 24329d4bafc840b30b278dce7e1644edd7c68db2d2dcbfa955f891eca3a62bb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b15a460f782c882b6699d852ddb45c64221b87c1a1f55e429866bdc0453771de
MD5 ea030101f11e7b0ddc64b62ceb693538
BLAKE2b-256 2fd0a6695c0b8f4faea9836623e76a6c8c7e1eee5dda944b398dea99661a767b

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 557727d1e941ddbe2f3b8ced01aaea0114c78764a1264e4a678ed69a26571b9c
MD5 65e4078f2a9aac18107092d20a226f11
BLAKE2b-256 0f7b9bd6dac518208088ae746f706cd947563427a8d90b0fc7c49d1e1af24dbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-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.0rc10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 515e058df812e926542ffaf7254b643c2ffd504930879803e051db689f81c9ec
MD5 56ddd2f07e86db542fc7b9aa8b222367
BLAKE2b-256 2a3d775f8eaf3ef3fe8a1151407499eaa995fe3719979f85bfe8559cdd4c2f58

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d47d3ab56ee6cbb4aa4dbde055e05c2c5db9c8f93ad50e65bd52255552effec5
MD5 5dec858eb59c7dd09f517826a80fabf4
BLAKE2b-256 d3984613fd0aabe585d31dd9c319983f1cb24c979dede92fdcebb86b79af1dc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7fdb1c7b0e328b43edff503e015139855282a5f2811f355d49084d08079b5bac
MD5 156c85df056a5e6416eb2b7acd090b81
BLAKE2b-256 ba90da23a30667425ac5c8c04ff08b6cc20bcbeaa399a305203dd2376facf3aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 1b34426cf5ceaafd5167d99125088ea022c92cd4f4e6ddf5a5d97f3023753520
MD5 b4a9f530cda54741220f01059423a737
BLAKE2b-256 714a91e94554c5151da0646eb13199275428e4fd94ec2d7069580dbb62977186

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f1d1ba8e792059839df5a1ed90fbfdca368f4751bebdb70b185067446c700a89
MD5 bf93f58035d8a24c993b6cbb05f593d4
BLAKE2b-256 bcb738f950f2f30b418ba7008bc20c95b22aa31c4151ef86fd938c1eddebf2e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-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.0rc10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72e19247555998b57f5da10106d92189b256798fdc9614a7ed3de7a0488c7e1d
MD5 9bc0ee24547de33f872d63088062c54c
BLAKE2b-256 096e43a484b43e9df12fcfbb5caedd16921bd1a828a60a8cc3f1c054f3907181

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 29bee4cb27b7e26c6c868d25c2edf6606bae52fa96e3bba277543e1bb63d521d
MD5 3ee80c5883ce4e3d8a4ba4b478cbbae3
BLAKE2b-256 eb907498314846d651ea0e708258394c9d4a225ae12ad98ba6e9b7090b203ac4

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e5b760ba47d1a221b6bf4512d3d4e9f05b0c02b0d8780ed5a0079f7000fb5490
MD5 ac96b4b0bea9a0dac142e8e1f22f6c46
BLAKE2b-256 283497ea54ce38d6054ce6ded8ea42933cf9b4a00d23a0eda77d486f7d616bce

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 94c88e8d03f681eda907ea9b0c026daa9452cd08ce28bff01ea8b6787ee6acf6
MD5 e9a57411f6148b53399c1456bfddd43f
BLAKE2b-256 5d3d9756ac5f25737e3b983f965ae3dae80ae817c558cfb925512dde6164fe89

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0157a87b969536897a2317ccee8f38f84b3793d43e5b00d9f4d1ccfd6e2a1cc0
MD5 8cb73a0e63ac35f9664ffe5e1efe48f7
BLAKE2b-256 144dcaa5a4bd70e6baf35a063271c7245c2270ee3e8fe57a7978a356cc081ea2

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-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.0rc10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d768d38e6776f2bf830804536a3f6f58f3e716a489c1c65109268abd6f19cd46
MD5 1618a46a7136ecba4154269c2f404840
BLAKE2b-256 eb60992df3b9a2e1de64e2982eb942e7fcba902e8a6a07d949b4a022415f30a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f68cf39e977de1893297d66f76b255fc39786c04238b3f134b7f1cfd680b606c
MD5 cf79b38bf6cb5f7a09d46211dad08b0a
BLAKE2b-256 575b0f22f13a43170725fe68b08464f486cab5d4b33d46d15b85db2cf8af768b

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4fca798e3f0883547eda38bc0675952f77f07f6ef34293e7fd278f8d8a906e09
MD5 a3666bad18ee7cfd94b28024483f9df1
BLAKE2b-256 61995bde6af481c478abe36dc0b3f3b9bdbedaefd890b976121e817e6b88abae

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc10-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 40c026826461ffc467b4f410d6cafec098b8a159f89094ec0d90d5198ffff518
MD5 3eeec9c73671e96bf32488efe3292491
BLAKE2b-256 a9c2eafe7d6107e9e9f64a7756713cef8b6d4a9f41485a07e33c47238987ecf3

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc10-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.0rc10 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