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
    

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

Benchmarking is a developer-only tool — it's not installed as a command when you pip install/uv add this package, since it needs the C sources and Makefile from a source checkout to build its standalone-C comparison binary.

make benchmark

builds the C benchmark binary and the Python extension, then runs the benchmark module (python -m SSE_for_Py.cli.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.0rc11.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.0rc11-cp314-cp314-win_amd64.whl (61.1 kB view details)

Uploaded CPython 3.14Windows x86-64

sse_for_py-0.1.0rc11-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (101.5 kB view details)

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

sse_for_py-0.1.0rc11-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (103.1 kB view details)

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

sse_for_py-0.1.0rc11-cp314-cp314-macosx_11_0_arm64.whl (55.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

sse_for_py-0.1.0rc11-cp314-cp314-macosx_10_15_x86_64.whl (56.7 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

sse_for_py-0.1.0rc11-cp313-cp313-win_amd64.whl (60.3 kB view details)

Uploaded CPython 3.13Windows x86-64

sse_for_py-0.1.0rc11-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (101.4 kB view details)

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

sse_for_py-0.1.0rc11-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (103.0 kB view details)

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

sse_for_py-0.1.0rc11-cp313-cp313-macosx_11_0_arm64.whl (55.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

sse_for_py-0.1.0rc11-cp313-cp313-macosx_10_13_x86_64.whl (56.6 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

sse_for_py-0.1.0rc11-cp312-cp312-win_amd64.whl (60.3 kB view details)

Uploaded CPython 3.12Windows x86-64

sse_for_py-0.1.0rc11-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (101.4 kB view details)

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

sse_for_py-0.1.0rc11-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (103.0 kB view details)

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

sse_for_py-0.1.0rc11-cp312-cp312-macosx_11_0_arm64.whl (55.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

sse_for_py-0.1.0rc11-cp312-cp312-macosx_10_13_x86_64.whl (56.7 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

sse_for_py-0.1.0rc11-cp311-cp311-win_amd64.whl (60.3 kB view details)

Uploaded CPython 3.11Windows x86-64

sse_for_py-0.1.0rc11-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (101.5 kB view details)

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

sse_for_py-0.1.0rc11-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (103.2 kB view details)

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

sse_for_py-0.1.0rc11-cp311-cp311-macosx_11_0_arm64.whl (55.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

sse_for_py-0.1.0rc11-cp311-cp311-macosx_10_9_x86_64.whl (56.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

sse_for_py-0.1.0rc11-cp310-cp310-win_amd64.whl (60.3 kB view details)

Uploaded CPython 3.10Windows x86-64

sse_for_py-0.1.0rc11-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (101.4 kB view details)

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

sse_for_py-0.1.0rc11-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (103.1 kB view details)

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

sse_for_py-0.1.0rc11-cp310-cp310-macosx_11_0_arm64.whl (55.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

sse_for_py-0.1.0rc11-cp310-cp310-macosx_10_9_x86_64.whl (56.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: sse_for_py-0.1.0rc11.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.0rc11.tar.gz
Algorithm Hash digest
SHA256 78455d02bab18fc28c397dba13e848c1ee6f09bc81d64ee1bb090efc3984f4f7
MD5 0c804e1541abd7e0de2114b2c0992cfb
BLAKE2b-256 171eb10fc6075b099a7c8c94c0776ff62819902f446fc566fcbb2304638a9bcf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3f52a077f9f0267cbdd2a38a07231148d8682263c64e3cb1744143500e0e58a9
MD5 cc22ff3ee89e20af914964f524e52566
BLAKE2b-256 dd5a987e3e7dc9c278d139015f2840497b5068673d3995de1843151c4bc64fce

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc11-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.0rc11-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.0rc11-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d89f0fe5244a9b0c86a5647063f02df1500bd30ac3824d220d20a8e959d98f56
MD5 185a4952f34e0274b1774f9ae6a1d4d8
BLAKE2b-256 da684cc2fc13648a5a77459b294fd548ec69f1a4c37935bf5698e255261709f4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2c6393865d0f976fbcacbb4df6310e1f32f1676022edfb154925b07db8f477d4
MD5 1e3d3e9f453450948b7f0518213ca1eb
BLAKE2b-256 b6eeb008d53f0d29a3712d62c7ad93791bdd29436eb9073f470b5252fccd4de4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bbdbfbf1fd59f9522018170ab320f9a3b492079ab489fbc131999d6751f11fd9
MD5 91ad0b3cbfff59be7ef5ec14962b1995
BLAKE2b-256 811f3f9d10fd9090601bc274d989fb5e8921cb6e080a174c17b6eb99afcee0cd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 be5cd2b2a0c475dd73b10638ee9edda9f06a829c9cf194376235905a60d2640e
MD5 d27aa98b6f430b885343e291586eebbb
BLAKE2b-256 c6d169b09bc5f7cf79cdf54fb3595fb47baa72fe671f11ed33b72341f0ea3d9c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e01befdc9a31581c4283b92cae6abd779a0ade1204b1834ef0d3fcd0ce4074a7
MD5 8c16bd798ca3430016376d8a4f7de6be
BLAKE2b-256 75a706eeb09f6a1569502111b132cb3de02ba66b95ac7755f9754039f9ede3d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc11-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.0rc11-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.0rc11-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5b759ecb8a11d3b2a1930042b4866013978d8dccc36152cb6a95eda88dda173b
MD5 9dccaeead52d54dfbf786d398ba6bc27
BLAKE2b-256 6b5f1fae0986d26547e54c6f5414fc24b9922af2418f4fed97c7a4e41ce62795

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 46720cc096c073db3427fcd6513f1dd23c1f592415c3a9139ac0349f78ab21e5
MD5 d479400f570d8e476b2ff809db0ce879
BLAKE2b-256 b1f646c821ad148650e6e0dc1b79cd50519994b4d2144773761477bb8efb1c7f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df2233fbab570fcfd9f4ffe7eb435310aa405fecd7e8c6f976d6370639b19244
MD5 2a934248a3bc47a1f7371a9407709791
BLAKE2b-256 973e34cd4eb80c2df2fd3661649496ee71b1bb57ba1ba432aa526fb5aa53f4e7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ba834f020a2fa3bb164e076f0e08964d5c6d5be0b8da97972ca9790be2fcd2b5
MD5 0e49fd1515014b3116a8727bbbd721a9
BLAKE2b-256 70f7ea2a4db1a0317340d34e89e409c8e9db15818eb0264d1adbd12501c5227a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 259ef052dec68e2601e3a4ed7fa79dd16aa8e19c0dc3811ebe42e365c6dae9bc
MD5 f4b581c4cfce642f8f2153d5b88d38ab
BLAKE2b-256 bab2c78d3028c2a669177e0a067bbd3351ecfc7818667d8077a32ca41bebc9d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc11-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.0rc11-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.0rc11-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 da7e6ce8306e2c681c4465fc01c59bb6f912baf175d7a03393a6f49f04805b8a
MD5 c818405b24f705957b8c5aecd89ae741
BLAKE2b-256 6588986868d3d5af30baa9c086adf9d7426ac526955cbe568feb8590fdd1c968

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 27c02a48c99d18f4f487764a2a842a84993d414e03e7aa324c4b4fe7c88ce41c
MD5 600341e69ac600e99bdd243c61b91291
BLAKE2b-256 74ae1d80d52ddf9d3aafa4b196e1bc02853d5286e9deddaecd63cd9e751acc17

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 017e56af2a1be4915f5f912804a09c6042599c2317ad9c50ba8dc925cd7a1d46
MD5 1a2ddb12c549eff90f70e1937282d7c1
BLAKE2b-256 c4b67be588f7b27710d9a88397d91ab4ecd9916d99f8afcd98da61ec17f88f49

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 4d0b38baaab844acc30cb515796cb6152222d428c15da4c522a8f06ecb4c5746
MD5 43a4e9358bf527e804aace167fcc1fcd
BLAKE2b-256 fc891e7fa8c34f24f1f586b2036b974659ec44b2545ea03c151daa3c6516f4b2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 303ee0d337bf9cc227c903915fe6664ad28b2abbf795b5a74ee81cc7c89f535d
MD5 fb1685bb9c5ab578e079e190c9babc95
BLAKE2b-256 f6f3815d9751aa295483dbfcdb30ebecd78e543efba0d6cf0100f9890598076f

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc11-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.0rc11-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.0rc11-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5a53a8ea5fa4b61505f63c83d8088cd768822264fa8c1337c9696a28c9f74e3b
MD5 3881857c9e8a69f53e2effb3984a7ff8
BLAKE2b-256 79b0482107c01e6a89e0bd39007d55d49e2ba8e9d49a3e383f99332319a1706d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a1e8e5d917282e66e625795ff34e3519e5689f8b2cac4b384d07651545f8c5de
MD5 50c4a3c9fc00c66b6a9f926fce9c9267
BLAKE2b-256 9f110f2b929b85d544e41948ba01d9199fa8ebcea8cf7a4c4ca7539981df23da

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1028afc8e41921d53c3965e370cbecfd7dfe173fed422eee4e0a75595f95124
MD5 a36b2f878784ef633cb5f2971f9806e9
BLAKE2b-256 9edb36c54077251608563c8f2b4d18ef1897568645860b3f4692ce3a470e8874

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2fccdff894add501402ba9e38235c365d81ef517da84ebc09e0eac8e64f327d3
MD5 406a3f1f2fc0d5b3bd06c335596e11a7
BLAKE2b-256 cc010295c5e308ab57444b0365739cfeeba46088f484e1193273a538be87985d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7c8be1d23b7b8e6c8315d23db7abf8319912cbad615b805afb5026e32bbea343
MD5 0b74f6a4a3f1fd6c223c1c146b7a837c
BLAKE2b-256 10a4c19fb91e6728e3aa1d38f86325f9298ec958c724dd8344a12fc001975fd0

See more details on using hashes here.

Provenance

The following attestation bundles were made for sse_for_py-0.1.0rc11-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.0rc11-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.0rc11-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 306211bd70184edfd4588e45370993631c3366c844bc2f57bfacd210eda609c3
MD5 332bd6311c269513db051f9e5eafc30c
BLAKE2b-256 02e0b103803c57a93b10541306bb98e865619e8bdb141abaf6107854f0aea5cb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3da7168335bcbbe29ade6680ce544c4aa2cff8faf17c3c7e83e1d5e96b338c6a
MD5 ab9e1bd1be96c7a5aa67364b42bed555
BLAKE2b-256 b6e99083215205c87f3cb43ab16c35e54cda08db495961efd2c2883fc3aa56e8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9056941e684edb9c097ca65407a0c2cd76170317197f222b3fd1735ab69818bf
MD5 ff1a384c8a0e9d7b5c8b2f56e1f50e6c
BLAKE2b-256 3616c9422343c1b4be8c0784ea00b62033b349a0b977580205a592f872b89a9b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for sse_for_py-0.1.0rc11-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 20f78caeada9fd49b80443bfa7a83bd1020f2a0f1c09bcb232c37898fc0b2d26
MD5 9b7ac7c7431c6bbd10773c22314dfcd3
BLAKE2b-256 feab4d8a82effc6c6273d1c538f3e2b4e74c12bcf129712c9e2a1f459dc22b4f

See more details on using hashes here.

Provenance

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