Skip to main content

TDA logo

Topological Data Analysis

Persistent homology beyond H0 and H1
A Python and Rust implementation built for performance

Pepy total downloads

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:

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

Time against sample size on the Stanford dragon for GUDHI, TDA exact, and TDA quotient Time against homology dimension for GUDHI, TDA exact, and TDA quotient

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.

  1. U. Bauer. Ripser: efficient computation of Vietoris–Rips persistence barcodes. Journal of Applied and Computational Topology, 2021. arXiv:1908.02518. ↩

  2. A. Leitão. It's All About Covers: Persistent Homology of Cover Refinements. arXiv:2602.22784. ↩ ↩2 ↩3

  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

  4. 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. ↩

  5. 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. ↩

  6. 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). ↩

  7. 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)

Table of built distributions (wheels) for tda 0.4.0
File Actions
tda-0.4.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details for tda-0.4.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
tda-0.4.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ ARM64 Details for tda-0.4.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
tda-0.4.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Details for tda-0.4.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
tda-0.4.0-cp315-cp315-win_amd64.whl CPython 3.15 CPython 3.15 Windows x86-64 Details for tda-0.4.0-cp315-cp315-win_amd64.whl
tda-0.4.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.17+ x86-64 Details for tda-0.4.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
tda-0.4.0-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details for tda-0.4.0-cp315-cp315-macosx_11_0_arm64.whl
tda-0.4.0-cp315-cp315-macosx_10_12_x86_64.whl CPython 3.15 CPython 3.15 macOS 10.12+ x86-64 Details for tda-0.4.0-cp315-cp315-macosx_10_12_x86_64.whl
tda-0.4.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details for tda-0.4.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
tda-0.4.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details for tda-0.4.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
tda-0.4.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for tda-0.4.0-cp314-cp314-win_amd64.whl
tda-0.4.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details for tda-0.4.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
tda-0.4.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details for tda-0.4.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
tda-0.4.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for tda-0.4.0-cp314-cp314-macosx_11_0_arm64.whl
tda-0.4.0-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details for tda-0.4.0-cp314-cp314-macosx_10_12_x86_64.whl
tda-0.4.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for tda-0.4.0-cp313-cp313-win_amd64.whl
tda-0.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details for tda-0.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
tda-0.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details for tda-0.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
tda-0.4.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for tda-0.4.0-cp313-cp313-macosx_11_0_arm64.whl
tda-0.4.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details for tda-0.4.0-cp313-cp313-macosx_10_12_x86_64.whl
tda-0.4.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for tda-0.4.0-cp312-cp312-win_amd64.whl
tda-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details for tda-0.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
tda-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details for tda-0.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
tda-0.4.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for tda-0.4.0-cp312-cp312-macosx_11_0_arm64.whl
tda-0.4.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details for tda-0.4.0-cp312-cp312-macosx_10_12_x86_64.whl
tda-0.4.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for tda-0.4.0-cp311-cp311-win_amd64.whl
tda-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details for tda-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
tda-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details for tda-0.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
tda-0.4.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for tda-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
tda-0.4.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details for tda-0.4.0-cp311-cp311-macosx_10_12_x86_64.whl

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page