Skip to main content

Fast NeighbourNet (Rust) with Python bindings

Project description

DOI

fast-nnt

fast-nnt (read Fast Ent) is a simple Rust implementation of the Neighbour Net algorithm with both R and Python bindings.

Introduction

Neighbour networks are a flexible, model-free method for visualising pairwise distance data. Because they operate directly on any distance matrix, the same approach applies across biological scales and data types, from SNP-based population genomics and whole-genome ANI distances, to discrete morphological characters. A single network can simultaneously reveal population structure, admixture, clonal relationships, and relative diversity, often capturing information that would otherwise require multiple complementary analyses.

Applications of neighbour networks across data types The figure above shows three examples: (a) population structure in the critically endangered conifer Pherosphaera fitzgeraldii inferred from SNP distances; (b) morphological relationships among pachycephalosaur dinosaurs from discrete character distances; and (d) phylogroup-level relationships among E. coli genomes from inverse ANI distances.

Fast-NNT is a Rust implementation of the NeighbourNet algorithm (Bryant & Moulton, 2004), designed for efficient phylogenetic analysis. From a distance matrix it constructs a split network and computes a planar 2-D layout for it using the equal-angle algorithm, providing a fast and reliable tool for researchers in evolutionary biology. R and Python bindings are provided so that users can easily integrate Fast-NNT into their existing workflows.

Note that NeighbourNet produces an implicit (split) network: a planar diagram that summarises conflicting signal in the data for exploratory analysis. Unlike explicit networks, the parallelogram "boxes" do not model specific reticulation events such as hybridisation or introgression (see Kong et al. 2025).

Why does this exist when SplitsTree is available?

Well, SplitsTree4/6 are GUI-based applications, while Fast-NNT is a command-line tool that can be easily integrated into automated workflows and pipelines. It's meant to be lightweight and simple to use, you provide a simple input and it generates the nexus file. You can then use this file in R or Python to generate your own plots. This is perfect for people who love to manually beautify their visualizations.

Additionally, we provide R and Python bindings that allow you pass in memory data matrices directly with a single command and get results without having to write intermediate files. For installation instructions, please refer to the respective documentation for R and Python.

How do the results compare to SplitsTree?

Fast-NNT aims to produce results that are consistent with those generated by SplitsTree, but there may be differences due to the underlying implementations and algorithms used. Users are encouraged to compare the output from Fast-NNT with that of SplitsTree to assess any discrepancies and determine the best tool for their specific needs.

Comparison to SplitsTree4/6 Comparison of network outputs between SplitsTree4 GUI, SplitsTree6 GUI, and fastnnt CLI using multi-way ordering with conjugate-gradient and active-set inference.

Benchmarks Performance benchmarks comparing fast-nnt, phangorn, splitspy, and splitstree6 across panmictic and three-island population models. Panels show PCA of input data (a–d), elapsed time (e–f), and peak RAM usage (g–h).

Installation

Install Rust via rustup.

Python

You can install the Python package via pip:

pip install fastnntpy

R

You can install the R package via:

install.packages("fastnntr")

# Or if CRAN is unavailable and you have Rust on your machine, i think this will work
devtools::install_github("rhysnewell/fast-nnt", subdir = "fastnntr")

If you are developing locally and have changed the R bindings:

rextendr::document()
devtools::load_all()

CLI

cargo install fast-nnt
fast_nnt --help # or fastnnt --help

Alternatively, you can build from source. Clone and install this repo via:

git clone https://github.com/rhysnewell/fast-nnt.git
cd fast-nnt
cargo install --path .
fast_nnt --help # or fastnnt --help

Usage

For Python and R, complete usage examples can be found in test/python and test/R. But a brief summary is as follows.

Ordering and inference methods

Fast-NNT exposes two knobs that match the algorithmic choices in SplitsTree:

  • Ordering (ordering_method / -O): the cycle construction step.
    • multiway (default) — multi-way agglomerative ordering (alias: splitstree4)
    • closest-pair — closest-pair agglomeration from Bryant & Huson 2023 (alias: huson2023)
  • Inference (inference_method / --inference): the split-weight solver.
    • active-set (default) — active-set NNLS with CGNR inner solver
    • cg — conjugate-gradient NNLS solver (alias: splitstree4)
  • For SplitsTree6-style defaults, use ordering_method="multiway" with inference_method="active-set" (or -O multiway --inference active-set in the CLI).
  • For SplitsTree4-style defaults, use ordering_method="multiway" with inference_method="cg" (or -O multiway --inference cg in the CLI).

