Skip to main content

A flexible, generalized tree-based data structure.

Project description


Twitter PyPI PyPI - Python Version Loc Comments

Docs Deploy Code Test Badge Creation Package Release codecov

GitHub Org's stars GitHub stars GitHub forks GitHub commit activity GitHub issues GitHub pulls Contributors GitHub license

TreeValue is a generalized tree-based data structure mainly developed by OpenDILab Contributors.

Almost all the operations can be supported in the form of trees in a convenient way to simplify the structure processing when the calculation is tree-based.

Outline

Overview

When we build a complex nested structure, we need to model it as a tree structure, and the native list and dict in Python are often used to solve this problem. However, it takes a lot of codes and some complex and non-intuitive calculation logic, which is not easy to modify and extend related code and data, and parallelization is impossible.

Therefore, we need a kind of more proper data container, named TreeValue. It is designed for solving the following problems:

  • Ease of Use: When the existing operations are applied to tree structures such as dict, they will become completely unrecognizable, with really low readability and maintainability.
  • Diversity of Data: In the tree structure operation, various abnormal conditions (structure mismatch, missing key-value, type mismatch, etc.) occur from time to time, and the code will be more complicated if it needs to be handled properly.
  • Scalability and Parallelization: When any multivariate operation is performed, the calculation logic needs to be redesigned under the native Python code implementation, and the processing will be more complicated and confusing, and the code quality is difficult to control.

Getting Started

Prerequisite

treevalue has been fully tested in the Linux, macOS and Windows environments and with multiple Python versions, and it works properly on all these platforms.

However, treevalue currently does not support PyPy, so just pay attention to this when using it.

Installation

You can simply install it with pip command line from the official PyPI site.

pip install treevalue

Or just from the source code on github

pip install git+https://github.com/opendilab/treevalue.git@main

For more information about installation, you can refer to the installation guide.

After this, you can check if the installation is processed properly with the following code

from treevalue import __version__
print('TreeValue version is', __version__)

Quick Usage

You can easily create a tree value object based on FastTreeValue.

from treevalue import FastTreeValue

if __name__ == '__main__':
    t = FastTreeValue({
        'a': 1,
        'b': 2.3,
        'x': {
            'c': 'str',
            'd': [1, 2, None],
            'e': b'bytes',
        }
    })
    print(t)

The result should be

<FastTreeValue 0x7f6c7df00160 keys: ['a', 'b', 'x']>
├── 'a' --> 1
├── 'b' --> 2.3
└── 'x' --> <FastTreeValue 0x7f6c81150860 keys: ['c', 'd', 'e']>
    ├── 'c' --> 'str'
    ├── 'd' --> [1, 2, None]
    └── 'e' --> b'bytes'

And t is structure should be like this

Not only a visible tree structure, but abundant operation supports is provided. You can just put objects (such as torch.Tensor, or any other types) here and just call their methods, like this

import torch

from treevalue import FastTreeValue

t = FastTreeValue({
    'a': torch.rand(2, 5),
    'x': {
        'c': torch.rand(3, 4),
    }
})

print(t)
# <FastTreeValue 0x7f8c069346a0>
# ├── a --> tensor([[0.3606, 0.2583, 0.3843, 0.8611, 0.5130],
# │                 [0.0717, 0.1370, 0.1724, 0.7627, 0.7871]])
# └── x --> <FastTreeValue 0x7f8ba6130f40>
#     └── c --> tensor([[0.2320, 0.6050, 0.6844, 0.3609],
#                       [0.0084, 0.0816, 0.8740, 0.3773],
#                       [0.6523, 0.4417, 0.6413, 0.8965]])

