Persistent homology pipeline for detecting neural correlates of consciousness from fMRI
Project description
๐ง TopoConscious
Persistent Homology Pipeline for Neural Correlates of Consciousness
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 timelinetest_hmm.pyโ fit/decode shapes, p_conscious bounds, score() after fittest_transfer_entropy.pyโ matrix shape, diagonal=0, non-negativitytest_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
- Edelsbrunner, H. & Harer, J. (2010). Computational Topology: An Introduction. AMS.
- Bauer, U. (2021). Ripser: efficient computation of Vietoris-Rips persistence barcodes. J. Applied & Computational Topology.
- Divol, V. & Lacombe, T. (2021). Understanding topology and geometry of persistence diagrams via optimal partial transport. J. Applied & Computational Topology.
- Bubenik, P. (2015). Statistical topological data analysis using persistence landscapes. JMLR 16.
- GUDHI Project. Geometry Understanding in Higher Dimensions. https://gudhi.inria.fr
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file topoconscious-0.1.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: topoconscious-0.1.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 215.6 kB
- Tags: CPython 3.14t, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e300c2e96bb720aa71edc263222f48b01e325a65042b431b3ccd27df186953c2
|
|
| MD5 |
260d34021c0fe11ff43783e58ebe469f
|
|
| BLAKE2b-256 |
13a1a2304dfd05e234af9e70ed55da2d1769532b527475781254c7815084a924
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
topoconscious-0.1.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
e300c2e96bb720aa71edc263222f48b01e325a65042b431b3ccd27df186953c2 - Sigstore transparency entry: 1498835187
- Sigstore integration time:
-
Permalink:
Chege-N/TopoConscious@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/Chege-N
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file topoconscious-0.1.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: topoconscious-0.1.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 214.2 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96a6a02aee84ae63ae983c636a596f6731eb89630cd53de8a4d11dc78ed2b7a5
|
|
| MD5 |
a7f84fd76f94871a3a4225efcb666ca1
|
|
| BLAKE2b-256 |
ae338e687c3a24a53b1a05535ef5b1cb56c1d14c19a9389cc1d80ed69ba09634
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
topoconscious-0.1.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
96a6a02aee84ae63ae983c636a596f6731eb89630cd53de8a4d11dc78ed2b7a5 - Sigstore transparency entry: 1498835501
- Sigstore integration time:
-
Permalink:
Chege-N/TopoConscious@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/Chege-N
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file topoconscious-0.1.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: topoconscious-0.1.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 214.1 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80feb1dc8ec50cfdfc8e68f753b78285fa9ed24c9548027487929328af04c6d0
|
|
| MD5 |
363e01b3608a62d579508b189c071d78
|
|
| BLAKE2b-256 |
14157fdd4a085712ae9fe6482062112a994bb8d684cfd23564b8ac0044e6eb41
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
topoconscious-0.1.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
80feb1dc8ec50cfdfc8e68f753b78285fa9ed24c9548027487929328af04c6d0 - Sigstore transparency entry: 1498835100
- Sigstore integration time:
-
Permalink:
Chege-N/TopoConscious@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/Chege-N
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file topoconscious-0.1.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: topoconscious-0.1.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 214.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8df6cbfc094266aaa8e0fd9a99367e2aa2f06d3566db9e019e5a703664e7fc95
|
|
| MD5 |
27750d8f0e5828a1e28c65645d4af902
|
|
| BLAKE2b-256 |
23502210f7343d73b914a736b4960d815d7869d052f61918e374b783b83314e5
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
topoconscious-0.1.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
8df6cbfc094266aaa8e0fd9a99367e2aa2f06d3566db9e019e5a703664e7fc95 - Sigstore transparency entry: 1498835436
- Sigstore integration time:
-
Permalink:
Chege-N/TopoConscious@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/Chege-N
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file topoconscious-0.1.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: topoconscious-0.1.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 213.4 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b072bc305aaa40d7831a6b1d7dd7daf4cdda660a70ee74c212d710fabe9ff8d8
|
|
| MD5 |
dff3b4c847ceef43b15342b6e627178b
|
|
| BLAKE2b-256 |
284e6c341b622a60d9a604f52fb7d722c09291602f41a752e97cdd7c5238502e
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
topoconscious-0.1.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
b072bc305aaa40d7831a6b1d7dd7daf4cdda660a70ee74c212d710fabe9ff8d8 - Sigstore transparency entry: 1498835274
- Sigstore integration time:
-
Permalink:
Chege-N/TopoConscious@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/Chege-N
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file topoconscious-0.1.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: topoconscious-0.1.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 211.8 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96743783ca14b9219fdd9ef64d626d3436b8cb9ff6280549763c0e40c747927f
|
|
| MD5 |
9c1e69855fbc7bfb815ac7b67ce9201c
|
|
| BLAKE2b-256 |
0f02c93e3948e12888533dc4935f3bc4f69a41462171a622ee7fc365cfa2137b
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
topoconscious-0.1.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
96743783ca14b9219fdd9ef64d626d3436b8cb9ff6280549763c0e40c747927f - Sigstore transparency entry: 1498835578
- Sigstore integration time:
-
Permalink:
Chege-N/TopoConscious@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/Chege-N
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file topoconscious-0.1.6-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: topoconscious-0.1.6-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 211.6 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
326be113d02456e5b7bb58d42156ce7203d49ccf050c70453f8d52511af1f093
|
|
| MD5 |
33c377b200f967ba578cb18d0b4d3aaf
|
|
| BLAKE2b-256 |
5b84650192438cc6f3217647cc73b7320b5d34b6f19a3d45e81a822f5edc9046
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
topoconscious-0.1.6-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
326be113d02456e5b7bb58d42156ce7203d49ccf050c70453f8d52511af1f093 - Sigstore transparency entry: 1498835360
- Sigstore integration time:
-
Permalink:
Chege-N/TopoConscious@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/Chege-N
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@701a4755f0cb57d2cc060de215b4e435b07b0cd8 -
Trigger Event:
push
-
Statement type: