Skip to main content

High-performance LZ76 compression graphs for immune receptor repertoire analysis

Project description

LZGraphs

LZ76 and FlashBack compression graphs for immune receptor repertoire analysis

PyPI Python License Downloads Stars

Documentation  ·  Quick Start  ·  API Reference  ·  Report Bug


LZGraphs is a Python library that turns T-cell and B-cell receptor CDR3 sequences into probabilistic directed graphs. It ships two graph families on a shared C core:

  • LZGraph: built from Lempel-Ziv 76 compression. Supports V/J gene annotation, three encoding variants, and a lzg CLI.
  • FlashBackGraph: a Markovian DAG built from FlashBack tokenization (recursive run-peeling from both ends of the sentinel-wrapped sequence). Diversity, entropy, and path counting have closed-form forward-DP solutions; sequence simulation is still sampled.

Both classes share a common surface for scoring, simulation, diversity, graph algebra, posterior personalization, and binary serialization. See When to use which for a comparison.

Example LZGraph built from 3 CDR3 sequences
An LZGraph built from three CDR3s. @ and $ are start/end sentinels; subpattern nodes carry position suffixes.

Installation

pip install LZGraphs

Requires Python 3.9 or later. Wheels are published for Linux, macOS, and Windows (CPython 3.9–3.12). Release history: CHANGELOG.md.

Input format

For programmatic use, all classes accept a plain list of CDR3 strings:

LZGraph(['CASSLEPSGGTDTQYF', 'CASSDTSGGTDTQYF', ...], variant='aap')

For files (the CLI and FlashBackGraph.from_file), three formats are supported:

Format Layout Example
Plain one sequence per line CASSLEPSGGTDTQYF
Seq + count sequence\tcount (tab-separated) CASSLEPSGGTDTQYF\t42
AIRR-compatible TSV tab-separated, with header row junction_aa, v_call, j_call, ...

For AIRR TSV: the sequence column is auto-detected from junction_aa / cdr3_amino_acid / cdr3_aa (variant aap), junction / cdr3_rearrangement (variant ndp), or any column named sequence/cdr3/seq. Gene calls come from v_call / j_call and must use IMGT-style notation (e.g. TRBV5-1*01). Gzipped inputs (.tsv.gz) are supported transparently.

Quick Start: LZGraph

from LZGraphs import LZGraph

# Build a graph from CDR3 amino acid sequences
graph = LZGraph(
    ['CASSLEPSGGTDTQYF', 'CASSDTSGGTDTQYF', 'CASSLEPQTFTDTFFF',
     'CASSLGQGSTEAFF', 'CASSLGIRRT'],
    variant='aap',
)

# Score a sequence
log_p = graph.pgen('CASSLEPSGGTDTQYF')
print(f"log P(gen) = {log_p:.2f}")

# Simulate new sequences
result = graph.simulate(1000, seed=42)
print(f"Generated {len(result)} sequences")

# Diversity
print(f"D(1) = {graph.effective_diversity():.1f}")
print(f"D(2) = {graph.hill_number(2):.1f}")

With gene annotation

from LZGraphs import LZGraph

sequences = ['CASSLEPSGGTDTQYF', 'CASSDTSGGTDTQYF',
             'CASSLEPQTFTDTFFF', 'CASSLGQGSTEAFF']
graph = LZGraph(
    sequences,
    variant='aap',
    v_genes=['TRBV16-1*01', 'TRBV1-1*01', 'TRBV5-1*01', 'TRBV7-2*03'],
    j_genes=['TRBJ1-2*01', 'TRBJ1-5*01', 'TRBJ2-7*01', 'TRBJ1-2*01'],
)

# Gene-constrained simulation
result = graph.simulate(100, sample_genes=True, seed=42)
print(result.v_genes[0], result.j_genes[0])

LZGraph encoding variants

Variant Input Node format Best for
'aap' Amino acid CDR3 C_2, SL_6 Most TCR/BCR analysis
'ndp' Nucleotide CDR3 TG0_4 Nucleotide-level analysis
'naive' Any strings C, SL Motif discovery, ML features

Command line

lzg build repertoire.tsv -o rep.lzg
lzg score rep.lzg sequences.txt
lzg diversity rep.lzg
lzg simulate rep.lzg -n 10000 --seed 42
lzg compare healthy.lzg disease.lzg

Quick Start: FlashBackGraph

from LZGraphs import FlashBackGraph

