Skip to main content

Persistent homology pipeline for detecting neural correlates of consciousness from fMRI

Project description

๐Ÿง  TopoConscious

Persistent Homology Pipeline for Neural Correlates of Consciousness

Python License GUDHI Ripser DOI !PyPI

TopoConscious is a Python package that mathematically distinguishes conscious from unconscious brain states using topological data analysis of fMRI time series. It models each sliding time window of fMRI activity as a point cloud in high-dimensional space, computes persistent homology (Hโ‚€, Hโ‚, Hโ‚‚), and tracks topological changes over time to decode consciousness probability.


๐Ÿ”ฌ The Problem

The neural correlates of consciousness (NCC) remain one of neuroscience's deepest unsolved problems. Existing approaches use static functional connectivity matrices or power spectra โ€” they miss the dynamic topological reorganisation that may underlie conscious experience.

The hypothesis: Conscious states exhibit greater persistence of 1-dimensional cycles (loops) in the functional connectivity manifold โ€” reflecting dynamic integration โ€” while unconscious states are dominated by 0-dimensional clusters (segregation).


๐Ÿ—๏ธ Architecture

fMRI NIfTI (BIDS)
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Preprocessing  โ”‚  Atlas parcellation (AAL-90 / Schaefer-100 / Destrieux)
โ”‚                 โ”‚  Band-pass 0.01โ€“0.1 Hz, detrend, smooth 6mm FWHM
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚  (n_volumes ร— n_regions) time-series matrix
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Sliding Windows โ”‚  window=30 TRs, step=5 TRs โ†’ ~54 windows per scan
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚  list of (30 ร— n_regions) point clouds
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ MaxMin Sampling โ”‚  Farthest-point landmark selection โ†’ 200 pts
โ”‚                 โ”‚  Reduces O(nยฒ) to O(kยฒ), keeps topology intact
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Persistent      โ”‚  Vietoris-Rips filtration via GUDHI + Ripser
โ”‚ Homology Engine โ”‚  Hโ‚€ (clusters), Hโ‚ (loops), Hโ‚‚ (voids)
โ”‚                 โ”‚  PCA pre-projection for 90-dim โ†’ 30-dim approximation
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚  persistence diagrams {dim: [(birth, death), ...]}
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              Topological Metrics                     โ”‚
โ”‚                                                     โ”‚
โ”‚  Wasserstein Wโ‚‚   โ€” standard diagram distance       โ”‚
โ”‚  Mรผller-Lyer      โ€” scale + location aware metric   โ”‚  โ† Novel
โ”‚  Current          โ€” persistence-weighted OT         โ”‚
โ”‚  Persistence      โ€” functional Lยฒ landscape         โ”‚
โ”‚  Landscape        โ€” k-th largest tent functions     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚  distance timelines
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Signature       โ”‚  7-feature vector per window:
โ”‚ Vectors         โ”‚  total_pers H0/H1/H2, max_pers H1,
โ”‚                 โ”‚  n_bars H1, birth/death ratio, entropy H1
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Gaussian HMM    โ”‚  2-state (conscious / unconscious)
โ”‚                 โ”‚  Viterbi decoding + posterior P(conscious)
โ”‚                 โ”‚  Covariance fallback: full โ†’ diag โ†’ spherical
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚  P(conscious) time course
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Topological     โ”‚  TE(Xโ†’Y) = H(Yโ‚œ|Yโ‚œโ‚‹โ‚) - H(Yโ‚œ|Yโ‚œโ‚‹โ‚,Xโ‚œโ‚‹โ‚)
โ”‚ Transfer        โ”‚  C++/OpenMP extension for O(nยฒ) region pairs
โ”‚ Entropy         โ”‚  Measures directional information flow
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Cycle           โ”‚  GUDHI SimplexTree cocycle representatives
โ”‚ Localization    โ”‚  Maps Hโ‚ generators โ†’ anatomical regions
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Output          โ”‚  P(conscious).csv, wasserstein_timeline.npy,
โ”‚                 โ”‚  ml_timeline.npy, pl_timeline.npy, te_matrix.npy
โ”‚                 โ”‚  consciousness_timeline.png, te_matrix.png
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ฆ Installation

Requirements

  • Python 3.9+
  • C++ compiler with OpenMP support (GCC 9+ recommended)
  • Optional: CUDA 12 + cupy for GPU acceleration
# Clone the repository
git clone https://github.com/Chege-N/TopoConscious.git
cd TopoConscious

