Skip to main content

A python library for doing fast, thread-safe computations on phylogenetic trees

Project description

SuchTree

A Python library for doing fast, thread-safe computations with phylogenetic trees.

Actions Status codecov License JOSS GitHub all releases PyPI - Downloads

Release notes

New for SuchTree v1.2

  • Quartet topology tests provided by SuchTree.get_quartet_topology( a, b, c, d )
  • Optimized, thread-safe bulk quartet topology tests provided by SuchTree.quartet_topologies( [N,4] )
  • SuchTree now automatically detects and uses NEWICK strings as for initialization

New for SuchTree v1.1

  • Basic support for support values provided by SuchTree.get_support( node_id )
  • Relative evolutionary divergence (RED)
  • Bipartitions
  • Node generators for in-order and preorder traversal
  • Summary of leaf relationships via SuchTree.relationships()

High-performance sampling of very large trees

You have a phylogenetic tree. You want to do some statistics with it. No problem! There are lots of packages in Python that let you manipulate phylogenies, like dendropy, scikit-bio and ete3. If your tree isn't too big and your statistical method doesn't require too many traversals, you you have a lot of great options. If you're working with about a thousand taxa or less, you should have no problem. You can forget about SuchTree and use a tree package that has lots of cool features.

However, if you are working with trees that include tens of thousands, or maybe even millions of organisms, you are going to run into problems. ete3, dendropy and scikit-bio's TreeNode are all designed to give you lots of flexibility. You can re-root trees, use different traversal schemes, attach metadata to nodes, attach and detach nodes, splice sub-trees into or out of the main tree, plot trees for publication figures and do lots of other useful things. That power and flexibility comes with a price -- speed.

For trees of moderate size, it is possible to solve the speed issue by working with matrix representations of the tree. Unfortunately, most representations scale quadratically with the number of taxa in the tree. A distance matrix for a tree of 100,000 taxa will consume about 20GB of RAM. If your method performs sampling, then almost every operation will be a cache miss. Even if you have the RAM, it will be painfully slow.

Sampling linked trees

Suppose you have more than one group of organisms, and you want to study the way their interactions have influenced their evolution. Now, you have several trees that link together to form a generalized graph. Oh no, not graph theory!

Calm yourself! SuchLinkedTrees has you covered. At the moment, SuchLinkedTrees supports trees of two interacting groups, but work is underway to generalize it to any number of groups. Like SuchTree, SuchLinkedTrees is not intended to be a general-purpose graph theory package. Instead, it leverages SuchTree to efficiently handle the problem-specific tasks of working with co-phylogeny systems. It will load your datasets. It will build the graphs. It will let you subset the graphs using their phylogenetic or ecological properties. It will generate weighted adjacency and Laplacian matrixes of the whole graph or of subgraphs you have selected. It will generate spectral decompositions of subgraphs if spectral graph theory is your thing.

And, if that doesn't solve your problem, it will emit sugraphs as Graph objects for use with the igraph network analysis package, or node and edge data for building graphs in networkx. Now you can do even more things. Maybe you want to get all crazy with some graph kernels? Well, now you can.

Benchmarks

SuchTree is motivated by a simple the observation. A distance matrix of 100,000 taxa is quite bulky, but the tree it represents can be made to fit into about 7.6MB of RAM if implemented using only C primitives. This is small enough to fit into L2 cache on many modern microprocessors. This comes at the cost of traversing the tree for every calculation (about 16 hops from leaf to root for a 100,000 taxa tree), but, as these operations all happen on-chip, the processor can take full advantage of pipelining, speculative execution and other optimizations available in modern CPUs.

Here, we use SuchTree to compare the topology of two trees built from the same 54,327 sequences using two methods : neighbor joining and Morgan Price's FastTree approximate maximum likelihood algorithm. Using one million randomly chosen pairs of leaf nodes, we look at the patristic distances in each of the two trees, plot them against one another, and compute correlation coefficients.

On an Intel i7-3770S, SuchTree completes the two million distance calculations in a little more than ten seconds.

from SuchTree import SuchTree
import random

T1 = SuchTree( 'data/bigtrees/ml.tree' )
T2 = SuchTree( 'data/bigtrees/nj.tree' )

print( 'nodes : %d, leafs : %d' % ( T1.length, len(T1.leafs) ) )
print( 'nodes : %d, leafs : %d' % ( T2.length, len(T2.leafs) ) )
nodes : 108653, leafs : 54327
nodes : 108653, leafs : 54327
N = 1000000
v = list( T1.leafs.keys() )

