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 Distribution

topoconscious-0.1.10.tar.gz (35.5 kB view details)

Uploaded Source

Built Distributions

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

topoconscious-0.1.10-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.10-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.10-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.10-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.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (213.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

topoconscious-0.1.10-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.10-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.10.tar.gz.

File metadata

  • Download URL: topoconscious-0.1.10.tar.gz
  • Upload date:
  • Size: 35.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for topoconscious-0.1.10.tar.gz
Algorithm Hash digest
SHA256 a0d8248409c7f3f7d8a3d0f757ea1c29e005f3f46cd4ee9702ad77f0eb1d078d
MD5 75f290624397f2adae1cfb8bf4ed1322
BLAKE2b-256 8ee31956004b44b93aaf4f43657c020dca24f8e78980f115182b22aca7a9374d

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.10.tar.gz:

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.10-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.10-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 76ae996dd42d6465400ebbbf442dd97953da45bb5c185887a32e50cd6d8793ac
MD5 86c2a68f2e1434d2e66740d5db63a3c8
BLAKE2b-256 49cbea656aeee6d7b19ee8856c1b2364e089a3fd1b3edd7a42e0fc2d7ef2c4fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.10-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.10-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.10-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8d668fcb158d0a1c0a28c759bcc7d3f7526327b5e1a777f85317c70ef080e2ab
MD5 563c6b1efd5b94babd5de9a5f3705865
BLAKE2b-256 422be04a575743194ddd71a14a6e2d3025cf3236f2ce7511a81d67cad6ca42eb

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.10-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.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a53ab8f58ee86e21da1b25673d347eb3a522f182f51c3e4605681201edb54f33
MD5 6be0915e6e5086c72e10958d98b6b130
BLAKE2b-256 439bb2839bbc7e7988d914d5eea2f3d1e7af46be400819c0d5af12546f6aeee8

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.10-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.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b160ac5a5dcede7676ff3901b992a8875a2a5ef925e8e0d0c0ab9cb62d2eef8b
MD5 89c0539fe360094976b7f14fe36e4d00
BLAKE2b-256 160bbe7587943592f73ddec594b58f89955a5426c6a698c8aae98c7e6925f41c

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.10-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.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a54c1a30dfdd233560cd3ffbe8ecd0f445768384b313c819d0e38022329cd623
MD5 16549090974c182dd34a099492b79458
BLAKE2b-256 a1d1ae79834cd63bf507a22bb7516bc271ac9e00c24025855303f5a22f2f9d0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.10-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.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e101ddd1b48c25a352643da4bf40a4535e9ac0fcf5e3e534edc3f1887c6610d4
MD5 fee26efaa0f1f051cabef94cb2f80dae
BLAKE2b-256 e638e7e0956e06f86af88337ae001e2ca73a3ea127798f3880294b3007324eba

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.10-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.10-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for topoconscious-0.1.10-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e890007bf4917fb47fd5c12e221da33aa07dff71d65674930a56db51f87e19e4
MD5 ba8b1007faeb2f4651ae5c8d0d128ca1
BLAKE2b-256 9713d47779a7a508261f7470418903e445c3609802bbf45598caf5144b91fee9

See more details on using hashes here.

Provenance

The following attestation bundles were made for topoconscious-0.1.10-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