print(t.shape)  # property access
# <FastTreeValue 0x7f8c06934ac0>
# ├── a --> torch.Size([2, 5])
# └── x --> <FastTreeValue 0x7f8c069346d0>
#     └── c --> torch.Size([3, 4])
print(t.sin())  # method call
# <FastTreeValue 0x7f8c06934b80>
# ├── a --> tensor([[0.3528, 0.2555, 0.3749, 0.7586, 0.4908],
# │                 [0.0716, 0.1365, 0.1715, 0.6909, 0.7083]])
# └── x --> <FastTreeValue 0x7f8c06934b20>
#     └── c --> tensor([[0.2300, 0.5688, 0.6322, 0.3531],
#                       [0.0084, 0.0816, 0.7669, 0.3684],
#                       [0.6070, 0.4275, 0.5982, 0.7812]])
print(t.reshape((2, -1)))  # method with arguments
# <FastTreeValue 0x7f8c06934b80>
# ├── a --> tensor([[0.3606, 0.2583, 0.3843, 0.8611, 0.5130],
# │                 [0.0717, 0.1370, 0.1724, 0.7627, 0.7871]])
# └── x --> <FastTreeValue 0x7f8c06934b20>
#     └── c --> tensor([[0.2320, 0.6050, 0.6844, 0.3609, 0.0084, 0.0816],
#                       [0.8740, 0.3773, 0.6523, 0.4417, 0.6413, 0.8965]])
print(t[:, 1:-1])  # index operator
# <FastTreeValue 0x7f8ba5c8eca0>
# ├── a --> tensor([[0.2583, 0.3843, 0.8611],
# │                 [0.1370, 0.1724, 0.7627]])
# └── x --> <FastTreeValue 0x7f8ba5c8ebe0>
#     └── c --> tensor([[0.6050, 0.6844],
#                       [0.0816, 0.8740],
#                       [0.4417, 0.6413]])
print(1 + (t - 0.8) ** 2 * 1.5)  # math operators
# <FastTreeValue 0x7fdfa5836b80>
# ├── a --> tensor([[1.6076, 1.0048, 1.0541, 1.3524, 1.0015],
# │                 [1.0413, 1.8352, 1.2328, 1.7904, 1.0088]])
# └── x --> <FastTreeValue 0x7fdfa5836880>
#     └── c --> tensor([[1.1550, 1.0963, 1.3555, 1.2030],
#                       [1.0575, 1.4045, 1.0041, 1.0638],
#                       [1.0782, 1.0037, 1.5075, 1.0658]])

Tutorials

For more examples, explanations and further usages, take a look at:

External

We provide an official treevalue-based-wrapper for numpy and torch called DI-treetensor since the treevalue is often used with libraries like numpy and torch. It will actually be helpful while working with AI fields.

Speed Performance

Here is the speed performance of all the operations in FastTreeValue; the following table is the performance comparison result with dm-tree. (In DM-Tree, the unflatten operation is different from that in TreeValue, see: Comparison Between TreeValue and DM-Tree for more details.)

flatten flatten(with path) mapping mapping(with path)
treevalue --- 511 ns ± 6.92 ns 3.16 µs ± 42.8 ns 1.58 µs ± 30 ns
flatten flatten_with_path map_structure map_structure_with_path
dm-tree 830 ns ± 8.53 ns 11.9 µs ± 358 ns 13.3 µs ± 87.2 ns 62.9 µs ± 2.26 µs

The following 2 tables are the performance comparison result with jax pytree.

mapping mapping(with path) flatten unflatten flatten_values flatten_keys
treevalue 2.21 µs ± 32.2 ns 2.16 µs ± 123 ns 515 ns ± 7.53 ns 601 ns ± 5.99 ns 301 ns ± 12.9 ns 451 ns ± 17.3 ns
tree_map (Not Implemented) tree_flatten tree_unflatten tree_leaves tree_structure
jax pytree 4.67 µs ± 184 ns --- 1.29 µs ± 27.2 ns 742 ns ± 5.82 ns 1.29 µs ± 22 ns 1.27 µs ± 16.5 ns
flatten + all flatten + reduce flatten + reduce(with init) rise(given structure) rise(automatic structure)
treevalue 425 ns ± 9.33 ns 702 ns ± 5.93 ns 793 ns ± 13.4 ns 9.14 µs ± 129 ns 11.5 µs ± 182 ns
tree_all tree_reduce tree_reduce(with init) tree_transpose (Not Implemented)
jax pytree 1.47 µs ± 37 ns 1.88 µs ± 27.2 ns 1.91 µs ± 47.4 ns 10 µs ± 117 ns ---