# Create and activate virtual environment
python -m venv venv
source venv/bin/activate          # Linux/macOS
# venv\Scripts\activate           # Windows

# Install dependencies
pip install -r requirements.txt

# Install TopoConscious (builds the C++ extension)
pip install -e .

GPU Support (Optional)

# Uncomment in requirements.txt:
# cupy-cuda12x>=12.0
pip install cupy-cuda12x

๐Ÿš€ Quick Start

Python API

from topoconscious import TopoConsciousPipeline

pipe = TopoConsciousPipeline(
    bids_dir="data/ds002345",
    output_dir="results/",
    window_size=30,       # TRs per window
    step=5,               # TR step between windows
    n_landmarks=200,      # MaxMin landmark count
    max_homology_dim=2,   # Compute H0, H1, H2
    tr=2.0,               # Repetition time (seconds)
    atlas="aal",          # aal | schaefer100 | destrieux
    use_gpu=False,
)

results = pipe.run()
# results["sub-01"]["hmm"]["p_conscious"]  โ†’ array of shape (n_windows,)

Command Line Interface

topoconscious \
  --bids-dir data/ds002345 \
  --output-dir results/ \
  --window-size 30 \
  --step 5 \
  --landmarks 200 \
  --atlas aal \
  --max-dim 2 \
  --tr 2.0 \
  --gpu                  # optional

FastAPI Backend

# Start the REST server
uvicorn backend.app:app --reload --port 8000

# Trigger pipeline run
curl -X POST http://localhost:8000/run

๐Ÿ”ญ Key Innovations

1. Mรผller-Lyer Current Metric

Standard Wasserstein distance is permutation-invariant but loses information about where features live in the birth-death plane. The Mรผller-Lyer current adds:

ML(Dโ‚, Dโ‚‚) = Wโ‚‚แต–แต‰สณหขโปสทแต‰โฑแตสฐแต—แต‰แตˆ(Dโ‚, Dโ‚‚)
            + ฮฑ ยท |ฮฃpers(Dโ‚) โˆ’ ฮฃpers(Dโ‚‚)|    โ† scale penalty
            + ฮฒ ยท โ€–centroid(Dโ‚) โˆ’ centroid(Dโ‚‚)โ€–  โ† location penalty

This makes transitions between many short loops (unconscious) and few long loops (conscious) maximally discriminative.

2. Persistence Landscape (Landscape Current)

The k-th landscape function ฮปโ‚–(t) is the k-th largest tent value at parameter t across all Hโ‚ bars. Lives in Lยฒ โ€” supports averaging, statistical testing, and inner products:

from topoconscious.metrics import PersistenceLandscape
pl = PersistenceLandscape(n_landscapes=5, resolution=100)
vec = pl.vectorize(diagram)       # (500,) feature vector
dist = pl.distance(dgm1, dgm2)    # Lยฒ landscape distance

3. Topological Transfer Entropy (C++/OpenMP)

Directional information flow between brain regions' Hโ‚ persistence time series, parallelised across all O(nยฒ) region pairs:

TE(Xโ†’Y) = H(Yโ‚œ | Yโ‚œโ‚‹โ‚) โˆ’ H(Yโ‚œ | Yโ‚œโ‚‹โ‚, Xโ‚œโ‚‹โ‚)

The C++ extension computes the full 90ร—90 matrix in milliseconds vs. minutes in Python.

4. Full Cycle Localization

Using GUDHI SimplexTree cocycle representatives, each significant Hโ‚ generator is traced back to the specific brain regions forming its boundary โ€” enabling anatomical interpretation of which regions are responsible for each consciousness transition.


๐Ÿ“Š Validation

Three public datasets target the success criterion of AUC > 0.90 (vs. static FC baseline ~0.75):

Dataset Condition Source
Propofol Awake vs. anaesthesia MIT/Tufts (OpenNeuro ds002898)
Sleep REM vs. NREM OpenNeuro ds000201
Disorders of Consciousness MCS vs. UWS Liรจge dataset
from topoconscious.validation import ValidationRunner

runner = ValidationRunner(output_dir="results/validation")
results = runner.evaluate_dataset(ts_list, labels, "propofol")
# results["auc_topo"]  โ†’ e.g. 0.94
# results["auc_fc"]    โ†’ e.g. 0.76
runner.plot_roc_curves(results)

๐Ÿ““ Notebooks

Notebook Description
01_demo_pipeline.ipynb End-to-end run on synthetic 300-volume fMRI data
02_widget_explorer.ipynb Interactive ipywidgets scrubber for persistence diagrams
03_validation_roc.ipynb ROC/AUC evaluation with synthetic labelled datasets
04_real_bids_data.ipynb Full walkthrough: DataLad download โ†’ BIDS โ†’ results

๐Ÿงช Tests

# Run full test suite
pytest tests/ -v

# Run specific module tests
pytest tests/test_topology.py -v
pytest tests/test_metrics.py -v        # includes ValidationRunner smoke test
pytest tests/test_transfer_entropy.py -v

Test coverage:

  • test_topology.py โ€” landmark sampling, diagram shapes, Wasserstein timeline
  • test_hmm.py โ€” fit/decode shapes, p_conscious bounds, score() after fit
  • test_transfer_entropy.py โ€” matrix shape, diagonal=0, non-negativity
  • test_metrics.py โ€” ML current correctness, self-distance=0, ValidationRunner

๐Ÿ“ Project Structure

TopoConscious/
โ”œโ”€โ”€ topoconscious/
โ”‚   โ”œโ”€โ”€ __init__.py              # Package exports
โ”‚   โ”œโ”€โ”€ pipeline.py              # Main orchestrator
โ”‚   โ”œโ”€โ”€ preprocessing.py         # NIfTI/BIDS loader, atlas parcellation
โ”‚   โ”œโ”€โ”€ topology.py              # PersistenceEngine (GUDHI + Ripser)
โ”‚   โ”œโ”€โ”€ hmm.py                   # TopologicalHMM (Gaussian, 2-state)
โ”‚   โ”œโ”€โ”€ transfer_entropy.py      # TopologicalTransferEntropy
โ”‚   โ”œโ”€โ”€ localization.py          # CycleLocalizer (GUDHI SimplexTree)
โ”‚   โ”œโ”€โ”€ visualization.py         # TopoVisualizer (matplotlib + ipywidgets)
โ”‚   โ”œโ”€โ”€ metrics.py               # MuellerLyerCurrent + PersistenceLandscape
โ”‚   โ”œโ”€โ”€ validation.py            # ValidationRunner (ROC/AUC)
โ”‚   โ”œโ”€โ”€ run_pipeline.py          # Convenience entry script
โ”‚   โ””โ”€โ”€ ext/
โ”‚       โ””โ”€โ”€ topo_te.cpp          # C++17/OpenMP transfer entropy extension
โ”œโ”€โ”€ backend/
โ”‚   โ””โ”€โ”€ app.py                   # FastAPI REST endpoint (POST /run)
โ”œโ”€โ”€ notebooks/
โ”‚   โ”œโ”€โ”€ 01_demo_pipeline.ipynb
โ”‚   โ”œโ”€โ”€ 02_widget_explorer.ipynb
โ”‚   โ”œโ”€โ”€ 03_validation_roc.ipynb
โ”‚   โ””โ”€โ”€ 04_real_bids_data.ipynb
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ conftest.py              # Shared session-scoped fixtures
โ”‚   โ”œโ”€โ”€ test_topology.py
โ”‚   โ”œโ”€โ”€ test_hmm.py
โ”‚   โ”œโ”€โ”€ test_transfer_entropy.py
โ”‚   โ””โ”€โ”€ test_metrics.py
โ”œโ”€โ”€ data/                        # Place BIDS datasets here
โ”œโ”€โ”€ results/                     # Pipeline outputs written here
โ”œโ”€โ”€ CITATION.cff                 # Academic citation metadata
โ”œโ”€โ”€ LICENSE                      # Apache 2.0
โ”œโ”€โ”€ requirements.txt
โ””โ”€โ”€ setup.py

โš™๏ธ Configuration Reference

Parameter Default Description
bids_dir โ€” Path to BIDS dataset root
output_dir โ€” Where results are written
window_size 30 TRs per sliding window
step 5 TR step between windows
n_landmarks 200 MaxMin landmark count
max_homology_dim 2 Max homology dim (0=Hโ‚€, 1=Hโ‚, 2=Hโ‚‚)
tr 2.0 Repetition time in seconds
atlas aal aal / schaefer100 / destrieux
use_gpu False Use cupy-accelerated Ripser