pairs = []
for i in range(N) :
    pairs.append( ( random.choice( v ), random.choice( v ) ) )

%time D1 = T1.distances_by_name( pairs ); D2 = T2.distances_by_name( pairs )
CPU times: user 10.1 s, sys: 0 ns, total: 10.1 s
Wall time: 10.1 s
from scipy.stats import kendalltau, pearsonr

print( 'Kendall\'s tau : %0.3f' % kendalltau( D1, D2 )[0] )
print( 'Pearson\'s r   : %0.3f' % pearsonr( D1, D2 )[0] )
Kendall's tau : 0.709
Pearson's r   : 0.969

Installation

SuchTree depends on the following packages :

  • scipy
  • numpy
  • dendropy
  • cython
  • pandas

To install the current release, you can install from PyPI :

pip install SuchTree

If you install using pip, binary packages (wheels) are available for CPython 3.6, 3.7, 3.8, 3.9, 3.10 and 3.11 on Linux x86_64 and on MacOS with Intel and Apple silicon. If your platform isn't in that list, but it is supported by cibuildwheel, please file an issue to request your platform! I would be absolutely delighted if someone was actually running SuchTree on an exotic embedded system or a mainframe.

To install the most recent development version :

git clone https://github.com/ryneches/SuchTree.git
cd SuchTree
./setup.py install

Basic usage

SuchTree will accept either a URL or a file path :

from SuchTree import SuchTree

T = SuchTree( 'test.tree' )
T = SuchTree( 'https://github.com/ryneches/SuchTree/blob/master/data/gopher-louse/gopher.tree' )

The available properties are :

  • length : the number of nodes in the tree
  • depth : the maximum depth of the tree
  • root : the id of the root node
  • leafs : a dictionary mapping leaf names to their ids
  • leafnodes : a dictionary mapping leaf node ids to leaf names

The available methods are :

  • get_parent : for a given node id or leaf name, return the parent id
  • get_children : for a given node id or leaf name, return the ids of the child nodes (leaf nodes have no children, so their child node ids will always be -1)
  • get_distance_to_root : for a given node id or leaf name, return the integrated phylogenetic distance to the root node
  • mrca : for a given pair of node ids or leaf names, return the id of the nearest node that is parent to both
  • distance : for a given pair of node ids or leaf names, return the patristic distance between the pair
  • distances : for an (n,2) array of pairs of node ids, return an (n) array of patristic distances between the pairs
  • distances_by_name for an (n,2) list of pairs of leaf names, return an (n) list of patristic distances between each pair
  • dump_array : print out the entire tree (for debugging only! May produce pathologically gigantic output.)

Example datasets

For analysis of ecological interactions, SuchTree is distributed with a curated collection of several different examples from the literature. Additionally, a collection of simulated interactions with various properties, along with an annotated notebook of Python code for generating them, is also included. Interactions are registered in a JSON object (data/studies.json).

Host/Parasite

  • gopher-louse Hafner, M.S. & Nadler, S.A. 1988. Phylogenetic trees support the coevolution of parasites and their hosts. Nature 332: 258-259)
  • dove-louse Dale H. Clayton, Sarah E. Bush, Brad M. Goates, and Kevin P. Johnson. 2003. Host defense reinforces host–parasite cospeciation. PNAS.
  • sedge-smut Escudero, Marcial. 2015. Phylogenetic congruence of parasitic smut fungi (Anthracoidea, Anthracoideaceae) and their host plants (Carex, Cyperaceae): Cospeciation or host-shift speciation? American journal of botany.
  • fish-worm Maarten P. M. Vanhove, Antoine Pariselle, Maarten Van Steenberge, Joost A. M. Raeymaekers, Pascal I. Hablützel, Céline Gillardin, Bart Hellemans, Floris C. Breman, Stephan Koblmüller, Christian Sturmbauer, Jos Snoeks, Filip A. M. Volckaert & Tine Huyse. 2015. Hidden biodiversity in an ancient lake: phylogenetic congruence between Lake Tanganyika tropheine cichlids and their monogenean flatworm parasites, Scientific Reports.

Plant/Pollinator (visitor) interactions

These were originally collected by Enrico Rezende et al. :

