Topological Data Analysis
Persistent homology beyond H0 and H1
A Python and Rust implementation built for performance
TDA does one computational job: Vietoris–Rips persistent homology, quickly. It accepts point clouds, distance matrices, and sparse distance graphs and runs a packed, Ripser-style1 reduction in Rust. Use the result directly as a persistence diagram, or bring a selected class back to the data through topological coordinates.
Limits: up to 16,777,215 points and homology dimension 7. Internally the engine
selects a packed 128-bit or 256-bit simplex layout. Deep dimensions and large
point counts are most practical with quotient, which trades exactness for a
log(3)-interleaved approximation at a fraction of the cost.2
Installation
TDA requires Python 3.11 or newer. Pre-built wheels for common macOS, Windows, and Linux platforms are published on PyPI:
pip install tda
Compiling from source
Building requires Rust/Cargo and maturin:
git clone https://github.com/antonio-leitao/topological-data-analysis.git
cd topological-data-analysis
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
python -m pip install maturin numpy
cd crates/python
maturin develop --release
Quick start
import numpy as np
import tda
points = np.random.rand(200, 3)
barcode = tda.persistent_homology(points, max_dim=2)
# barcode[d] contains the [birth, death] intervals in dimension d.
print(barcode[1])
For a guided introduction, see the runnable notebooks:
persistent_homology.ipynbcovers circles, spheres, distance matrices, and quotient preprocessing.coordinates.ipynbshows circular, toroidal, and fitted coordinates.
Inputs
Set distance_matrix=True for a dense precomputed distance matrix:
barcode = tda.persistent_homology(
distances,
max_dim=1,
distance_matrix=True,
)
Sparse matrices are treated as distance graphs. Entries are edges and missing pairs have infinite distance:
import scipy.sparse as sp
graph = sp.coo_matrix(
([1.0, 1.0, 1.0, 1.0], ([0, 1, 2, 3], [1, 2, 3, 0])),
shape=(4, 4),
)
barcode = tda.persistent_homology(graph, max_dim=1)
Arrays are read in place. C-contiguous float32 or float64 input and the
int32/int64 index and float32/float64 value arrays of CSR, CSC, and COO
matrices reach Rust without a copy; other layouts and sparse formats are copied
once. The GIL is released while persistence runs. Coordinates must be finite
and distances non-negative, otherwise a ValueError names the offending entry.
Parameters
persistent_homology and filtration_size share these options:
| Parameter | Default | Description |
|---|---|---|
max_dim |
1 |
Highest homology dimension to compute; at most 7. |
threshold |
None |
Maximum filtration value. None uses the enclosing radius. |
distance_matrix |
False |
Interpret a dense input as a square distance matrix. |
peel |
True |
Apply the exact dominated-vertex peeling step. |
collapse |
"auto" |
Exact filtration edge collapse: True, False, or "auto".3 |
quotient |
False |
Use the approximate quotient-cover filtration.2 |
parallel |
True |
Parallelize preprocessing and assembly when useful. |
With collapse="auto", collapse is skipped for max_dim=0, runs in full from
max_dim=2 up unless the longest edges show there is nothing to remove, and at
max_dim=1 stops once it costs more than it saves. The barcode is the same
either way.
The result is a list of length max_dim + 1. barcode[d] is an array of
[birth, death] intervals; inf marks an essential feature.
Scaling persistent homology
The filtration is normally the expensive object. TDA provides three composable ways to reduce it before persistence:
| Step | Guarantee | Use it when... |
|---|---|---|
| Peel | Exact | You want a cheap default reduction. It uses dominated vertices to certify a smaller truncation radius. |
| Collapse | Exact | Extra preprocessing is worthwhile to remove filtration-dominated edges.3 |
| Quotient | log(3) interleaving |
The exact filtration is too large and a controlled approximation is acceptable.2 |
For the strongest exact reduction, combine peel and collapse. Peel is based on the established dominated-vertex/strong-collapse idea; to our knowledge, this filtration-peeling implementation is currently specific to TDA. For much larger problems, quotient produces a near-linear skeleton and can still be combined with the exact steps. The canonical order is peel → quotient → collapse.
Every exact step reads the whole graph below the truncation radius, which for
a point cloud is most of its pairs, so exact persistence needs memory
quadratic in the number of points. The quotient does not. With
quotient=True and peel=False, a point cloud above about 26,700 points
never stores its pairs: they are generated in distance bands and consumed in
order, and the result is identical to building them. Memory then follows the
skeleton, which is close to linear in the number of points. Peel needs the
whole graph, so with peel=True the pairs are stored as before.
Benchmark
Left: time to compute persistence up to H_2 on samples of the Stanford dragon,
up to the full 435,545-point scan. Right: time to compute persistence up to H_d
on 500 points sampled from the d-sphere. Both run on one thread. The setup and
raw results are in bench/.
One run of the summary example with
max_dim=2 and parallel=false:
cargo run --release -p tda_core --example summary
| Dataset | Vanilla | Peel | Collapse | Peel+Collapse | Quotient | Quotient+Peel | Q+P+C |
|---|---|---|---|---|---|---|---|
| celegans | 135.22ms | 106.47ms | 37.54ms | 35.61ms | 3.52ms | 3.90ms | 3.79ms |
| vicsek | 134.28ms | 132.84ms | 53.73ms | 55.17ms | 2.00ms | 2.10ms | 2.23ms |
| klein_400 | 230.00ms | 92.60ms | 111.66ms | 59.80ms | 3.64ms | 4.55ms | 4.19ms |
| klein_900 | 3.30s | 1.24s | 1.23s | 618.48ms | 18.44ms | 21.13ms | 21.12ms |
| dragon_1000 | 2.98s | 1.65s | 1.21s | 654.81ms | 19.06ms | 21.56ms | 22.03ms |
| dragon_2000 | 22.43s | 11.09s | 14.10s | 6.54s | 149.59ms | 201.23ms | 213.05ms |
| hiv1 | 12.83s | 6.17s | 3.03s | 1.80s | 126.70ms | 109.23ms | 105.56ms |
Timings depend on hardware; filtration size more directly shows the work that reaches reduction:
| Dataset | Vanilla | Peel | Collapse | Peel+Collapse | Quotient | Quotient+Peel | Q+P+C |
|---|---|---|---|---|---|---|---|
| celegans | 4102122 | 3562466 | 2031 | 2031 | 8944 | 8910 | 757 |
| vicsek | 4089966 | 4052107 | 6109 | 6054 | 2196 | 2196 | 924 |
| klein_400 | 5968412 | 2042830 | 16243 | 16243 | 5219 | 5191 | 1828 |
| klein_900 | 63867012 | 21890852 | 156044 | 156044 | 14607 | 14554 | 5077 |
| dragon_1000 | 56423455 | 25537491 | 108174 | 108174 | 14248 | 14176 | 5287 |
| dragon_2000 | 546815948 | 182326181 | 918585 | 918585 | 30418 | 30366 | 11570 |
| hiv1 | 157117515 | 70122454 | 330419 | 330376 | 117473 | 117427 | 3529 |
On dragon_2000, quotient reduces 546.8 million simplices to about 30.4
thousand and cuts this run from 22.43 seconds to 149.59 milliseconds. That is
the intended quotient use case: a controlled approximation when the full
filtration is the bottleneck.
Using persistence
Persistence diagrams
For many applications, the barcode returned by persistent_homology is the
final summary: long-lived intervals identify features that persist across
scales.
Coordinates
Coordinates bring selected persistent cohomology classes back to the original observations. One H¹ class assigns every point an angle on S¹:4
result = tda.coords.circular(points)
angles = result.coordinates # (n, 1), values in [0, 2π)
Asking for several classes gives one column each. Classes that are alive at a
common scale are jointly decorrelated by lattice reduction into a single map to
a torus; result.groups reports which columns were decorrelated together:5
two_circles = np.concatenate([points, points + [4.0, 0.0]])
result = tda.coords.circular(two_circles, n_classes=2)
result.coordinates # (n, 2)
result.groups # [[0, 1]] — both columns in one toroidal block
Classes that are not co-alive stay independent and come back as singleton
groups ([[0], [1]]), which are plain circular coordinates.
These constructions are adapted from
DREiMAC, the reference
implementation.6 See the
coordinates notebook for the geometric
intuition, class selection, quotient coordinates, and fitted maps for new
data.
The integer lift of the selected cocycle is checked for closedness. DREiMAC can repair a failed lift with mixed-integer optimization; TDA instead returns an error and leaves the choice of another class, scale, or prime to the user.7
Additional APIs
Use filtration_size to inspect the truncated filtration under the same
preprocessing options without computing persistence:
size = tda.filtration_size(points, max_dim=2, quotient=True)
A fitted circular_map transforms new point-cloud observations without
recomputing persistence. See the
coordinates notebook for examples.
Rust
The Rust crate is published as
tda_core:
[dependencies]
tda_core = "0.4"
use tda_core::{persistent_homology, Error};
fn main() -> Result<(), Error> {
let points = vec![
0.0, 0.0,
1.0, 0.0,
0.0, 1.0,
1.0, 1.0,
];
let barcode = persistent_homology(&points, 4, 1)?;
println!("{:?}", barcode.intervals);
Ok(())
}
Distance matrices, sparse COO and CSR/CSC distance graphs, thresholds, and
preprocessing options are available through Config and the corresponding
_with, _sparse, and _csr functions. Every entry point reads f32 or
f64 values and u32, u64, i32, or i64 indices in place. Invalid input
returns tda_core::Error.
References
License
TDA is distributed under the MIT License.
-
U. Bauer. Ripser: efficient computation of Vietoris–Rips persistence barcodes. Journal of Applied and Computational Topology, 2021. arXiv:1908.02518. ↩
-
A. Leitão. It's All About Covers: Persistent Homology of Cover Refinements. arXiv:2602.22784. ↩ ↩2 ↩3
-
J.-D. Boissonnat and S. Pritam. Edge Collapse and Persistence of Flag Complexes. SoCG 2020. DOI:10.4230/LIPIcs.SoCG.2020.19. M. Glisse and S. Pritam. Swap, Shift and Trim to Edge Collapse a Filtration. SoCG 2022. DOI:10.4230/LIPIcs.SoCG.2022.44. ↩ ↩2
-
V. de Silva, D. Morozov, and M. Vejdemo-Johansson. Persistent Cohomology and Circular Coordinates. Discrete & Computational Geometry, 2011. DOI:10.1007/s00454-011-9344-x. ↩
-
L. Scoccola, H. Gakhar, J. Bush, N. Schonsheck, T. Rask, L. Zhou, and J. A. Perea. Toroidal Coordinates: Decorrelating Circular Coordinates with Lattice Reduction. SoCG 2023. DOI:10.4230/LIPIcs.SoCG.2023.57. ↩
-
J. A. Perea, L. Scoccola, and C. J. Tralie. DREiMac: Dimensionality Reduction with Eilenberg–MacLane Coordinates. Journal of Open Source Software 8(91), 5791, 2023. DOI:10.21105/joss.05791. Source (Apache-2.0). ↩
-
DREiMAC documentation. Choosing the parameters prime and check_cocycle_condition. Documentation. ↩
Metadata
Release files for tda 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 18.8 MB
Release files / tda-0.4.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | tda-0.4.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 705.8 kB |
| Tags | Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3 |
|
SHA-256 checksum How to use checksums |
b4dcbbc867e450854eab7760591ab2369f84c1a6ba832d3da14db463fad7b97f
|
|
BLAKE2b-256 checksum How to use checksums |
f050b0d73c2c7de13ea587de8738d977c8f9910a3a537c1be521f628aab552fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | tda-0.4.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 644.3 kB |
| Tags | Linux glibc 2.17+ ARM64 PyPy 3.11 PyPy 3.11 7.3 |
|
SHA-256 checksum How to use checksums |
01efc4e3f15786cceec569ae4a21a3a10c537251e8e6a13d4e004091a22f669b
|
|
BLAKE2b-256 checksum How to use checksums |
543e69b4932c24e58dbaf32838dd2c401395b482f629b3ed3909d83b70e8797d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | tda-0.4.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 703.1 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
853af8e7fb057bb210a58d05b0e069991e2a43beb7fc63a3fe30bcc23ebcdb62
|
|
BLAKE2b-256 checksum How to use checksums |
440d803e3241dfee179ecb00ec9cc40ba16e44bfc6110c307b19a661959168e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp315-cp315-win_amd64.whl
| Download URL | tda-0.4.0-cp315-cp315-win_amd64.whl |
|---|---|
| Size | 586.3 kB |
| Tags | CPython 3.15 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
83b60c929739125d66055e02b4afd760d5e2221ccec9a4649cba578a2d0b5995
|
|
BLAKE2b-256 checksum How to use checksums |
1eee3024757e39aadcfc1215e5de2297ff47a4c29f34560919c2e459fe8451ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | tda-0.4.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 702.0 kB |
| Tags | CPython 3.15 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
0c7a708aa7c321bc52ff08a50bace090836fbd3b8ab47efc27335c319d832c37
|
|
BLAKE2b-256 checksum How to use checksums |
cc16feedb17479da39b25fc52c162b437049d0330f18aba1efbdc81ca351788e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp315-cp315-macosx_11_0_arm64.whl
| Download URL | tda-0.4.0-cp315-cp315-macosx_11_0_arm64.whl |
|---|---|
| Size | 599.8 kB |
| Tags | CPython 3.15 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0ba05f4cff90b01e0151a27e53e8e0752095490b1e2aa600e1df547d136cdc9d
|
|
BLAKE2b-256 checksum How to use checksums |
7b3f0659a4e7ffa7dc622dc148779c2892ba634dd273927c2fdf3a7bbbc7f27c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp315-cp315-macosx_10_12_x86_64.whl
| Download URL | tda-0.4.0-cp315-cp315-macosx_10_12_x86_64.whl |
|---|---|
| Size | 668.8 kB |
| Tags | CPython 3.15 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
c784051c123616f0b0571ee04265ec968393ce6478dddf3231a96358c1e475af
|
|
BLAKE2b-256 checksum How to use checksums |
82bfa35c6a24ed59b7a935c7d5c45469faf05256fa6e0553c40a19a4bafcb24f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | tda-0.4.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 703.1 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
298fcd1ab15a3151c8a9ec3cacb8337b3da333ad7b226409d7d508d081434530
|
|
BLAKE2b-256 checksum How to use checksums |
f57c0c9912e6aeb1799f4c84520e9e67e52e3b12b524facc99d61ca37b8c8ef9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | tda-0.4.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 640.0 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
ef88de8415c61abf4a464ff733874fb16e687b69f8ef9b57506e289a5a5781f5
|
|
BLAKE2b-256 checksum How to use checksums |
bb0c94dbc3b8f6d1bf8edf6d5419fce0f4320de35f08a114f74be52a9b897f88
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp314-cp314-win_amd64.whl
| Download URL | tda-0.4.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 586.3 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b80c1dbde707a54e7f8fd6eaa94c32725214d717c98e8aa40868e752d9fc3399
|
|
BLAKE2b-256 checksum How to use checksums |
756de0e0b0734ee222086670b5b99bfd03eb0b1971b15d0992b83baad2bffc58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | tda-0.4.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 702.0 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
bbdb9f05caff8cdf106b9b63e6295ecc4ffda4791f292c0331688b4e9a367a91
|
|
BLAKE2b-256 checksum How to use checksums |
f2ea47044b4ff2bf40f788f3a459691c5b5d818b0961d8000cce17ffa579c463
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | tda-0.4.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 640.2 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
fc6c8dc1ffa5b1baac7c372156a4abadc4731f869c44c6944dadd9b8b4a039c0
|
|
BLAKE2b-256 checksum How to use checksums |
76789e9905881658616f9e3c6ae238b7f6176c01463a3629b62f6706c92afdee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | tda-0.4.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 599.8 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
351980372502176822152193975c624a19d0c5448cb96a8585358139debcafc4
|
|
BLAKE2b-256 checksum How to use checksums |
8a80c88e1e42e4ac7ff01c2b4f564c8f341001dc73ff61ad0238a6751b084067
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | tda-0.4.0-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 668.8 kB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
8b3cfb12612f08725ac747d52d621933083e52c3a699e40d026c6d8319dc2fb1
|
|
BLAKE2b-256 checksum How to use checksums |
34a2a83eeb48c6d047a89ad6ac025fd7453e6dfabce7606a854bffa942f55602
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp313-cp313-win_amd64.whl
| Download URL | tda-0.4.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 586.6 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
cc6a5573939e18879932995fa4b7455b05b398ee63dd8f5f9fb165f9cf5cfd5a
|
|
BLAKE2b-256 checksum How to use checksums |
ae6906887823d4e76c241ae8122043801dfb4ff5944f99d90e4034ca20aa2191
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | tda-0.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 701.9 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
f091c6bea563b36a21069cfd2577104c454e39641adade29c680c7219a730306
|
|
BLAKE2b-256 checksum How to use checksums |
08a9059f97fa8859e6a3988d41875f5007113fd4aab7d5e2b268f3ec64f72583
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | tda-0.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 640.3 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
fcddd741989e0b73c7a5d383acd8215f1ed6358b0e6637b16cc2abcc77601a70
|
|
BLAKE2b-256 checksum How to use checksums |
dd1d6e8ea087eddeee02f174b522de8c481d7946697184dcd1b0cc92cf0be721
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | tda-0.4.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 599.9 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
855825068504090d4fa49416e3d6c9467215426d214a6d7ec9e52159739a4ba8
|
|
BLAKE2b-256 checksum How to use checksums |
39ad55ea902660e29ae041938a1baafa74ae7b0c96e36bf8a4d796dc44492be3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | tda-0.4.0-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 668.4 kB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
a3aaca7de6e3d949f0ac0976d45d4586a7bc471ef4a95661f428ebfde2140ad5
|
|
BLAKE2b-256 checksum How to use checksums |
3396a55bb6b1f7f986d5a35d9f15ddfde7ba5052b5db9e809493ee051c36a8e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp312-cp312-win_amd64.whl
| Download URL | tda-0.4.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 586.6 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4bebcf2cc73efd98468af8bf7f556798f831b477275087474b0faa86728f76bb
|
|
BLAKE2b-256 checksum How to use checksums |
443cc24bcf2f9ac26754b5214faf543804c956c3c99bd72562487112a8cbaaf4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | tda-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 702.0 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
0d55e79794d4d48e6dc4f14ae21cfb0744090ac796f14c9c64ce48ea4c2653f7
|
|
BLAKE2b-256 checksum How to use checksums |
0d2cbebc18914631ba983be8f3b2de5415bb1c41501a198d9f797724d4cb69e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | tda-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 640.4 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
5b25a79b1597dda7c38690ab91b02df707f85b5bb68f9d68128ce7175b28d718
|
|
BLAKE2b-256 checksum How to use checksums |
eaec8e4f0bc9cd0926778962f129890e14570cf015980db97fcaaa548ffe8577
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | tda-0.4.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 600.0 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a31ae7a2a6a367d43533f9f1b69711658119082468150589a66c5d044825aa1e
|
|
BLAKE2b-256 checksum How to use checksums |
1ea643c036cf69c97024c6cb4db4125a502a523b788a6717ea74b4f7197a4c04
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | tda-0.4.0-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 668.5 kB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
4399bcc73a66b9f8a1608965713842cab0c322a20fe142c53269f9a991c4007b
|
|
BLAKE2b-256 checksum How to use checksums |
dc86fa4a417efaa5261097d412c259670adb0cb8581b3a0742a831ef97c00558
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp311-cp311-win_amd64.whl
| Download URL | tda-0.4.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 589.2 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b6892dd0e2d60d5774fa3708efab4c04ea9b6ff8de803c18ad3c512101f1db39
|
|
BLAKE2b-256 checksum How to use checksums |
14706591f2a688af5a9823d684521135797034061663224f7c195cc9f6bca14d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | tda-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 704.6 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
454ddf6e40b25ec214f208dee3d526e0868bcd433bd9ce0204cd88178be7c05d
|
|
BLAKE2b-256 checksum How to use checksums |
d665c712acbd3a755aba8e85d077de5dd067cbe13bcb2d89da3814c6487da2b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | tda-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 643.3 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
6db4a9c421096f07734e5b9ed6fd61b89a2cb3a575e5648ab97bab83aa55829d
|
|
BLAKE2b-256 checksum How to use checksums |
7a68c3b79bd6f1aa0533163e66ee1325cf66e0a29abea99534aac6453ff49a66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | tda-0.4.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 601.7 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
f3dcfd0ba0c9e9a41774b9a28b6a6fd951580ff3c6fe94c762fb56a8f87471f3
|
|
BLAKE2b-256 checksum How to use checksums |
e4f8c90d4dffddec7a1d707ea145fdffeefa72195e54b2a7e55f9a0af54410b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Release files / tda-0.4.0-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | tda-0.4.0-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 670.7 kB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
0bd6e9f3bf556b8d8d50de61ec9e2bfe1b28eb325e8eb756da8283403fe91e71
|
|
BLAKE2b-256 checksum How to use checksums |
e16f0709c317bc2c447934f6821f86afa426706c5c849d0a3403212ee91b0159
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.15.0
|
Security for tda 0.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.