# Build a Markovian DAG from CDR3 sequences
graph = FlashBackGraph(
    ['CASSLEPSGGTDTQYF', 'CASSDTSGGTDTQYF', 'CASSLEPQTFTDTFFF',
     'CASSLGQGSTEAFF', 'CASSLGIRRT'],
)

# Score a sequence (exact forward DP, no MC)
log_p = graph.pgen('CASSLEPSGGTDTQYF')
print(f"log P(gen) = {log_p:.2f}")

# Simulate from the Markovian distribution
result = graph.simulate(1000, seed=42)

# Diversity, entropy, path count: closed-form via forward DP
print(f"D(1) = {graph.effective_diversity():.1f}")
print(f"D(2) = {graph.hill_number(2):.1f}")
print(f"# distinct paths = {graph.path_count:.3e}")

# SCALE: self-calibrated anomaly score for flagging atypical / error sequences
cal = graph.calibrate_scale(seed=42)               # calibrate once against the graph
print(f"SCALE = {graph.scale_score('CASSLEPSGGTDTQYF', cal):.2f}")  # higher = more anomalous

Build from a file (streaming, constant memory)

from LZGraphs import FlashBackGraph

# Write a tiny example file (one CDR3 per line, or seq<TAB>count for abundance)
with open('repertoire.tsv', 'w') as f:
    for s in ['CASSLEPSGGTDTQYF', 'CASSDTSGGTDTQYF', 'CASSLGQGSTEAFF']:
        f.write(s + '\n')

graph = FlashBackGraph.from_file('repertoire.tsv')
print(graph.n_nodes, 'nodes')

For incremental / checkpointed builds over very large repertoires, use FlashBackStream: same accumulator with add_sequences(), snapshot(), and finalize(). See the class docstring (help(FlashBackStream)) for the streaming protocol.

When to use which

LZGraph FlashBackGraph
Tokenization LZ76 dictionary FlashBack (run-peeling)
Structure LZ-constrained walks Markovian DAG
Diversity / entropy / path count Analytical (with MC where needed) Closed-form forward DP
Self-calibrated anomaly scoring (SCALE) No Yes
V/J gene annotation & gene-conditioned simulation Yes No
Encoding variants aap, ndp, naive Single representation
CLI tool (lzg) Yes No
Streaming / incremental build No Yes (FlashBackStream)

Performance

Benchmark figures below are from a single CPU core on a 5,000-sequence amino-acid CDR3 repertoire (mean length 14.7 aa; resulting LZGraph has ~1,700 nodes, ~9,600 edges). See docs/resources/benchmarks.md for the full table and methodology.

Operation Throughput
Graph construction ~50,000 sequences/sec (5k seqs in <100 ms)
pgen() scoring ~5,000 sequences/sec (constant across batch sizes)
simulate() ~4,800 sequences/sec
Hill numbers via MC (10k walks) ~2 sec
Load / save .lzg ~100× faster than rebuilding

For repertoires of ~100k sequences and above, graph construction stays linear and saved .lzg files round-trip in seconds. FlashBackGraph's from_file and FlashBackStream paths operate in bounded memory; we have built and validated graphs with >70,000 nodes and >11M edges this way.

Key Capabilities

Every snippet in this section is paste-and-runnable after the Setup block below. graph flags a method that works on either class; lz_graph is an LZGraph instance and fb_graph is a FlashBackGraph instance. Methods marked LZGraph-only or FlashBackGraph-only are not implemented on the other class.

Setup

from LZGraphs import LZGraph, FlashBackGraph, jensen_shannon_divergence

seqs = ['CASSLEPSGGTDTQYF', 'CASSDTSGGTDTQYF', 'CASSLEPQTFTDTFFF',
        'CASSLGQGSTEAFF', 'CASSLGIRRT']
v_genes = ['TRBV5-1*01', 'TRBV5-1*01', 'TRBV5-1*01', 'TRBV7-2*03', 'TRBV7-2*03']
j_genes = ['TRBJ2-7*01', 'TRBJ2-7*01', 'TRBJ2-7*01', 'TRBJ1-2*01', 'TRBJ1-2*01']

lz_graph = LZGraph(seqs, variant='aap', v_genes=v_genes, j_genes=j_genes)
fb_graph = FlashBackGraph(seqs)
graph    = lz_graph                      # `graph` flags methods that work on either class