This is the comparison between dm-tree, jax-libtree and us, with flatten and mapping operations (lower value means less time cost and runs faster)

Time cost of flatten operation

Time cost of mapping operation

The following table is the performance comparison result with tianshou Batch.

get set init deepcopy stack cat split
treevalue 51.6 ns ± 0.609 ns 64.4 ns ± 0.564 ns 750 ns ± 14.2 ns 88.9 µs ± 887 ns 50.2 µs ± 771 ns 40.3 µs ± 1.08 µs 62 µs ± 1.2 µs
tianshou Batch 43.2 ns ± 0.698 ns 396 ns ± 8.99 ns 11.1 µs ± 277 ns 89 µs ± 1.42 µs 119 µs ± 1.1 µs 194 µs ± 1.81 µs 653 µs ± 17.8 µs

And this is the comparison between Tianshou Batch and us, with cat , stack and split operations (lower value means less time cost and runs faster)

Time cost of cat operation

Time cost of stack operation

Time cost of split operation

Test benchmark code can be found here:

Change Log

Version History [click to expand]
  • 2022-05-03 1.3.1: Change definition of getitem, setitem and delitem; add pop method for TreeValue class.
  • 2022-03-15 1.3.0: Add getitem, setitem and delitem for adding, editing and removing items in TreeValue class.
  • 2022-02-22 1.2.2: Optimize union function; add walk utility method.
  • 2022-01-26 1.2.1: Update tree printing; add keys, values, items on TreeValue; add comparision to facebook nest library.
  • 2022-01-04 1.2.0: Add flatten_values and flatten_keys; fix problem in mapping function; add support for potc.
  • 2021-12-03 1.1.0: Add version information; fix bug of default value; add flatten and unflatten; optimization speed performance.
  • 2021-10-24 1.0.0: Greatly optimize the speed performance using cython, overhead has been reduced to a negligible level.

Feedback and Contribute

Welcome to OpenDILab community - treevalue!

If you meet some problem or have some brilliant ideas, you can file an issue.

Scan the QR code and add us on Wechat:

Or just contact us with slack or email (opendilab.contact@gmail.com).

Please check Contributing Guidances.

Thanks to the following contributors!

Citation