Enrico L. Rezende, Jessica E. Lavabre, Paulo R. Guimarães, Pedro Jordano & Jordi Bascompte "Non-random coextinctions in phylogenetically structured mutualistic networks," Nature, 2007

  • arr1 Arroyo, M.T.K., R. Primack & J.J. Armesto. 1982. Community studies in pollination ecology in the high temperate Andes of central Chile. I. Pollination mechanisms and altitudinal variation. Amer. J. Bot. 69:82-97.
  • arr2 Arroyo, M.T.K., R. Primack & J.J. Armesto. 1982. Community studies in pollination ecology in the high temperate Andes of central Chile. I. Pollination mechanisms and altitudinal variation. Amer. J. Bot. 69:82-97.
  • arr3 Arroyo, M.T.K., R. Primack & J.J. Armesto. 1982. Community studies in pollination ecology in the high temperate Andes of central Chile. I. Pollination mechanisms and altitudinal variation. Amer. J. Bot. 69:82-97.
  • bahe Barrett, S. C. H., and K. Helenurm. 1987. The Reproductive-Biology of Boreal Forest Herbs.1. Breeding Systems and Pollination. Canadian Journal of Botany 65:2036-2046.
  • cllo Clements, R. E., and F. L. Long. 1923, Experimental pollination. An outline of the ecology of flowers and insects. Washington, D.C., USA, Carnegie Institute of Washington.
  • dihi Dicks, LV, Corbet, SA and Pywell, RF 2002. Compartmentalization in plant–insect flower visitor webs. J. Anim. Ecol. 71: 32–43
  • dish Dicks, LV, Corbet, SA and Pywell, RF 2002. Compartmentalization in plant–insect flower visitor webs. J. Anim. Ecol. 71: 32–43
  • dupo Dupont YL, Hansen DM and Olesen JM 2003 Structure of a plant-flower-visitor network in the high-altitude sub-alpine desert of Tenerife, Canary Islands. Ecography 26:301-310
  • eol Elberling, H., and J. M. Olesen. 1999. The structure of a high latitude plant-flower visitor system: the dominance of flies. Ecography 22:314-323.
  • eolz Elberling & Olesen unpubl.
  • eski Eskildsen et al. unpubl.
  • herr Herrera, J. 1988 Pollination relatioships in southern spanish mediterranean shrublands. Journal of Ecology 76: 274-287.
  • hock Hocking, B. 1968. Insect-flower associations in the high Arctic with special reference to nectar. Oikos 19:359-388.
  • inpk Inouye, D. W., and G. H. Pyke. 1988. Pollination biology in the Snowy Mountains of Australia: comparisons with montane Colorado, USA. Australian Journal of Ecology 13:191-210.
  • kevn Kevan P. G. 1970. High Arctic insect-flower relations: The interrelationships of arthropods and flowers at Lake Hazen, Ellesmere Island, Northwest Territories, Canada. Ph.D. thesis, University of Alberta, Edmonton, 399 pp.
  • kt90 Kato, M., Kakutani, T., Inoue, T. and Itino, T. (1990). Insect-flower relationship in the primary beech forest of Ashu, Kyoto: An overview of the flowering phenology and the seasonal pattern of insect visits. Contrib. Biol. Lab., Kyoto, Univ., 27, 309-375.
  • med1 Medan, D., N. H. Montaldo, M. Devoto, A. Mantese, V. Vasellati, and N. H. Bartoloni. 2002. Plant-pollinator relationships at two altitudes in the Andes of Mendoza, Argentina. Arctic Antarctic and Alpine Research 34:233-241.
  • med2 Medan, D., N. H. Montaldo, M. Devoto, A. Mantese, V. Vasellati, and N. H. Bartoloni. 2002. Plant-pollinator relationships at two altitudes in the Andes of Mendoza, Argentina. Arctic Antarctic and Alpine Research 34:233-241.
  • memm Memmott J. 1999. The structure of a plant-pollinator food web. Ecology Letters 2:276-280.
  • moma Mosquin, T., and J. E. H. Martin. 1967. Observations on the pollination biology of plants on Melville Island, N.W.T., Canada. Canadian Field Naturalist 81:201-205.
  • mott Motten, A. F. 1982. Pollination Ecology of the Spring Wildflower Community in the Deciduous Forests of Piedmont North Carolina. Doctoral Dissertation thesis, Duke University, Duhram, North Carolina, USA; Motten, A. F. 1986. Pollination ecology of the spring wildflower community of a temperate deciduous forest. Ecological Monographs 56:21-42.
  • mull McMullen 1993
  • oflo Olesen unpubl.
  • ofst Olesen unpubl.
  • olau Olesen unpubl.
  • olle Ollerton, J., S. D. Johnson, L. Cranmer, and S. Kellie. 2003. The pollination ecology of an assemblage of grassland asclepiads in South Africa. Annals of Botany 92:807-834.
  • perc Percival, M. 1974. Floral ecology of coastal scrub in sotheast Jamaica. Biotropica, 6, 104-129.
  • prap Primack, R.B. 1983. Insect pollination in the New Zealand mountain flora. New Zealand J. Bot. 21, 317-333, AB.
  • prca Primack, R.B. 1983. Insect pollination in the New Zealand mountain flora. New Zealand J. Bot. 21, 317-333. Cass
  • prcg Primack, R.B. 1983. Insect pollination in the New Zealand mountain flora. New Zealand J. Bot. 21, 317-333. Craigieb.
  • ptnd Petanidou, T. 1991. Pollination ecology in a phryganic ecosystem. Unp. PhD. Thesis, Aristotelian University, Thessaloniki.
  • rabr Ramirez, N., and Y. Brito. 1992. Pollination Biology in a Palm Swamp Community in the Venezuelan Central Plains. Botanical Journal of the Linnean Society 110:277-302.
  • rmrz Ramirez, N. 1989. Biología de polinización en una comunidad arbustiva tropical de la alta Guyana Venezolana. Biotropica 21, 319-330.
  • schm Schemske, D. W., M. F. Willson, M. N. Melampy, L. J. Miller, L. Verner, K. M. Schemske, and L. B. Best. 1978. Flowering Ecology of Some Spring Woodland Herbs. Ecology 59:351-366.
  • smal Small, E. 1976. Insect pollinators of the Mer Bleue peat bog of Ottawa. Canadian Field Naturalist 90:22-28.
  • smra Smith-Ramírez C., P. Martinez, M. Nuñez, C. González and J. J. Armesto 2005 Diversity, flower visitation frequency and generalism of pollinators in temperate rain forests of Chiloé Island,Chile. Botanical Journal of the Linnean Society, 2005, 147, 399–416.

