Skip to main content

Python Wrapper ConTree: Optimal Decision Trees for Continuous Feature Data

Project description

CMake build Pip install

ConTree: Optimal Classification Trees for Continuous Feature Data

Cătălin E. Briţa, Jacobus G. M. van der Linden (e-mail), Emir Demirović - Delft University of Technology

ConTree computes optimal binary classification trees on datasets with continuous features using dynamic programming with branch-and-bound.

If you use ConTree, please cite our paper:

  • Briţa, Cătălin E., Jacobus G. M. van der Linden, and Emir Demirović. "Optimal Classification Trees for Continuous Feature Data Using Dynamic Programming with Branch-and-Bound." In Proceedings of AAAI-25 (2025). pdf

Python usage

Install from PyPi

The pycontree python package can be installed from PyPi using pip:

pip install pycontree

Install from source using pip

The pycontree python package can be installed from source as follows:

git clone https://github.com/ConSol-Lab/contree.git
cd contree
pip install . 

Example usage

pycontree can be used, for example, as follows:

from pycontree import ConTree
import pandas as pd
from sklearn.metrics import accuracy_score

df = pd.read_csv("datasets/bank.txt", sep=" ", header=None)

X = df[df.columns[1:]]
y = df[0]

contree = ConTree(max_depth=3)
contree.fit(X, y)

ypred = contree.predict(X)
print("Accuracy: " , accuracy_score(y, ypred))

See the examples folder for a number of example usages.

Note that some of the examples require the installation of extra python packages:

pip install matplotlib seaborn graphviz

Graphviz additionaly requires another instalation of a binary. See their website.

C++ usage

Compiling

The code can be compiled on Windows or Linux by using cmake. For Windows users, cmake support can be installed as an extension of Visual Studio and then this repository can be imported as a CMake project.

For Linux users, they can use the following commands:

cd code
mkdir build
cd build
cmake ..
cmake --build .

The compiler must support the C++17 standard

Running

After ConTree is built, the following command can be used (for example):

./ConTree -file ../datasets/bank.txt -max-depth 3

Run the program without any parameters to see a full list of the available parameters.

Parameters

ConTree can be configured by the following parameters:

  • max_depth : The maximum depth of the tree. Note that a tree of depth zero has a single leaf node. A tree of depth one has one branching node and two leaf nodes.
  • max_gap : The maximum permissible gap to the optimal solution.
  • max_gap_decay : Use this parameter, if you want to find solutions iteratively, with each iteration decreasing the max_gap by multiplying it with max_gap_decay.
  • time_limit : The run time limit in seconds. If the time limit is exceeded a possibly non-optimal tree is returned.
  • sort_gini : If true, the features are sorted by gini impurity.
  • use_upper_bound : Enables or disables the use of upper bounds.
  • verbose : Enable or disable verbose output.

Miscellaneous

ConTree assumes classification labels are in the range 0 ... n_labels - 1. Not meeting this assumption may influence the algorithm's performance. Use sklearn's LabelEncoder to prevent this.

Related Work

This work is follow up on our previous research:

  • Demirović, Emir, et al. "Murtree: Optimal decision trees via dynamic programming and search." Journal of Machine Learning Research 23.26 (2022): 1-47. pdf / source
  • Van der Linden, Jacobus G. M., Mathijs M. de Weerdt, and Emir Demirović. "Necessary and Sufficient Conditions for Optimal Decision Trees using Dynamic Programming." In Advances in Neural Information Processing Systems (2023). pdf / source