@misc{treevalue,
    title={{TreeValue} - Tree-Structure Computing Solution},
    author={TreeValue Contributors},
    publisher = {GitHub},
    howpublished = {\url{https://github.com/opendilab/treevalue}},
    year={2021},
}

License

treevalue released under the Apache 2.0 license. See the LICENSE file for details.

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

treevalue-1.5.0.tar.gz (74.5 kB view details)

Uploaded Source

Built Distributions

treevalue-1.5.0-cp312-cp312-win_amd64.whl (712.5 kB view details)

Uploaded CPython 3.12 Windows x86-64

treevalue-1.5.0-cp312-cp312-win32.whl (624.8 kB view details)

Uploaded CPython 3.12 Windows x86

treevalue-1.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

treevalue-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

treevalue-1.5.0-cp312-cp312-macosx_11_0_arm64.whl (803.2 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

treevalue-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl (841.6 kB view details)

Uploaded CPython 3.12 macOS 10.13+ x86-64

treevalue-1.5.0-cp311-cp311-win_amd64.whl (713.3 kB view details)

Uploaded CPython 3.11 Windows x86-64

treevalue-1.5.0-cp311-cp311-win32.whl (623.8 kB view details)

Uploaded CPython 3.11 Windows x86

treevalue-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

treevalue-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

treevalue-1.5.0-cp311-cp311-macosx_11_0_arm64.whl (804.7 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

treevalue-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl (845.9 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

treevalue-1.5.0-cp310-cp310-win_amd64.whl (711.1 kB view details)

Uploaded CPython 3.10 Windows x86-64

treevalue-1.5.0-cp310-cp310-win32.whl (624.3 kB view details)

Uploaded CPython 3.10 Windows x86

treevalue-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

treevalue-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

treevalue-1.5.0-cp310-cp310-macosx_11_0_arm64.whl (802.5 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

treevalue-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl (842.6 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

treevalue-1.5.0-cp39-cp39-win_amd64.whl (716.7 kB view details)

Uploaded CPython 3.9 Windows x86-64

treevalue-1.5.0-cp39-cp39-win32.whl (629.5 kB view details)

Uploaded CPython 3.9 Windows x86

treevalue-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

treevalue-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

treevalue-1.5.0-cp39-cp39-macosx_11_0_arm64.whl (809.1 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

treevalue-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl (849.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

treevalue-1.5.0-cp38-cp38-win_amd64.whl (720.0 kB view details)

Uploaded CPython 3.8 Windows x86-64

treevalue-1.5.0-cp38-cp38-win32.whl (630.9 kB view details)

Uploaded CPython 3.8 Windows x86

treevalue-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

treevalue-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

treevalue-1.5.0-cp38-cp38-macosx_11_0_arm64.whl (812.7 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

treevalue-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl (852.1 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file treevalue-1.5.0.tar.gz.

File metadata

  • Download URL: treevalue-1.5.0.tar.gz
  • Upload date:
  • Size: 74.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for treevalue-1.5.0.tar.gz
Algorithm Hash digest
SHA256 ec76d362fa099c38b4a6c1fe2beb42f25d28e2809dc4f327517d2199b198433b
MD5 da7ab45fcaf9c05c2fd17825813a8065
BLAKE2b-256 a129cb3c391509e388923ff840b081b67c7fab64e414d35a81e80e020209c885

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 97067eb0211d15b0e93f0400686e3694b7dd5ea82efa8a9f5bc990f3f014e056
MD5 daf09db5d4af22d8b4a7d9ec4818ccf8
BLAKE2b-256 a5e0d76cd236fd84ead3201eeb8668f3c13e88a17f17c2262399f34b2bef5ac4

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: treevalue-1.5.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 624.8 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for treevalue-1.5.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 4db2b0c71271ccb7780c1391aca67f31c5faac7fa128467a17ed3370b804e7d5
MD5 9970a10c5e15468e1db6d258eccccce6
BLAKE2b-256 aa4382b1dd8b3dca5d9f74d401d809e6bc90bbeac295d720170dde7be6bcf414

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a8d110e014828afcd72148d25979214716af4b557daf4767b4df0bab916e6f39
MD5 5f3704a160cc827f4fa14b319708e87a
BLAKE2b-256 3dc7e199dfa100d2689b442fd3050f6d096c9dcb54407ceb3e7bc2394fd05509

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 237773d66f51e648ea46625b8f1e4c5fb1c21477317696d54f5312ef345f8d21
MD5 e92e95162a9a511f58810a2696617d1c
BLAKE2b-256 8b3fb3b28eb3d1f63f986c4e140d008104797f8c459169368e692d3161488f47

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cc921d620c75522b228a93ecd10a6773db866a1712f772b9596165af5263fc93
MD5 0f598f6038f0754924627ecb6ae854c5
BLAKE2b-256 5e20129776db8feff45de1c0d7322611244f8b188660a0cfac178154767407f9

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 dc419643f0c948aa1bc4790d5ae0b9e02ef97cc20ddaac6dc61ecebc3f0d713b
MD5 4434a82b5bd8a8ec0557fd83e22c277e
BLAKE2b-256 9ea706b51978ddd2220c2522dc8964d5120e0bd1303b8d4ad19586528da7f1f4

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 258da9fac46ca23ced416a50347455cba5cd017b7af0efd8da175a63ec707c54
MD5 aa7a25171fd188ab8355e46f355480d2
BLAKE2b-256 28c122c9f82777d5f6ddf43f19fbb85ba5815916aef7ceeca8f68be6bfd7ed60

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: treevalue-1.5.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 623.8 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for treevalue-1.5.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 79079d407cee1dc1150ff0d8cb25f72d36280474d57dd0171b5136e114ed6f9c
MD5 7199d6fa8a5b66737407a04762b86584
BLAKE2b-256 32569b65cb6aee449337c80e6593476a1685980ef521ad69d28de535b00b9bf4

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 51738155068b6277ca8256a2b01eeb197fe57ab6cf161bd3be85b54c5a7f2a39
MD5 2d128f80b5d57c824fff01dc08f34574
BLAKE2b-256 7f5967a7949e1acf6627e8c9abe2c3f2a28f48c8dafccd019fdc1c7ff4318da7

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 49331edefd1ea9e4ee523cd2bc6155003eae2c955a3978114e567ce8720196dd
MD5 d779beea5795fb670cffca49ea51a5e8
BLAKE2b-256 31affdab1f088c148a2da124a2a99b538b07347a3c70d87e391a9489693c00d7

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da560b5642acc1833cd8ad2a428471214004b529f72bdc4814f10e1936f299ba
MD5 c8cc34609ce6653755aedf507cef4fa1
BLAKE2b-256 d461af4ef8d20c20f078be146927198c32dafad0959869ef2fc6bde43df112fc

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c5cbee67fb9d142d629f3cba43e6e3dfc91112ffa246fa0196f02271862dd697
MD5 3e3129aa425d8ea579767a5cf9fb12d0
BLAKE2b-256 e3cb65b271bfeb85e7ad084266df4448881ebbc7a52bef13d37bc1e308a76ad5

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 510b028f5f4d039b97bf4c209723affbe8714d2c366255cc8e12f327b08815c7
MD5 6a9d19fee837be2a92d9bdf4dbe38fe7
BLAKE2b-256 42a3c0eb148c48f32bcab76f1996fdc38a22a613066fceed40a314dd38b891f1

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: treevalue-1.5.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 624.3 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for treevalue-1.5.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 accf90c2737d8bdbce47df3fcf87f856b67699fb21a53060d78a3bbec6c5b631
MD5 2423fea05563d5f3dd18b5ef75b6982d
BLAKE2b-256 bfa8739979a5bc160d981982b067454a5c040d8529f3888c420977648eaa6c8f

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d01d07e87407262363b74285e7b9da48663c3e927cf2817b4c2fc021a38b73c4
MD5 7fe189468e8fd0955ba6d10db24cf05f
BLAKE2b-256 4fa168ab4f69936052e9ab7a83df7ba56ee817f5bc459742885a5bb6e9664580

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 035f1163407a0ae8f9c2aa78c16b2e8c902d3b0026f6db99e619bf5f1dae9329
MD5 92a3e41250c288bfc4f27c82cf8b7620
BLAKE2b-256 f69910b70572338c7269168a23d690b8977d0a683332fdc1d7c1525131fc1b0b

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 171343ab1be7de9c20d31b2eaaf48b5358763f30f7aa6dabe2efac4c9f40afcf
MD5 26f74c3961c5325e2a9da25919bbe71a
BLAKE2b-256 2e1f912b7ef380d8034b9ff731c9802cdf9735495fcf7650a9cfc2d85ceeb82b

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c7c8f5c4e769327f35cfa19c60f0573fe2bf7532c43ae4ce281564535afdfe86
MD5 99d9eda1d88a96c4ac5399dfb6af89d3
BLAKE2b-256 07a4ce2beec2dd357ca3ef3ca23ba1a8721d5ebfff16ec998bb17688c23eacbc

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: treevalue-1.5.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 716.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for treevalue-1.5.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8ac5caedccbc7978c57ced122fff1f0c51f8ebc33a6fa0b15e853437070a8539
MD5 e0903e5670879fb36870b8255f39c9e3
BLAKE2b-256 3a517d2239c0433412b73e11db14d8e5ece30168cdb630af1e3195beafbdcb39

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: treevalue-1.5.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 629.5 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for treevalue-1.5.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 81569dc66a6deb8223b33866a2aecd92ae5c48b65983009ccc2d0bec04317a73
MD5 e904e1966dd3df68a3976973f600eb9e
BLAKE2b-256 5d4e5528873168ae86cec4cff0df7249e3789068335ce1e8d725b3227d9a4947

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 369a725709a3970900262f16e2a8df56411a21f39f4231f7ccd4aa7fb8b46791
MD5 d0af6e40b8362ab48e8a76d0d8c3f28c
BLAKE2b-256 ecb1309d5d020c8471590c14c0f48748d12fe70737ec19411061610f31dbcdfc

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 400e58400aacd03067d9f194b9afc6ad066a47fd189d19e8e6136d5afa780763
MD5 c5f138a456594538c9341f24cf2eebd9
BLAKE2b-256 a5320fbbbf881ae1759d6bcaa5e6f077312f4cf151010f44559ed31ad22280a5

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a70c7b248fe1cd0f9859aacde521dc7b842260317696599c8bd4c9511d4e10f
MD5 e14bbaa54733f86a59fc1e1d4888a575
BLAKE2b-256 81226a82e032a1c6cda3dcedf2943f653a4f8ad2882ae577cf3d6c8400c53ec9

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 380e5b8ff2a5e41b6245be2eecf23c8c99ddd35654e599bb8668e8b816791270
MD5 98a9624de3ea6d451498992883af51bb
BLAKE2b-256 d0367654dd7156076ec190d30f39d0e0eab3a3226d3256a09ebe371545d94350

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: treevalue-1.5.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 720.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for treevalue-1.5.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d1f4b77abf4cd7edffd560cf8999850c331a9b2a291d2ee25160964b775cc753
MD5 15217ba6b0cb6662536b0a2e3f0a664f
BLAKE2b-256 5f110eb83efd98fb5623652ed0336de4ece95a1eda16e9544a6886a83699a9d1

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: treevalue-1.5.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 630.9 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for treevalue-1.5.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 c88282cd95dfc5e27ac606b22fa26248faa9452bcc09fe7f6a496e133b978fba
MD5 295aca8ca5d0d57f715f7d6373eafb70
BLAKE2b-256 aa5ee0cb0ec34044e302761d1b6138d92f40f2f7662d0a816ff3131ee1f445bb

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 85af5ee9c49812e0f760574c442af74c65226c96a962e80ac0d4c9674950f9f1
MD5 1511f89fb6227d1a9d534af1d0b12f47
BLAKE2b-256 5a11bf61f3084ce6bea0d1e73b038c21f20a33eb813bd60b6b135290d4b51d37

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cdabf88505b7b3573eb08dad37603d5418f3f4083d93db18d9652d390aedfbb0
MD5 0629c2d6941017fa9186223548e30264
BLAKE2b-256 2d8edf1725ed9fa1d895206332c71420004a9618e4eccc20703adc2b3bedcca3

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bb4600eb2da620ab7a0bb69f0ff1e647631323308ce5b1227b95487d8b9409c7
MD5 1c60c5d6ed864f7b7570277f87c1f326
BLAKE2b-256 e0c993a3d0231cef351b9bc52dd974a1e2911f5144e5dab9dea40bead8d5a131

See more details on using hashes here.

File details

Details for the file treevalue-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for treevalue-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f250bacc27d63be13190720fe236f87f87496f2a41f7f50485a1d8b2c092926b
MD5 d081a2bfb22da0ed8dd297f787790245
BLAKE2b-256 c8c6bb8ca6e5ae7afb1f3fab7ebf4772d95ffec2644c36e273887706729f2e49

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