๐Ÿ“– References

  1. Edelsbrunner, H. & Harer, J. (2010). Computational Topology: An Introduction. AMS.
  2. Bauer, U. (2021). Ripser: efficient computation of Vietoris-Rips persistence barcodes. J. Applied & Computational Topology.
  3. Divol, V. & Lacombe, T. (2021). Understanding topology and geometry of persistence diagrams via optimal partial transport. J. Applied & Computational Topology.
  4. Bubenik, P. (2015). Statistical topological data analysis using persistence landscapes. JMLR 16.
  5. GUDHI Project. Geometry Understanding in Higher Dimensions. https://gudhi.inria.fr
  6. Schreiber, T. (2000). Measuring information transfer. Physical Review Letters 85(2).

๐Ÿ“„ Citation

If you use TopoConscious in your research, please cite:

@software{topoconscious2026,
  title   = {TopoConscious: Persistent Homology Pipeline for Neural Correlates of Consciousness},
  author  = {Chege, N.},
  year    = {2026},
  version = {0.1.0},
  license = {Apache-2.0},
  url     = {https://github.com/Chege-N/TopoConscious}
}

๐Ÿค Contributing

Pull requests are welcome. For major changes please open an issue first.

# Run tests before submitting
pytest tests/ -v
# Check code style
flake8 topoconscious/ --max-line-length=100

๐Ÿ“œ License

Apache License 2.0 โ€” see LICENSE for details.

Project details


Download files

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

Source Distributions

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

Built Distributions

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

topoconscious-0.1.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (215.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

topoconscious-0.1.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (214.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

topoconscious-0.1.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (214.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

topoconscious-0.1.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (214.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

topoconscious-0.1.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (213.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

topoconscious-0.1.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (211.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

topoconscious-0.1.6-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (211.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

Details for the file topoconscious-0.1.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e300c2e96bb720aa71edc263222f48b01e325a65042b431b3ccd27df186953c2
MD5 260d34021c0fe11ff43783e58ebe469f
BLAKE2b-256 13a1a2304dfd05e234af9e70ed55da2d1769532b527475781254c7815084a924

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: release.yml on Chege-N/TopoConscious

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

File details

Details for the file topoconscious-0.1.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 96a6a02aee84ae63ae983c636a596f6731eb89630cd53de8a4d11dc78ed2b7a5
MD5 a7f84fd76f94871a3a4225efcb666ca1
BLAKE2b-256 ae338e687c3a24a53b1a05535ef5b1cb56c1d14c19a9389cc1d80ed69ba09634

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: release.yml on Chege-N/TopoConscious

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

File details

Details for the file topoconscious-0.1.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 80feb1dc8ec50cfdfc8e68f753b78285fa9ed24c9548027487929328af04c6d0
MD5 363e01b3608a62d579508b189c071d78
BLAKE2b-256 14157fdd4a085712ae9fe6482062112a994bb8d684cfd23564b8ac0044e6eb41

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: release.yml on Chege-N/TopoConscious

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

File details

Details for the file topoconscious-0.1.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8df6cbfc094266aaa8e0fd9a99367e2aa2f06d3566db9e019e5a703664e7fc95
MD5 27750d8f0e5828a1e28c65645d4af902
BLAKE2b-256 23502210f7343d73b914a736b4960d815d7869d052f61918e374b783b83314e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: release.yml on Chege-N/TopoConscious

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

File details

Details for the file topoconscious-0.1.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b072bc305aaa40d7831a6b1d7dd7daf4cdda660a70ee74c212d710fabe9ff8d8
MD5 dff3b4c847ceef43b15342b6e627178b
BLAKE2b-256 284e6c341b622a60d9a604f52fb7d722c09291602f41a752e97cdd7c5238502e

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: release.yml on Chege-N/TopoConscious

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

File details

Details for the file topoconscious-0.1.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 96743783ca14b9219fdd9ef64d626d3436b8cb9ff6280549763c0e40c747927f
MD5 9c1e69855fbc7bfb815ac7b67ce9201c
BLAKE2b-256 0f02c93e3948e12888533dc4935f3bc4f69a41462171a622ee7fc365cfa2137b

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: release.yml on Chege-N/TopoConscious

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

File details

Details for the file topoconscious-0.1.6-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.6-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 326be113d02456e5b7bb58d42156ce7203d49ccf050c70453f8d52511af1f093
MD5 33c377b200f967ba578cb18d0b4d3aaf
BLAKE2b-256 5b84650192438cc6f3217647cc73b7320b5d34b6f19a3d45e81a822f5edc9046

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.6-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: release.yml on Chege-N/TopoConscious

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

Supported by

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