Frugivory interactions

  • bair Baird, J.W. 1980. The selection and use of fruit by birds in an eastern forest. Wilson Bulletin 92: 63-73.
  • beeh Beehler, B. 1983. Frugivory and polygamy in birds of paradise. Auk, 100: 1-12.
  • cacg Carlo et al. 2003. Avian fruit preferences across a Puerto Rican forested landscape: pattern consistency and implications for seed removal. Oecologia 134: 119-131
  • caci Carlo et al. 2003. Avian fruit preferences across a Puerto Rican forested landscape: pattern consistency and implications for seed removal. Oecologia 134: 119-131
  • caco Carlo et al. 2003. Avian fruit preferences across a Puerto Rican forested landscape: pattern consistency and implications for seed removal. Oecologia 134: 119-131
  • cafr Carlo et al. 2003. Avian fruit preferences across a Puerto Rican forested landscape: pattern consistency and implications for seed removal. Oecologia 134: 119-131
  • crom Crome, F.H.J. 1975. The ecology of fruit pigeons in tropical Northern Queensland. Australian Journal of Wildlife Research, 2: 155-185.
  • fros Frost, P.G.H. 1980. Fruit-frugivore interactions in a South African coastal dune forest. Pages 1179-1184 in: R. Noring (ed.). Acta XVII Congresus Internationalis Ornithologici, Deutsches Ornithologische Gessenshaft, Berlin.
  • gen1 Galetti, M., Pizo, M.A. 1996. Fruit eating birds in a forest fragment in southeastern Brazil. Ararajuba, Revista Brasileira de Ornitologia, 4: 71-79.
  • gen2 Galetti, M., Pizo, M.A. 1996. Fruit eating birds in a forest fragment in southeastern Brazil. Ararajuba, Revista Brasileira de Ornitologia, 4: 71-79.
  • hamm Hammann, A. & Curio, B. 1999. Interactions among frugivores and fleshy fruit trees in a Philippine submontane rainforest
  • hrat Jordano P. 1985. El ciclo anual de los paseriformes frugívoros en el matorral mediterráneo del sur de España: importancia de su invernada y variaciones interanuales. Ardeola, 32, 69-94.
  • kant Kantak, G.E. 1979. Observations on some fruit-eating birds in Mexico. Auk, 96: 183-186.
  • lamb Lambert F. 1989. Fig-eating by birds in a Malaysian lowland rain forest. J. Trop. Ecol., 5, 401-412.
  • lope Tutin, C.E.G., Ham, R.M., White, L.J.T., Harrison, M.J.S. 1997. The primate community of the Lopé Reserve, Gabon: diets, responses to fruit scarcity, and effects on biomass. American Journal of Primatology, 42: 1-24.
  • mack Mack, AL and Wright, DD. 1996. Notes on occurrence and feeding of birds at Crater Mountain Biological Research Station, Papua New Guinea. Emu 96: 89-101.
  • mont Wheelwright, N.T., Haber, W.A., Murray, K.G., Guindon, C. 1984. Tropical fruit-eating birds and their food plants: a survey of a Costa Rican lower montane forest. Biotropica, 16: 173-192.
  • ncor P. Jordano, unpubl.
  • nnog P. Jordano, unpubl.
  • sapf Noma, N. 1997. Annual fluctuations of sapfruits production and synchronization within and inter species in a warm temperate forest on Yakushima Island, Japan. Tropics, 6: 441-449.
  • snow Snow, B.K., Snow, D.W. 1971. The feeding ecology of tanagers and honeycreepers in Trinidad. Auk, 88: 291-322.
  • wes Silva, W.R., P. De Marco, E. Hasui, and V.S.M. Gomes, 2002. Patterns of fruit-frugivores interactions in two Atlantic Forest bird communities of South-eastern Brazil: implications for conservation. Pp. 423-435. In: D.J. Levey, W.R. Silva and M. Galetti (eds.) Seed dispersal and frugivory: ecology, evolution and conservation. Wallinford: CAB International.
  • wyth Snow B.K. & Snow D.W. 1988. Birds and berries, Calton, England.