graph_a      = LZGraph(seqs[:3], variant='aap')
graph_b      = LZGraph(seqs[2:], variant='aap')
population   = LZGraph(seqs * 4, variant='aap')
patient_seqs = ['CASSLGIRRT', 'CASSLGQGSTEAFF']

lz_reference = population
lz_sample    = LZGraph(seqs, variant='aap')

Scoring & Simulation

# Log-probability of a sequence (works on LZGraph and FlashBackGraph alike)
graph.pgen('CASSLEPSGGTDTQYF')               # single → float
graph.pgen(['seq1', 'seq2', 'seq3'])          # batch  → np.ndarray

# Simulate (both classes)
result = graph.simulate(1000, seed=42)
result = lz_graph.simulate(100, v_gene='TRBV5-1*01', j_gene='TRBJ2-7*01')  # LZGraph only

Diversity & Analytics

graph.effective_diversity()          # exp(Shannon entropy)
graph.hill_number(2)                 # inverse Simpson
graph.hill_numbers([0, 1, 2, 5])     # multiple orders → np.ndarray

# LZGraph-only
lz_graph.pgen_distribution()         # analytical log-pgen distribution (Gaussian mixture)
lz_graph.predicted_richness(100_000) # expected unique seqs at depth
lz_graph.predicted_overlap(10000, 50000)        # expected shared sequences
lz_graph.predict_sharing([1000]*5, max_k=5)     # sharing spectrum across donors

# FlashBackGraph-only (closed-form)
fb_graph.path_count                  # exact count of distinct walks
cal = fb_graph.calibrate_scale(seed=0)          # self-calibrate the SCALE anomaly score (once)
fb_graph.scale_score('CASSLEPSGGTDTQYF', cal)   # SCALE: higher = more anomalous
fb_graph.pgen_moments()              # exact moments of log-pgen distribution

Graph Algebra

combined = graph_a | graph_b          # union          (LZGraph and FlashBackGraph)
shared   = graph_a & graph_b          # intersection   (both)
unique_a = graph_a - graph_b          # difference     (both)
personal = population.posterior(patient_seqs, kappa=10.0)  # Bayesian update (both)

Repertoire Comparison

jsd = jensen_shannon_divergence(graph_a, graph_b)  # natural log (nats): 0.0 identical, ln(2) ≈ 0.693 disjoint

ML Feature Extraction

graph.feature_stats()                 # 15-element summary vector (both classes)

# LZGraph-only
lz_reference.feature_aligned(lz_sample)   # project sample into a fixed reference space
lz_graph.feature_mass_profile()           # position-based mass distribution

Serialization

# Both classes use the same .lzg binary format, but each file is class-specific.
lz_graph.save('rep_lz.lzg')
loaded_lz = LZGraph.load('rep_lz.lzg')

fb_graph.save('rep_fb.lzg')
loaded_fb = FlashBackGraph.load('rep_fb.lzg')

Documentation

Full documentation with tutorials, concept guides, and API reference:

https://MuteJester.github.io/LZGraphs/

Citation

If you use LZGraphs in published research, please cite the methods paper. If you also want to cite a specific software version, add the software entry below.

@article{konstantinovsky2023novel,
  title={A novel approach to T-cell receptor beta chain ({TCRB}) repertoire encoding using lossless string compression},
  author={Konstantinovsky, Thomas and Yaari, Gur},
  journal={Bioinformatics},
  volume={39},
  number={7},
  pages={btad426},
  year={2023},
  publisher={Oxford University Press},
  doi={10.1093/bioinformatics/btad426}
}