Note: When using cg inference on large matrices (N > 2000), we recommend using closest-pair ordering (-O closest-pair). The multiway ordering can produce cycles that cause highly variable convergence times in the CG weight solver depending on input row/column order, while closest-pair ordering produces more consistently performant cycles.

Ordering variance Elapsed time variance across ordering and inference method combinations on n=3333 taxa, showing that closest-pair + active-set is the most consistent.

Python

Set the thread count once per session:

import fastnntpy as fn
fn.set_fastnnt_threads(4)

Read data in via numpy, pandas, or polars:

import fastnntpy as fn
import pandas as pd
data = pd.read_csv("test/data/large/large_dist_matrix.csv")
n = fn.run_neighbour_net(
    data,
    ordering_method="closest-pair",
    inference_method="active-set",
)
print("Labels")
print(len(n.get_labels()))
print("Splits Records")
print(len(n.get_splits_records()))
print("Node Translations")
print(len(n.get_node_translations()))
print("Node Positions")
print(len(n.get_node_positions()))
print("Graph Edges")
print(len(n.get_graph_edges()))

R

Set the thread count once per session:

library(fastnntr)
fastnntr::set_fastnnt_threads(4)

Read your distance matrix in using your preferred method (e.g., data.table):

library(fastnntr)
library(data.table)
data <- fread("test/data/large/large_dist_matrix.csv", header=TRUE)
# Load network
Nnet <- fastnntr::run_neighbournet_networkx(
  data,
  ordering_method="closest-pair",
  inference_method="active-set"
)

The run_neighbournet_networkx function will return an object almost identical to that produced by phangorn, so should be compatible with existing workflows.

CLI

Required input is a symmetrical distance matrix, ideally with a header row indicating the taxa labels. Can be separated by any delimiter.

To generate a split nexus file (mostly) identical to SplitsTree4 and SplitsTree6:

fastnnt neighbour_net -t 4 -i test/data/large_dist_matrix.csv -d output_dir -o prefix -O multiway

Use the closest-pair ordering algorithm:

fastnnt neighbour_net -t 4 -i test/data/large_dist_matrix.csv -d output_dir -o prefix -O closest-pair

Select the split-weight inference method:

fastnnt neighbour_net -t 4 -i test/data/large_dist_matrix.csv -d output_dir -o prefix --inference active-set
fastnnt neighbour_net -t 4 -i test/data/large_dist_matrix.csv -d output_dir -o prefix --inference cg

Output

The output will include a nexus file containing the split network and network layout.

Citations

If you use this tool in your work, please cite the original authors work:

  • Bryant & Huson 2023: D. Bryant and DH Huson, NeighborNet- improved algorithms and implementation. Front. Bioinform. 3, 2023.
  • Bryant & Moulton 2004: D. Bryant and V. Moulton. Neighbor-net: An agglomerative method for the construction of phylogenetic networks. Molecular Biology and Evolution, 21(2):255– 265, 2004.

You can also cite this repository directly:

Project details


Download files

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

Source Distributions

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

Built Distributions

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

fastnntpy-0.3.0-cp314-cp314-win_amd64.whl (421.5 kB view details)

Uploaded CPython 3.14Windows x86-64