Other related work:

  • Hu, Xiyang, Cynthia Rudin, and Margo Seltzer. "Optimal sparse decision trees." In Advances in Neural Information Processing Systems (2019). pdf / source
  • Lin, Jimmy, et al. "Generalized and scalable optimal sparse decision trees." In International Conference on Machine Learning (2020). pdf / source
  • Aglin, Gaël, Siegfried Nijssen, and Pierre Schaus. "Learning optimal decision trees using caching branch-and-bound search." In Proceedings of the AAAI conference on artificial intelligence (2020). pdf / source
  • Mazumder, Rahul, Xiang Meng, and Haoyue Wang. "Quant-BnB: A scalable branch-and-bound method for optimal decision trees with continuous features." In International Conference on Machine Learning (2022). pdf / source

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

pycontree-1.0.5.tar.gz (34.0 kB view details)

Uploaded Source

Built Distributions

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

pycontree-1.0.5-cp312-cp312-win_amd64.whl (126.9 kB view details)

Uploaded CPython 3.12Windows x86-64

pycontree-1.0.5-cp312-cp312-win32.whl (116.7 kB view details)

Uploaded CPython 3.12Windows x86

pycontree-1.0.5-cp312-cp312-musllinux_1_1_x86_64.whl (730.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

pycontree-1.0.5-cp312-cp312-musllinux_1_1_i686.whl (794.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ i686

pycontree-1.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (221.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pycontree-1.0.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (232.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

pycontree-1.0.5-cp312-cp312-macosx_11_0_arm64.whl (170.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pycontree-1.0.5-cp312-cp312-macosx_10_9_universal2.whl (335.7 kB view details)

Uploaded CPython 3.12macOS 10.9+ universal2 (ARM64, x86-64)

pycontree-1.0.5-cp311-cp311-win_amd64.whl (125.5 kB view details)

Uploaded CPython 3.11Windows x86-64

pycontree-1.0.5-cp311-cp311-win32.whl (116.2 kB view details)

Uploaded CPython 3.11Windows x86

pycontree-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl (729.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

pycontree-1.0.5-cp311-cp311-musllinux_1_1_i686.whl (793.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

pycontree-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (221.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pycontree-1.0.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (232.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

pycontree-1.0.5-cp311-cp311-macosx_11_0_arm64.whl (169.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pycontree-1.0.5-cp311-cp311-macosx_10_9_universal2.whl (334.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

pycontree-1.0.5-cp310-cp310-win_amd64.whl (124.9 kB view details)

Uploaded CPython 3.10Windows x86-64

pycontree-1.0.5-cp310-cp310-win32.whl (115.5 kB view details)

Uploaded CPython 3.10Windows x86

pycontree-1.0.5-cp310-cp310-musllinux_1_1_x86_64.whl (729.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

pycontree-1.0.5-cp310-cp310-musllinux_1_1_i686.whl (793.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

pycontree-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (220.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pycontree-1.0.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (231.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

pycontree-1.0.5-cp310-cp310-macosx_11_0_arm64.whl (168.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pycontree-1.0.5-cp310-cp310-macosx_10_9_universal2.whl (331.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file pycontree-1.0.5.tar.gz.

File metadata

  • Download URL: pycontree-1.0.5.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pycontree-1.0.5.tar.gz
Algorithm Hash digest
SHA256 36224f0934feae8ddcd81c3765a0b4da988c47d64dc05610b347892357c452c7
MD5 73711d8b584bd7fe777bc935fd023430
BLAKE2b-256 4ddd13a24910aea5cee2316788ec01c4b8f7063814245e60266eed4495fbfd53

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pycontree-1.0.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 126.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pycontree-1.0.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 68e513a734750a2b0ad6fe86b80105866adc7fa7393115b254bec237b576f642
MD5 1b7927e330b41f76e514a77572232c77
BLAKE2b-256 334a5569d6aac952a228e6329a3e60e8b8f82b22f79b1122aabe960d5bdb047d

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp312-cp312-win32.whl.

File metadata

  • Download URL: pycontree-1.0.5-cp312-cp312-win32.whl
  • Upload date:
  • Size: 116.7 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pycontree-1.0.5-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 713cc9db9c508cb405a7b143d078a81d2996d071b87218c7a7bc9e11b2fa00b1
MD5 0ad358c101405dd3492171f60b8a58b5
BLAKE2b-256 268ecd35d740afc5530413e1335e36e58bc5ecdabaa21896dd2124408ca78d84

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 643fb46eda3523dc797645937cb40b9ad2f4542a9e270767319826b8664d81c8
MD5 b081c37426403bb3dfd434d1da12fc18
BLAKE2b-256 e9009c571015841001fea7821c9840ba5c37b268531d69b6876b1a6f17bb90b6

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp312-cp312-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 485f23b64f1eca08b900aa42cf867ad63e84785897eac28dca3afd2064f23005
MD5 ba7dbb4d9dec5419fde5ff9bbf59143e
BLAKE2b-256 bc74c3598edb8ef4cfa2b0ed1df3dc0abd515279b294d08cb46ac9a1eba875c4

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 97e6ccf90fe3577750c733a70dd3a78fd71a7f52c231c8f254870ae4bbe2600d
MD5 d07d38d0e06da5eccbfacb8e02c9f28e
BLAKE2b-256 5bf787a6e2bd092b4e91eb800e06caa9f9a49b268a017c29e00309605713b6bf

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 058c08d92bc43b550cff5663ad787951dc69ccf0daaf2cd413dc3c55084ae9e1
MD5 dabb855f9c418aa87ef4667e4b810aaa
BLAKE2b-256 a6cd9e6d54fed6dcb8f66f4a7d8aa8107630e926648cebcca260ac2ca69b3fce

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cd567e1c45696f3571bc1fe5a9e4eab132fd4246816bd1614d758b2cbcf54935
MD5 dfd429fcc8e5413876106a0ce091e611
BLAKE2b-256 858ac7e29ce43e5f69ea2e66b15446ad308e43ffbf798153da9bb7350838b17b

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 99da1dc7fa84034dc685e5d23e542a9fa4e54498a0b663412f8deb9c1e7f79a1
MD5 dd3c452b115d8ebb7c158e5a9db692c7
BLAKE2b-256 bf58eb5968cea0ea78cfea6dc32f510f7362d846a88f9af405e83c534fdad72c

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pycontree-1.0.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 125.5 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pycontree-1.0.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b7897ccbb5b3504acfba6f6d363816dbdeb899eb27bd87de81f97e22249329c6
MD5 b53bf75b1a224c72147d7b9ecbdbb880
BLAKE2b-256 31d723f51404e0ae75e88e792a06cb95be692c94e799dd29ed4ee8c074c9e3b4

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp311-cp311-win32.whl.

File metadata

  • Download URL: pycontree-1.0.5-cp311-cp311-win32.whl
  • Upload date:
  • Size: 116.2 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pycontree-1.0.5-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 06b2388d517e74e7714501532b750af28592643a5ae02984ebff74844d095ebd
MD5 07ef386cc450a7411ff7ce17027df4f3
BLAKE2b-256 5723b7b1fd5eb1e0f34f045878821a447089f1ab1db3804b15f7d2ebb1cc3fd5

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0a7485918a47e4031636f92155daec048582ab3f3f681edbc808a5ab019f0887
MD5 197f1175a527dc74c41db24c7709ff91
BLAKE2b-256 ab6ab8e18408dc3b0d85aee0256b637263450b008c3180bf98da79358ebde984

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp311-cp311-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 da6946ab51413bee2d935c11c99e3df1486422a47b9c60b88a9ce80b410640ab
MD5 5d977805ad9b60c086f9c64edb3d009e
BLAKE2b-256 4039015ea98c171aa03772f05da433400df39705566d01b7e963820daba31b3e

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b74b648d7c899440cd4c919a757040af76dd85c884f3043624f73c6af4aff83e
MD5 209dc995374ccd28300ff2f72685fbc7
BLAKE2b-256 28dba6be89a13451bfce6c33c19f6d86d69b14c558b10c1074a89d9bae781d98

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0a7677ca71bec28ced828928f99c76223d6f6bc232fa0c8dd5f37010fb63a7c2
MD5 4d3d4b8f90d1efef80c10e6ee4b0a304
BLAKE2b-256 5558a4bfc5a294076e918cf4154faac0a764b4d482073c186854ab0059459f50

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f84dde581fbda54c96906b4ee27eb15c6f5e09410f84abf494117ba853c788dd
MD5 b4f4fd9309a00a0409e995d532a09f64
BLAKE2b-256 9b668c981fdcae569a5dd2e1245f9f03ef4b393846b1d25fb6ecb46b375f30c9

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 dd4f2c0ac801ae09be8a4b2077567961d095601c091704e08acdd28016fc8dd5
MD5 870cfa03b5d0abfa9ca9dbb2898c339a
BLAKE2b-256 d807c36223d981a14b0d8cc78194a7aaf8280a1d19f3922344b12940e29d2af0

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pycontree-1.0.5-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 124.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pycontree-1.0.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 85eb477c06ee03e5b9cb4e0678079e7ec7f8df5be0fc5d690ca883d72a25f5a8
MD5 1277e238eca05fc171e291e1abf497cf
BLAKE2b-256 67e4b79832ddebc0e7d52af9d9a937b48ab0d2bf5a6a4294e28d9c462284f36b

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp310-cp310-win32.whl.

File metadata

  • Download URL: pycontree-1.0.5-cp310-cp310-win32.whl
  • Upload date:
  • Size: 115.5 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pycontree-1.0.5-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 d66c59a10009d625dd3e3f3afb7792afd32d18696886e0d743f2f589ad15d9cd
MD5 1f314a696b9201cc818b9014e752ee4d
BLAKE2b-256 e5a9fdb394383e7b1f2bb607d7e336ce065a74236626493e2e15f9be69e715d1

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c70bbdfa5f9d4f4faedd10c1a0a0a8b4b7cc4bb082499e4e33e008815002db1a
MD5 837ef081aaf3ec9310a0aa721785a276
BLAKE2b-256 e1ce3e51a2995ebb095ede7a32cfb23014b7c8e74da2294110ed3e63c5f15ebc

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 5dd3580e4b6126f33dc86074b6bfe8418c764e2edd9fa3a8ce80706f6a768c30
MD5 2774a0668095a423af8914e387e60628
BLAKE2b-256 dac1198b30605ac4d632715203a3b97c7e4ca8a3693e947cec602cdb55319adc

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f4ebea76a2534aa49cc4e4f4c67a6b3dae0518efe1c84fa0ad7c48d6741f418e
MD5 1be8688aa9f5fe79e96efe941a4719cc
BLAKE2b-256 455b6583abbe40950b3bfb06f194d86cb3a856e029f1b6c88473bbaa65e17aa1

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fa306ee393ca48e70af710c24891f30e3d748e4fdef28e9612493f004f5f6684
MD5 b7980d3e2e79d1973ae6885f2838740a
BLAKE2b-256 ae01ced767bb84afd43b59068b49e17af7439268eaf0289bdc9e304c27481518

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04b142e482fbc8782bb95e15c71cfc455579734e7376e500f30f1b6a4267307e
MD5 e48acf5d4bf529cbda46efee8cdae237
BLAKE2b-256 e632c92e2aad136ccee6576331ccc670b373a21f52ae24b1abf4400273696424

See more details on using hashes here.

File details

Details for the file pycontree-1.0.5-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for pycontree-1.0.5-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 c56911ec188f5b9ea77bd3ad59949136baea0741ff6edf0b79553da35ae242e2
MD5 cd198d48116be273d62651ff560e0072
BLAKE2b-256 fcdd4e72ee5369f8b299bf09c1ff1158851312e6f556382b54d7f08480055486

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