Thanks

Special thanks to @camillescott and @pmarkowsky for their many helpful suggestions (and for their patience).

Project details


Download files

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

Source Distribution

suchtree-1.2.tar.gz (355.6 kB view details)

Uploaded Source

Built Distributions

SuchTree-1.2-cp312-cp312-win_amd64.whl (218.5 kB view details)

Uploaded CPython 3.12 Windows x86-64

SuchTree-1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

SuchTree-1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

SuchTree-1.2-cp312-cp312-macosx_11_0_arm64.whl (245.5 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

SuchTree-1.2-cp312-cp312-macosx_10_13_x86_64.whl (268.4 kB view details)

Uploaded CPython 3.12 macOS 10.13+ x86-64

SuchTree-1.2-cp311-cp311-win_amd64.whl (221.1 kB view details)

Uploaded CPython 3.11 Windows x86-64

SuchTree-1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

SuchTree-1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

SuchTree-1.2-cp311-cp311-macosx_11_0_arm64.whl (245.1 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

SuchTree-1.2-cp311-cp311-macosx_10_9_x86_64.whl (266.7 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

SuchTree-1.2-cp310-cp310-win_amd64.whl (220.4 kB view details)

Uploaded CPython 3.10 Windows x86-64

SuchTree-1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

SuchTree-1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

SuchTree-1.2-cp310-cp310-macosx_11_0_arm64.whl (244.7 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

SuchTree-1.2-cp310-cp310-macosx_10_9_x86_64.whl (265.8 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

File details

Details for the file suchtree-1.2.tar.gz.

File metadata

  • Download URL: suchtree-1.2.tar.gz
  • Upload date:
  • Size: 355.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for suchtree-1.2.tar.gz
Algorithm Hash digest
SHA256 c45af37beb1a210097151b807ccde9966c72a3cfa99ecfe80251bcc0a14f1f60
MD5 5430efc966523f3ccbf62e52421e14ed
BLAKE2b-256 dbf075245602f31f80d18a7ffd4b4739e2eb442e46801c1c0ea430c0f002f2e7

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: SuchTree-1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 218.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for SuchTree-1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 88c0ee3359a6647553679873973f205db337d9f9fb4d8fad3b512949c640b5ed
MD5 93bfcdda23434b3d07e7a7903d42a6f8
BLAKE2b-256 aac0b0139d7592ed4814e83b0fd23381ba18f134e51beb27a2cff0922f97dc96

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SuchTree-1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 469f43b591ff7e5750c2a46c908f769ea097cceb3c98d53362fa2ffe3427e6f8
MD5 d30d533871750fe67ecf8ba31baa1327
BLAKE2b-256 540e45c31493eb1dc8a486a4a289a3592fd214abf19276bf26a8b88afc4ea307

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for SuchTree-1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d45f65e5d8f601b3fe0fb6b40c4a3f795bbee94288901a1f3cf70d8a422344d0
MD5 06fcd148ffbb7a512ea24a2a74dfca08
BLAKE2b-256 86375f313b9e3c37d3ebbba6f973c75a6766e8f3fd47e58faa7c4585ca7b5fb9

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for SuchTree-1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e8dd0bb2b1d767004550a6760c453e3dd9fd2bd7147bbd62b8d110ac718e77f
MD5 ed52a7752d7b8d5ade6de103eba97a82
BLAKE2b-256 1761506ead126055e3fe4514bf3e31df37e8a3a30a56ca4ebba1377f1ccf25f8

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for SuchTree-1.2-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e2875ad8e7365e43bbea078eb80a024a65762b925eeb8754aa9096fa70ea86bc
MD5 7465d3c7408f0d0a209d3fc11b22c2df
BLAKE2b-256 3f8bcf6411a6d190f538508a7f18663970aff5fbfd9832bd147b2b5c8009b8c2

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: SuchTree-1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 221.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for SuchTree-1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6845ab4df1076a9551d5fac37fed5fd604101118e689cfd978a09df1c8044f86
MD5 7b89ea4b27418783815f8d887f684be8
BLAKE2b-256 6905d7d437d5ae4d9350330547f874f6675ad150c92c416b550304fdd70e1fe7

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SuchTree-1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 beb05ca87b2bd5cda753907936104790f10f8abb0e7217a09cb2812666e05cf0
MD5 3ea5de746040fbc84ab26956a777f4a5
BLAKE2b-256 9c6d29b1bb882629193047201eb37e62d3bd235e770572829b745758ed259d28

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for SuchTree-1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 af0fe9ba8f1a522bcf74280816ad118a306f595dafc2cac9da7b1e8963f91b85
MD5 839c2dea9ffc55558aeba6451bf516b8
BLAKE2b-256 40a06b4467c25d01f1896e8e7c74c6ec359794b18b914963915b522ed67b1acd

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for SuchTree-1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e26b675116958e9cbce03ee07ca490ee48c5c75fa4c51a6f267c46e37c38e63a
MD5 30ae7b5f5619ecdd3da2b0e3efbbc9c6
BLAKE2b-256 9f09f1b9cc2ece6832412a0942d22765f787b9cc91075ca69aa1cefd73277df1

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for SuchTree-1.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 30047be355845822f8b7d5a7e5750b70648e17adac50ee639a9bc5c79d66ff9e
MD5 b3f770dd4237d75e772775ddf64e2711
BLAKE2b-256 5cfae6b51ad7976bac512c82184e91a5eda30498fd104f5ffd45d71ea5cb496d

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: SuchTree-1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 220.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for SuchTree-1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 76e9270fe4ffed88c82ce1c79409442a81fcfb5d95b2306559f84e06bf80c8d5
MD5 1b4575fd6bf60f54a695235ea109c45f
BLAKE2b-256 65e02724628e718118a7f2e02895deb8f033f26f87ba16b737e18a6de1cfc52a

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SuchTree-1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2ff1d822133a894ed18e8f82aae0ab45df201343181ec86ac2e9984e5f6f277
MD5 7faf161148ffc5ca508a37c618622b43
BLAKE2b-256 95d27f27f2e9c891b3a197ab0a1be85451c48cdeac505181378ffd460a8c4f35

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for SuchTree-1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0732dccfc3385d0ca50fb8a816d52ec4f80841722d5166306f2340321a18ea89
MD5 7eaf78897d40a1dcc8376147632c2adf
BLAKE2b-256 d86c25b394787d0d9796186a792811203df80422987fc1fcd7288cf9bf921ac5

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for SuchTree-1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3ac1e8114b06a714bcce2052c3dfdce5a91213fa0ec98837e26970ecf54b9641
MD5 34dc8536b598e8cb2385e6d8de1fe939
BLAKE2b-256 a7e7cf4feb528f1d27db7dd6665879ee08b85ccf563b4649b77e9bd63fa5e7e5

See more details on using hashes here.

File details

Details for the file SuchTree-1.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for SuchTree-1.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bac1819259332cfc39702c49b315181b0c3ec1d6a056b1e3a5f45ae9b3fb1901
MD5 3ec2724b0f03690ccb524b128472a206
BLAKE2b-256 b56036e6f6c25a906d7534610f5ebacc8f17978db03c57a641aed8c83c32e68e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page