fastnntpy-0.3.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (676.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

fastnntpy-0.3.0-cp314-cp314-macosx_11_0_arm64.whl (536.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

fastnntpy-0.3.0-cp313-cp313-win_amd64.whl (420.3 kB view details)

Uploaded CPython 3.13Windows x86-64

fastnntpy-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (675.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

fastnntpy-0.3.0-cp313-cp313-macosx_11_0_arm64.whl (536.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fastnntpy-0.3.0-cp312-cp312-win_amd64.whl (420.2 kB view details)

Uploaded CPython 3.12Windows x86-64

fastnntpy-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (675.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

fastnntpy-0.3.0-cp312-cp312-macosx_11_0_arm64.whl (536.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

fastnntpy-0.3.0-cp311-cp311-win_amd64.whl (420.6 kB view details)

Uploaded CPython 3.11Windows x86-64

fastnntpy-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (677.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

fastnntpy-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (540.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

fastnntpy-0.3.0-cp310-cp310-win_amd64.whl (420.6 kB view details)

Uploaded CPython 3.10Windows x86-64

fastnntpy-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (676.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

fastnntpy-0.3.0-cp310-cp310-macosx_11_0_arm64.whl (540.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

fastnntpy-0.3.0-cp39-cp39-win_amd64.whl (421.7 kB view details)

Uploaded CPython 3.9Windows x86-64

fastnntpy-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (677.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

fastnntpy-0.3.0-cp39-cp39-macosx_11_0_arm64.whl (540.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

fastnntpy-0.3.0-cp38-cp38-win_amd64.whl (421.4 kB view details)

Uploaded CPython 3.8Windows x86-64

fastnntpy-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (676.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

fastnntpy-0.3.0-cp38-cp38-macosx_11_0_arm64.whl (540.1 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file fastnntpy-0.3.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: fastnntpy-0.3.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 421.5 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for fastnntpy-0.3.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e874691bc0b591da63076effed5d40a1a0803fe10ae3f6ac4cdbf6f1b4f5bde9
MD5 d9904719830fc35a1cc05bae7e2908ad
BLAKE2b-256 fa95a9d3e3b6ac02b1f68a533f5d0b5370fb3baf3ebd348b3d38340bb0771bad

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d57813d5628e3bb3d82232bac8f95556516066ccc832a2aaa2f412cbb41eb06c
MD5 03baf1437658e89960b88647d68098a6
BLAKE2b-256 216f0980241dfd35b7527b6e5004d4b157f5acaf747b29fc87f8ef9ead77ad41

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4ba51701b8e5df56b83bc2802a608a0aed647f5f3d9d859bded1674599e58e62
MD5 424b123530999a9d2a88f3e4aafa1631
BLAKE2b-256 1bbb48a2530bf4b8a04d89c2cc2c37742c0e0111842a0734da1d280192dc11eb

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: fastnntpy-0.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 420.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for fastnntpy-0.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8246baa8188568eb546080abf924779edddd990e23b82923dc28e7cd67ec72b1
MD5 81d9b8708691a550554bdb09e46e5c53
BLAKE2b-256 d8d86d77fac082ee4381fbb345528faf6c9c682dea0cd2ca86e9dd733c2955c0

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae573f9112ec92a5c212fddb1931420d8ecbed810cbb07b665fb8db67dae0c9b
MD5 7d1868ff93bf8350e3c03a65a9b14ea8
BLAKE2b-256 38308ff1b070794b01b73e6f65903a5974cfa274993351ae05f942633fa6f405

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4466aecc8ec36826676f310569fe993e0d97d73c3f275283b5eac5781183a450
MD5 6eb93c94880253fdc6a42dc60842ffa7
BLAKE2b-256 c135f742b57c703f763756fb61b3a8047aa884629efc5ddb24fdacc39ee950b2

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: fastnntpy-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 420.2 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for fastnntpy-0.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 45199ec0c588cdcfb1be4ee523306d7ec6610753ab48a39ecf0d1332cd746fe4
MD5 8c847a5f43b9211896ad50f7862b9dd8
BLAKE2b-256 dfbb4094db570e9ea37e050bce61f16820c56412117a702765dcf01d7ace0e7d

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 52d892e691b7a22aa758a3a8ed33b1da4258a25681dcfa4d7784b077fa253a92
MD5 950e8ca66643b74cf88518fea58e6dfa
BLAKE2b-256 f8a15283553349bc11e10e8c33b949ff84a2c85e2921398aaa1ae5ae8a37ffbf

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4fdfc65a06e4b74d57f689e436b1d16e8b33a962f51b7498c93b28ca3a7843c3
MD5 54c5b0dbb64466bd52254349270c6923
BLAKE2b-256 ec16e07c0f082ab75a5f829d2490e7f9c73383a9c2187504f0d38bbca2cf40cb

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: fastnntpy-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 420.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for fastnntpy-0.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9952127fe5a26656f92c486c82b518d2f91ac89b25522df302c07d5de250943e
MD5 39f176818a6b42bff7703b31890e04f8
BLAKE2b-256 8c61d8784a2d7654f1c6285e7ba99f14d0e2a36fa41c8841401081dcd4fcdec8

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 edc2dd170bae5134611b7e70427a2c6553d2798642250d57001ded2df48daa55
MD5 99c3c042d308a7b3a55431735780cb27
BLAKE2b-256 905186f2d837dcc7c4532c86c2ea56bd594e1a63623026efae786eb292520fcb

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 69fc403af32051555c48d29e6a04d7426410a92c88317c6e27c47639fe1080fb
MD5 92a902ae8ad8ea536da0ffd34da09e79
BLAKE2b-256 33c6dd7e724cb25c6ccd27737551e1c7c25c0d1333a2cfdfeb0be40e5b2205b7

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: fastnntpy-0.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 420.6 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for fastnntpy-0.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 daca8b59f6914698a9c88d21bff40511be8a39bb6fe459b1a986a9ca53c825ff
MD5 44e834c25b60f4abb24fc2fc180bd17c
BLAKE2b-256 13fe8b51bb3473f98c4708fcfc9c4020e6f644aaef3182fd289444528ace40c0

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6053379dfc05fac30507d09945ae904fde045f3e295de74df12718c8126e8beb
MD5 dd11c32e5b1ce0f62318c245c17ad10f
BLAKE2b-256 936ab20dbc83af6d066f1b9de3e63f3fd08c615a11b4789f2bbe4d45a539e873

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2165b0ce6eac5d086236da0a5b09e285f6d91b3d5c4439239d08be9dc375e025
MD5 a21ccac38ad79fef86236e14b19b4aca
BLAKE2b-256 25daf6370fa79b6d621f6414ba1531dbcd5183c61a25dcdeeee2956de0c5d945

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: fastnntpy-0.3.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 421.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for fastnntpy-0.3.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 67937078b86f5d41df22b621960eae7137e7acc99f561c1ed42fe3245bbbae3b
MD5 d211147e3ce5d1d29f338f24fa07f389
BLAKE2b-256 59509765f0c340107cf34c1a7bd83d3832163105ad53f225eb8f94655b5fa2dc

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8f9f3e390c4b20c7311aa83cf76b5b0ae5e9c4d2d78d13a8a55996ed86b1026b
MD5 a1c588e85a77402e736a8317ab0de149
BLAKE2b-256 4a5cb2e47f005bd245b03ff8cd384b4a7b31faf208c29936ac828f25988dd9b6

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b118a05a35d51a44723d332f315933e0c9a5f6ed8718f4bcd0ce210209694cef
MD5 1c7007531d882282d687de02ddb9c26b
BLAKE2b-256 f8a984fd1c22503e1a7d065cf5f3e26ff8ad8969361686b2795decc268a5b4ae

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: fastnntpy-0.3.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 421.4 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for fastnntpy-0.3.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 0732bc50ad6a1987c94c7cab3603f1f75b524dcf968daeb8184ac0ee6ce818cb
MD5 a486509a61b9ba6c53782501aaa93966
BLAKE2b-256 598a7b5e3b3cc9f4e7183114145886f41385209352b5a69f1cf96a0715713ca7

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 183489b137fba9df29fdc6f1b07a9145933c9ef688c5415a7605e8598ab6ddf1
MD5 326637223624cb75079561b930d31e01
BLAKE2b-256 e7076fa72846bc4038f581c9534bfb4ef05fe413e9bfae489781085f7731f726

See more details on using hashes here.

File details

Details for the file fastnntpy-0.3.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fastnntpy-0.3.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22942dbee1bf3cddd6cddc9b2823b27381ac76e109465cdf11d62ddd87831c6f
MD5 5bef8bbdfc67b3f2a48e8170698d28b9
BLAKE2b-256 e19438fbc4daed5e22702b8eda4a2380f54fbade7e17d50eb4dad719ae68bca3

See more details on using hashes here.

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