@software{lzgraphs_software,
  author={Konstantinovsky, Thomas},
  title={{LZGraphs}: {LZ76} and {FlashBack} compression graphs for immune repertoire analysis},
  url={https://github.com/MuteJester/LZGraphs},
  year={2026}
}

Contributing

Contributions are welcome. Please open an issue or submit a pull request.

Local development setup

LZGraphs builds a CPython extension from a C library at install time, so a working C toolchain is required:

  • Linux: gcc or clang (any version supporting C11)
  • macOS: Xcode command-line tools (xcode-select --install)
  • Windows: Visual Studio Build Tools with the "Desktop development with C++" workload

Then:

git clone https://github.com/MuteJester/LZGraphs.git
cd LZGraphs
pip install -e ".[dev]"   # editable install + dev extras (pytest, pytest-cov, ruff, scipy, build)
pytest                    # run the test suite (~505 tests)

PR checklist

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Add tests for new functionality; make sure pytest and pytest tests/regression/ both pass
  4. Commit your changes (small, focused commits preferred)
  5. Push and open a Pull Request describing the motivation and any API changes

License

MIT License. See LICENSE for details.

Contact

Thomas Konstantinovsky, thomaskon90@gmail.com

GitHub · PyPI · Documentation

Project details


Download files

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

Source Distribution

lzgraphs-3.1.0.tar.gz (252.6 kB view details)

Uploaded Source

Built Distributions

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

lzgraphs-3.1.0-cp313-cp313-win_amd64.whl (194.0 kB view details)

Uploaded CPython 3.13Windows x86-64

lzgraphs-3.1.0-cp313-cp313-musllinux_1_2_x86_64.whl (520.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

lzgraphs-3.1.0-cp313-cp313-musllinux_1_2_aarch64.whl (516.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

lzgraphs-3.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (530.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

lzgraphs-3.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (526.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

lzgraphs-3.1.0-cp313-cp313-macosx_11_0_arm64.whl (179.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

lzgraphs-3.1.0-cp312-cp312-win_amd64.whl (194.0 kB view details)

Uploaded CPython 3.12Windows x86-64

lzgraphs-3.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (520.1 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

lzgraphs-3.1.0-cp312-cp312-musllinux_1_2_aarch64.whl (516.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

lzgraphs-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (530.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

lzgraphs-3.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (526.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

lzgraphs-3.1.0-cp312-cp312-macosx_11_0_arm64.whl (179.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

lzgraphs-3.1.0-cp311-cp311-win_amd64.whl (193.9 kB view details)

Uploaded CPython 3.11Windows x86-64

lzgraphs-3.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (519.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

lzgraphs-3.1.0-cp311-cp311-musllinux_1_2_aarch64.whl (516.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

lzgraphs-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (530.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

lzgraphs-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (527.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

lzgraphs-3.1.0-cp311-cp311-macosx_11_0_arm64.whl (179.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

lzgraphs-3.1.0-cp310-cp310-win_amd64.whl (194.0 kB view details)

Uploaded CPython 3.10Windows x86-64

lzgraphs-3.1.0-cp310-cp310-musllinux_1_2_x86_64.whl (512.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

lzgraphs-3.1.0-cp310-cp310-musllinux_1_2_aarch64.whl (509.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

lzgraphs-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (523.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

lzgraphs-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (519.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

lzgraphs-3.1.0-cp310-cp310-macosx_11_0_arm64.whl (179.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

lzgraphs-3.1.0-cp39-cp39-win_amd64.whl (194.0 kB view details)

Uploaded CPython 3.9Windows x86-64

lzgraphs-3.1.0-cp39-cp39-musllinux_1_2_x86_64.whl (512.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

lzgraphs-3.1.0-cp39-cp39-musllinux_1_2_aarch64.whl (508.9 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

lzgraphs-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (522.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

lzgraphs-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (519.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

lzgraphs-3.1.0-cp39-cp39-macosx_11_0_arm64.whl (179.2 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file lzgraphs-3.1.0.tar.gz.

File metadata

  • Download URL: lzgraphs-3.1.0.tar.gz
  • Upload date:
  • Size: 252.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lzgraphs-3.1.0.tar.gz
Algorithm Hash digest
SHA256 eb5b13a75b2075aba91452c62642d93623fa7a601dafcc4c3a3ce705f2b924ff
MD5 fa96614569d9826b99b94ec86cb233ec
BLAKE2b-256 bc0d2674bcbcab1ba497e301def4c67ba469b729a00ada1d82b83747e402f11a

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: lzgraphs-3.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 194.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lzgraphs-3.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e58b8fcbd43543141a3037cf98aa9a37a4a8c355b7f16a5a704a308bb9b410bb
MD5 e9c8ccb7f267ad34ce95394d628fb12f
BLAKE2b-256 a2f85cbf0f7a523f7295d8314936773635561ecf346cc61ff11077ff3c56e701

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 819149ba85a9e829ab20f61c65b04fb42abc6711ba621c9b91ae3bac90ed2220
MD5 225a4678fca907770107a78185f2dbc7
BLAKE2b-256 e761c682a885b4734937bd6adf65ee630df8e9153b8d076af5a9233bbbf3e605

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 97314fbe67917b8143a37019a367cb8fd0e381525a6892810fe3d477485da90b
MD5 14088af2060db1cebfd721db5185b6a5
BLAKE2b-256 5444a0d12ff7bd82ab6133050d7ba3e4e4516c471e7edab648a97765bbf3fbda

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 af5d4e1e5b92163fd11ab07bf275eda3bf68adeda89bfc323512884aed6161fa
MD5 96b867b391336768b1fbd7423c23999d
BLAKE2b-256 9ea92558b7921ef43c08085eef37065fc605115fc1fb5266f461eb99ece58147

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ab65e4291e887c28d05377cd293e8fa344e662d6faa30928107e856b92ed4415
MD5 4b1055563929b85c96df86286ba00678
BLAKE2b-256 0422931fc7a0290d62499339626bfe296e63d49b2a08f9309ecdb43f11d55e56

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a4b500e0c8f1591226186041341c85ae2671c37051aa810e287895aa38b5f315
MD5 e20d0a8eb03ff691ddee123a7b86f881
BLAKE2b-256 adf89b9e5fd2dcedf9f757472f5ecd74ce391d9f6cfc48f9f91a1a3935e955d5

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: lzgraphs-3.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 194.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lzgraphs-3.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f23793b5d1ccc028fbb1b73d988a3f489f77c86db8d88a42b0d9b3cee5ba5e05
MD5 0fa007fdf487016e32ce8d8a67947e31
BLAKE2b-256 b46cd24eccb0082bbb3c14de2b847136cc00b3bdc33628276f8a2d73ce31def4

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9db97b07e1920ace37cc70233a244a323c18fcf8b82d367b915d3cba4cd7700e
MD5 0cf1cabb2e33c5bca680411406135751
BLAKE2b-256 82571ce61e0c9081fc2eab7737923e37f115ad474e33c7ad2df2df22f21ff13b

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a53ba3a075c86d7779a73426df8380c171ca714967ad6066b5cf605a16892c1e
MD5 e92dbe1bbde26d06958bdad7e6fbc49b
BLAKE2b-256 83c8f2f83f61fc678f0f9d22873eb9d6cba1256187654ea6fda84da89e8c327d

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4d9de676c7a76897e043cbc469147fc9ff83353e6aff139b983a2bcbfb6aff6e
MD5 c57210c3a9e8f7951f01f1792ee54c54
BLAKE2b-256 8b25f936b53237dfdd42a710218c27e54538945ead803f06d65648c129c089b0

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9715ede6c43b911118b8415534ec07223bc0e5e4998e27c2053aa611375b57a4
MD5 fa8e49bea9b9b8b4314676bcff35314e
BLAKE2b-256 ec9ff05ab29dba45c88b7a172bfe093aafae45546d271e303341862e9f11d509

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5118b4369645b9256b05b33f7f383e8698362fe8b721731f6ced95c881ff435c
MD5 d02582f33ac92349000d269675e2c6cd
BLAKE2b-256 e2e474815f6d82e439855f30fda23b77f735dc53ba011915426097ebe3903cef

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: lzgraphs-3.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 193.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lzgraphs-3.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9e50b663ca6b21d66c959cda1574637b7048f526c6ad5b32bd14a91a8adb1337
MD5 81d03e57d29dc28bcb92637a9227aaed
BLAKE2b-256 a45508eced8adbe9e51ed21d2413bc6793371628389ad1b77134df181a48e571

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 14d1e97d39a6f2ad9e0f492e9402d8c294f791d6b2573d699c6e098d37269201
MD5 c7e34482074e166f9ebb5bbc724662aa
BLAKE2b-256 3ac9a5b181d0a81449dfc26ecfdb569cc11fb69e7e5ce5df7c99a279578533c0

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 38971033108b81975cfd209611241697e78bf7b6aa2a055072a7a353fb896392
MD5 9834485a2ea976835d88701445c18ee0
BLAKE2b-256 18467d8f374131f4c2c10fd95c7f8bba720f9e93a85e16536c5c4ec494f74157

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f4ebb46fd2290795f19147b61cc99bb220954ffc41fd534cc6e73d302fcb7d9d
MD5 d2a53ad2b0103123137410b6cc05799c
BLAKE2b-256 9972c9948ca27e1e5cbc10c2f80467c491667974e28eb6c9c1823c89e518f24e

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4934d830d55c299fec5e6db4ece62b2b94e48bada61fb85a5eb3ac580c2f837d
MD5 fb829a29ee5ad45c7f7d63662b022e46
BLAKE2b-256 f33b9bd385034c7516272d8255754a1b3e5b1c0e1fc04db25232f8f3290c70c0

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 15270dad54eabf2f5bff0d0fed4c1f1306eea273b52a822255ea14549f178739
MD5 cd2fe46703bf041c3bc803e2b7c496d9
BLAKE2b-256 33fe85a085a4f6547ff98d72569cf826a887fa033802439c532c23d13b783814

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: lzgraphs-3.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 194.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lzgraphs-3.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 33b929fd11598d37bbc02d1e1fa075a7fdfe4fec41be2cf0a077029179b28c8a
MD5 38de26736470a9e7e01657ef48550f67
BLAKE2b-256 ec72371eda34659566fd4d07f84dda6b3ea7faaae6bdb2faef40271e99f54ba7

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a845e7a03448082dfe537e934514afaf0cb0325195b893455ecb3e60f9597175
MD5 adec056ad2a93c97f0d22bccaeedae34
BLAKE2b-256 ce551c36b5edd07c419cbc46fee73af3e36576a8b024e3f3b6edff4d0b96f5c9

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3d069595e352761a117adcb63fc5835589f102fc3994c3cc2429a760ff8e4301
MD5 d0231093efe95b584360601a764242c9
BLAKE2b-256 7e2c79da318ff3c4b59cbe5d81e406d6be41b8c855b5c6742542764f14048f5a

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4826a8541ea158ee591af0188938d14d9cc5ed6fb31f375db337ae3543bda08d
MD5 20ef96fde77e1d21ccca225ab92e6720
BLAKE2b-256 e1cc0e5c02124f3e6b4c4bc90523aedc655210468e012773c0cb03d0f57636c0

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 825d4ff8fe51f5011418d8cb542e8bf4490565a66b3ca14aadc1486c50bf9b32
MD5 35bbcd9b84b749ec7c2981476fb16f51
BLAKE2b-256 5409882a706ba42002def0566ee10d0c39fc708e95076fa864513292a109f462

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c20343c6882aeb0671511fc205819b0f69fad19393bebbc69f7fb4b7e84f458e
MD5 d823b1b998b5a01a74ee3ae52bc6afb6
BLAKE2b-256 a17aa29778f32dd36c431db26eb1be017723443a0a32b2958c1c500fd3d35623

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: lzgraphs-3.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 194.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for lzgraphs-3.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 88fd453247b0c28ecc8365699eba9b86425099d1d5d4e22b0910e40da764a137
MD5 57d61365c430705751d449fe5140f587
BLAKE2b-256 8fe14a5cd09de329eb9f05b7eaf8862bce52b6537311d06a74a94e9d0a8806e4

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 04428a58620c457011e34136a551aa7796ef97c3740b2d14993f1200a9b34a43
MD5 95b0ada1a7796425e5ac4a45a6c1f005
BLAKE2b-256 c117ca9fbf14e6f0da65c5712da2f89652433d00731d8c8d9afef5eea6862177

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f2dcea16f4e26adbd0af67f09b24064d74845ca414ecf325a84431fb71f6cc3b
MD5 8dd6c81864ef153c1109f23c16f38d81
BLAKE2b-256 510f43b2f37a6151ddd390cfdbbe70317ac5d31557b7feec832d70f500c13cac

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5b8150357b3084733706b57ca2bb0d32f09e0b9a659df52fd76e177702df7a81
MD5 99c73e6a38e1643511fc9bae9965bac4
BLAKE2b-256 e9f62e60e7be7e907d5124d56f0a51bef1d6c0908a2f0d60766fb44b37e3e829

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d92b9885303e2e87c1f58cc669a7dede822a3b42d1de0879f9c83f78777cd0e7
MD5 827ca6eb6542fa083c73977d692331ac
BLAKE2b-256 829eb4985920eea1a56d3a12643b16d6d33b49549f7230848120e492ed7ab4a7

See more details on using hashes here.

File details

Details for the file lzgraphs-3.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lzgraphs-3.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dabf881367fdbb1fa764e95c530fa30e8f404ce7599d6fa955d281acd769f345
MD5 18c5b23e076aeb53ee2c4db3be39e296
BLAKE2b-256 bd230b411c5d3d65af7d32381eeb2ff127af0c8a1e61d36a66b03a4d6d7b0262

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page