sktree


Namesktree JSON
Version 0.1.3 PyPI version JSON
download
home_page
SummaryModern decision trees in Python
upload_time2023-07-05 23:35:30
maintainer
docs_urlNone
author
requires_python>=3.9
license
keywords tree oblique trees manifold-learning scikit-learn
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![CircleCI](https://circleci.com/gh/neurodata/scikit-tree/tree/main.svg?style=svg)](https://circleci.com/gh/neurodata/scikit-tree/tree/main)
[![Main](https://github.com/neurodata/scikit-tree/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/neurodata/scikit-tree/actions/workflows/main.yml)
[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
[![codecov](https://codecov.io/gh/neurodata/scikit-tree/branch/main/graph/badge.svg?token=H1reh7Qwf4)](https://codecov.io/gh/neurodata/scikit-tree)

scikit-tree
===========

scikit-tree is a scikit-learn compatible API for building state-of-the-art decision trees. These include unsupervised trees, oblique trees, uncertainty trees, quantile trees and causal trees.

Tree-models have withstood the test of time, and are consistently used for modern-day data science and machine learning applications. They especially perform well when there are limited samples for a problem and are flexible learners that can be applied to a wide variety of different settings, such as tabular, images, time-series, genomics, EEG data and more.

We welcome contributions for modern tree-based algorithms. We use Cython to achieve fast C/C++ speeds, while abiding by a scikit-learn compatible (tested) API. Moreover, our Cython internals are easily extensible because they follow the internal Cython API of scikit-learn as well.

**Submodule dependency on a fork of scikit-learn**
Due to the current state of scikit-learn's internal Cython code for trees, we have to instead leverage a maintained fork of scikit-learn at https://github.com/neurodata/scikit-learn, where specifically, the `fork` branch is used to build and install this repo. We keep that fork well-maintained and up-to-date with respect to the main sklearn repo. The only difference is the refactoring of the `tree/` submodule. This fork is used internally under the namespace ``sktree._lib.sklearn``. It is necessary to use this fork for anything related to:

- `RandomForest*`
- `ExtraTrees*`
- or any importable items from the `tree/` submodule, whether it is a Cython or Python object

If you are developing for scikit-tree, we will always depend on the most up-to-date commit of `https://github.com/neurodata/scikit-learn/submodulev2` as a submodule within scikit-tee. This branch is consistently maintained for changes upstream that occur in the scikit-learn tree submodule. This ensures that our fork maintains consistency and robustness due to bug fixes and improvements upstream.

Documentation
=============

See here for the documentation for our dev version: https://docs.neurodata.io/scikit-tree/dev/index.html

Why oblique trees and why trees beyond those in scikit-learn?
=============================================================
In 2001, Leo Breiman proposed two types of Random Forests. One was known as ``Forest-RI``, which is the axis-aligned traditional random forest. One was known as ``Forest-RC``, which is the random oblique linear combinations random forest. This leveraged random combinations of features to perform splits. [MORF](1) builds upon ``Forest-RC`` by proposing additional functions to combine features. Other modern tree variants such as Canonical Correlation Forests (CCF), or unsupervised random forests are also important at solving real-world problems using robust decision tree models.

Installation
============
Our installation will try to follow scikit-learn installation as close as possible, as we contain Cython code subclassed, or inspired by the scikit-learn tree submodule.

AS OF NOW, scikit-tree is in development stage and the installation is still finicky due to the upstream scikit-learn's stalled refactoring PRs of the tree submodule. Once those are merged, the installation will be simpler. The current recommended installation is done locally with meson.

Dependencies
------------

We minimally require:

    * Python (>=3.8)
    * numpy
    * scipy
    * scikit-learn >= 1.3

Building locally with Meson (RECOMMENDED)
-----------------------------------------
Make sure you have the necessary packages installed

    # install build dependencies
    pip install numpy scipy meson ninja meson-python Cython scikit-learn scikit-learn-tree

    # you may need these optional dependencies to build scikit-learn locally
    conda install -c conda-forge joblib threadpoolctl pytest compilers llvm-openmp

We use the ``spin`` CLI to abstract away build details:

    # run the build using Meson/Ninja
    ./spin build
    
    # you can run the following command to see what other options there are
    ./spin --help
    ./spin build --help
    
    # For example, you might want to start from a clean build
    ./spin build --clean
    
    # or build in parallel for faster builds
    ./spin build -j 2

    # you will need to double check the build-install has the proper path 
    # this might be different from machine to machine
    export PYTHONPATH=${PWD}/build-install/usr/lib/python3.9/site-packages

    # run specific unit tests
    ./spin test -- sktree/tree/tests/test_tree.py

    # you can bring up the CLI menu
    ./spin --help

You can also do the same thing using Meson/Ninja itself. Run the following to build the local files:

    # generate ninja make files
    meson build --prefix=$PWD/build

    # compile
    ninja -C build

    # install scikit-tree package
    meson install -C build

    export PYTHONPATH=${PWD}/build/lib/python3.9/site-packages

    # to check installation, you need to be in a different directory
    cd docs;  
    python -c "from sktree import tree"
    python -c "import sklearn; print(sklearn.__version__);"

Alternatively, you can use editable installs

    pip install --no-build-isolation --editable .

References
==========
[1]: [`Li, Adam, et al. "Manifold Oblique Random Forests: Towards Closing the Gap on Convolutional Deep Networks." arXiv preprint arXiv:1909.11799 (2019)`](https://arxiv.org/abs/1909.11799)
            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "sktree",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "Neurodata <adam.li@columbia.edu>",
    "keywords": "tree oblique trees manifold-learning scikit-learn",
    "author": "",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/6d/ae/ae3e23c6f9ef6990aeced9077b6461964dfb505b32080a7a4115da6523af/sktree-0.1.3.tar.gz",
    "platform": null,
    "description": "[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![CircleCI](https://circleci.com/gh/neurodata/scikit-tree/tree/main.svg?style=svg)](https://circleci.com/gh/neurodata/scikit-tree/tree/main)\n[![Main](https://github.com/neurodata/scikit-tree/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/neurodata/scikit-tree/actions/workflows/main.yml)\n[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)\n[![codecov](https://codecov.io/gh/neurodata/scikit-tree/branch/main/graph/badge.svg?token=H1reh7Qwf4)](https://codecov.io/gh/neurodata/scikit-tree)\n\nscikit-tree\n===========\n\nscikit-tree is a scikit-learn compatible API for building state-of-the-art decision trees. These include unsupervised trees, oblique trees, uncertainty trees, quantile trees and causal trees.\n\nTree-models have withstood the test of time, and are consistently used for modern-day data science and machine learning applications. They especially perform well when there are limited samples for a problem and are flexible learners that can be applied to a wide variety of different settings, such as tabular, images, time-series, genomics, EEG data and more.\n\nWe welcome contributions for modern tree-based algorithms. We use Cython to achieve fast C/C++ speeds, while abiding by a scikit-learn compatible (tested) API. Moreover, our Cython internals are easily extensible because they follow the internal Cython API of scikit-learn as well.\n\n**Submodule dependency on a fork of scikit-learn**\nDue to the current state of scikit-learn's internal Cython code for trees, we have to instead leverage a maintained fork of scikit-learn at https://github.com/neurodata/scikit-learn, where specifically, the `fork` branch is used to build and install this repo. We keep that fork well-maintained and up-to-date with respect to the main sklearn repo. The only difference is the refactoring of the `tree/` submodule. This fork is used internally under the namespace ``sktree._lib.sklearn``. It is necessary to use this fork for anything related to:\n\n- `RandomForest*`\n- `ExtraTrees*`\n- or any importable items from the `tree/` submodule, whether it is a Cython or Python object\n\nIf you are developing for scikit-tree, we will always depend on the most up-to-date commit of `https://github.com/neurodata/scikit-learn/submodulev2` as a submodule within scikit-tee. This branch is consistently maintained for changes upstream that occur in the scikit-learn tree submodule. This ensures that our fork maintains consistency and robustness due to bug fixes and improvements upstream.\n\nDocumentation\n=============\n\nSee here for the documentation for our dev version: https://docs.neurodata.io/scikit-tree/dev/index.html\n\nWhy oblique trees and why trees beyond those in scikit-learn?\n=============================================================\nIn 2001, Leo Breiman proposed two types of Random Forests. One was known as ``Forest-RI``, which is the axis-aligned traditional random forest. One was known as ``Forest-RC``, which is the random oblique linear combinations random forest. This leveraged random combinations of features to perform splits. [MORF](1) builds upon ``Forest-RC`` by proposing additional functions to combine features. Other modern tree variants such as Canonical Correlation Forests (CCF), or unsupervised random forests are also important at solving real-world problems using robust decision tree models.\n\nInstallation\n============\nOur installation will try to follow scikit-learn installation as close as possible, as we contain Cython code subclassed, or inspired by the scikit-learn tree submodule.\n\nAS OF NOW, scikit-tree is in development stage and the installation is still finicky due to the upstream scikit-learn's stalled refactoring PRs of the tree submodule. Once those are merged, the installation will be simpler. The current recommended installation is done locally with meson.\n\nDependencies\n------------\n\nWe minimally require:\n\n    * Python (>=3.8)\n    * numpy\n    * scipy\n    * scikit-learn >= 1.3\n\nBuilding locally with Meson (RECOMMENDED)\n-----------------------------------------\nMake sure you have the necessary packages installed\n\n    # install build dependencies\n    pip install numpy scipy meson ninja meson-python Cython scikit-learn scikit-learn-tree\n\n    # you may need these optional dependencies to build scikit-learn locally\n    conda install -c conda-forge joblib threadpoolctl pytest compilers llvm-openmp\n\nWe use the ``spin`` CLI to abstract away build details:\n\n    # run the build using Meson/Ninja\n    ./spin build\n    \n    # you can run the following command to see what other options there are\n    ./spin --help\n    ./spin build --help\n    \n    # For example, you might want to start from a clean build\n    ./spin build --clean\n    \n    # or build in parallel for faster builds\n    ./spin build -j 2\n\n    # you will need to double check the build-install has the proper path \n    # this might be different from machine to machine\n    export PYTHONPATH=${PWD}/build-install/usr/lib/python3.9/site-packages\n\n    # run specific unit tests\n    ./spin test -- sktree/tree/tests/test_tree.py\n\n    # you can bring up the CLI menu\n    ./spin --help\n\nYou can also do the same thing using Meson/Ninja itself. Run the following to build the local files:\n\n    # generate ninja make files\n    meson build --prefix=$PWD/build\n\n    # compile\n    ninja -C build\n\n    # install scikit-tree package\n    meson install -C build\n\n    export PYTHONPATH=${PWD}/build/lib/python3.9/site-packages\n\n    # to check installation, you need to be in a different directory\n    cd docs;  \n    python -c \"from sktree import tree\"\n    python -c \"import sklearn; print(sklearn.__version__);\"\n\nAlternatively, you can use editable installs\n\n    pip install --no-build-isolation --editable .\n\nReferences\n==========\n[1]: [`Li, Adam, et al. \"Manifold Oblique Random Forests: Towards Closing the Gap on Convolutional Deep Networks.\" arXiv preprint arXiv:1909.11799 (2019)`](https://arxiv.org/abs/1909.11799)",
    "bugtrack_url": null,
    "license": "",
    "summary": "Modern decision trees in Python",
    "version": "0.1.3",
    "project_urls": null,
    "split_keywords": [
        "tree",
        "oblique",
        "trees",
        "manifold-learning",
        "scikit-learn"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0ed274395cb003cf0ccd99ffd40cb97b7ad0901e423e3573e493d3b22b58c363",
                "md5": "9757edc93b9e8f1a6ded751d5556ed33",
                "sha256": "78006d32a486e650afd95a44de5babe1689390ce28f00c7e7c77ae3f69469e8a"
            },
            "downloads": -1,
            "filename": "sktree-0.1.3-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9757edc93b9e8f1a6ded751d5556ed33",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 1486503,
            "upload_time": "2023-07-05T23:06:36",
            "upload_time_iso_8601": "2023-07-05T23:06:36.712852Z",
            "url": "https://files.pythonhosted.org/packages/0e/d2/74395cb003cf0ccd99ffd40cb97b7ad0901e423e3573e493d3b22b58c363/sktree-0.1.3-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9f3ec42020019c8b7bac422f542ce91836a9943cf4ef4ba1d6f0f1e35b4609f4",
                "md5": "23fbf62015125dfce2a793c1739a6ca3",
                "sha256": "23c44e4ba42047127df2d2f05463b14d764807110c0e2dc14ea3a14d87c95bc4"
            },
            "downloads": -1,
            "filename": "sktree-0.1.3-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "23fbf62015125dfce2a793c1739a6ca3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 1362012,
            "upload_time": "2023-07-05T23:06:38",
            "upload_time_iso_8601": "2023-07-05T23:06:38.785033Z",
            "url": "https://files.pythonhosted.org/packages/9f/3e/c42020019c8b7bac422f542ce91836a9943cf4ef4ba1d6f0f1e35b4609f4/sktree-0.1.3-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c5a028008e16707fc652c98c936f16d37d8347e26a6b35b9a0cebb9ba6fa6cf0",
                "md5": "49746ee0673ecef6ed9f50b6effb0973",
                "sha256": "7111790502d0c52ac58c479f174d45e62c3f6381b501e2b52e6c4f24ee0cbe90"
            },
            "downloads": -1,
            "filename": "sktree-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "49746ee0673ecef6ed9f50b6effb0973",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 1887910,
            "upload_time": "2023-07-05T23:06:40",
            "upload_time_iso_8601": "2023-07-05T23:06:40.749527Z",
            "url": "https://files.pythonhosted.org/packages/c5/a0/28008e16707fc652c98c936f16d37d8347e26a6b35b9a0cebb9ba6fa6cf0/sktree-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f56a07a85ae253854cd8b311095c8be3435990b772d9de7f20f465b506a704ad",
                "md5": "2e500d668b37c7a74e7390a131d88b96",
                "sha256": "904741147e8fc0b6320df0a902fdace41c0e9697ade714e6baa7bb2a14a2b7d3"
            },
            "downloads": -1,
            "filename": "sktree-0.1.3-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "2e500d668b37c7a74e7390a131d88b96",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 12414996,
            "upload_time": "2023-07-05T23:06:46",
            "upload_time_iso_8601": "2023-07-05T23:06:46.979066Z",
            "url": "https://files.pythonhosted.org/packages/f5/6a/07a85ae253854cd8b311095c8be3435990b772d9de7f20f465b506a704ad/sktree-0.1.3-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b0dc73ed2220bcc265da7af1d2bc96b9467f4783d7ecb010b7c3850c77856e3d",
                "md5": "806a59d3f82d2c229a633b6f0c8ce954",
                "sha256": "ec78b508b75e8cd2f6281a7a7fb7a5989adfbe372e6f3d749349f1b2ba135f8f"
            },
            "downloads": -1,
            "filename": "sktree-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "806a59d3f82d2c229a633b6f0c8ce954",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 1463568,
            "upload_time": "2023-07-05T23:06:49",
            "upload_time_iso_8601": "2023-07-05T23:06:49.798262Z",
            "url": "https://files.pythonhosted.org/packages/b0/dc/73ed2220bcc265da7af1d2bc96b9467f4783d7ecb010b7c3850c77856e3d/sktree-0.1.3-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "04057bc07e8d8242a50bc77e07b6142629d1de74351fdb380e758410922ff61d",
                "md5": "5a09ccbb76d2cd5def33d9048a7a465a",
                "sha256": "b83bb80b193fa80828dc9dc7caa9a9025e962a445bd6dae32071beb7688610de"
            },
            "downloads": -1,
            "filename": "sktree-0.1.3-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5a09ccbb76d2cd5def33d9048a7a465a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 1339351,
            "upload_time": "2023-07-05T23:06:51",
            "upload_time_iso_8601": "2023-07-05T23:06:51.712281Z",
            "url": "https://files.pythonhosted.org/packages/04/05/7bc07e8d8242a50bc77e07b6142629d1de74351fdb380e758410922ff61d/sktree-0.1.3-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "81a3986ca9d0c90a12ac1945ca15eafb1b2e578a6e4595b0289799dad9d14e55",
                "md5": "8d8a5bfe227261ca86e2c6ed5b0212b9",
                "sha256": "f7e55345faddf1cd819222000ae224684f219dd7b5754ec5a1d3614dd341f127"
            },
            "downloads": -1,
            "filename": "sktree-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8d8a5bfe227261ca86e2c6ed5b0212b9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 1884658,
            "upload_time": "2023-07-05T23:06:53",
            "upload_time_iso_8601": "2023-07-05T23:06:53.404988Z",
            "url": "https://files.pythonhosted.org/packages/81/a3/986ca9d0c90a12ac1945ca15eafb1b2e578a6e4595b0289799dad9d14e55/sktree-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b8915c5875fc0573ca0146fd74eef4a7f64358f07e808da66e67b4d51f096ddc",
                "md5": "210ba5719ecc2311186f0ea0862d393d",
                "sha256": "04d13c5fe990267362370c4dfc402d7de9e6d945a3054389d990321fdbdbe6c5"
            },
            "downloads": -1,
            "filename": "sktree-0.1.3-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "210ba5719ecc2311186f0ea0862d393d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 12416837,
            "upload_time": "2023-07-05T23:06:55",
            "upload_time_iso_8601": "2023-07-05T23:06:55.945792Z",
            "url": "https://files.pythonhosted.org/packages/b8/91/5c5875fc0573ca0146fd74eef4a7f64358f07e808da66e67b4d51f096ddc/sktree-0.1.3-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "40fa7c48df979497c5e5ab92a500eaf07c5fd85bddb278cbd68660f44d147b6f",
                "md5": "29aacd96760034bdfe78ec093aadb608",
                "sha256": "5f2ff696bddb54036161d4a42b0d353b589aa89f0c32a8a3ec77c576d9c680d9"
            },
            "downloads": -1,
            "filename": "sktree-0.1.3-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "29aacd96760034bdfe78ec093aadb608",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 1496406,
            "upload_time": "2023-07-05T23:07:00",
            "upload_time_iso_8601": "2023-07-05T23:07:00.361823Z",
            "url": "https://files.pythonhosted.org/packages/40/fa/7c48df979497c5e5ab92a500eaf07c5fd85bddb278cbd68660f44d147b6f/sktree-0.1.3-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "57cae32e3d0f120471ee3d893844b57f1ac48e97116722398afff57dfffb6318",
                "md5": "1857862d6cd6797fa05c4f621372daf4",
                "sha256": "b661324aaf950758802e353316f3c69723bb0ad303251a7bb4712a96a654f2bf"
            },
            "downloads": -1,
            "filename": "sktree-0.1.3-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "1857862d6cd6797fa05c4f621372daf4",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 1368330,
            "upload_time": "2023-07-05T23:07:02",
            "upload_time_iso_8601": "2023-07-05T23:07:02.294160Z",
            "url": "https://files.pythonhosted.org/packages/57/ca/e32e3d0f120471ee3d893844b57f1ac48e97116722398afff57dfffb6318/sktree-0.1.3-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c40f4183ec166516459af0ead35d7b0e63e83a7e0752850cfa3a3d70d4738178",
                "md5": "117e5deda689fe70197e105fd447fb6b",
                "sha256": "6ae3eb1c94f8ec188a010008ed9881108005f04dff5a372a9388f68ca344ec71"
            },
            "downloads": -1,
            "filename": "sktree-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "117e5deda689fe70197e105fd447fb6b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 1914526,
            "upload_time": "2023-07-05T23:07:04",
            "upload_time_iso_8601": "2023-07-05T23:07:04.246300Z",
            "url": "https://files.pythonhosted.org/packages/c4/0f/4183ec166516459af0ead35d7b0e63e83a7e0752850cfa3a3d70d4738178/sktree-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "861494cbdab5cf09e76659692948ca5eafd75b1ebdf6b5cc959b49e6d0715d69",
                "md5": "4d49c122c76739859247bb773bb76f9e",
                "sha256": "757b5560d9f84eea5caa2cb4a148e9a8b79055ec19bfb60a4f9d9f6c7c915a29"
            },
            "downloads": -1,
            "filename": "sktree-0.1.3-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "4d49c122c76739859247bb773bb76f9e",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 12467089,
            "upload_time": "2023-07-05T23:07:07",
            "upload_time_iso_8601": "2023-07-05T23:07:07.644721Z",
            "url": "https://files.pythonhosted.org/packages/86/14/94cbdab5cf09e76659692948ca5eafd75b1ebdf6b5cc959b49e6d0715d69/sktree-0.1.3-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6daeae3e23c6f9ef6990aeced9077b6461964dfb505b32080a7a4115da6523af",
                "md5": "afb373244f9683acfb9cb6cea7b9827b",
                "sha256": "1bd70aa4b1f360410e1a38db5459331bc5134c91549481212f5e9284884010ed"
            },
            "downloads": -1,
            "filename": "sktree-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "afb373244f9683acfb9cb6cea7b9827b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 13788829,
            "upload_time": "2023-07-05T23:35:30",
            "upload_time_iso_8601": "2023-07-05T23:35:30.926034Z",
            "url": "https://files.pythonhosted.org/packages/6d/ae/ae3e23c6f9ef6990aeced9077b6461964dfb505b32080a7a4115da6523af/sktree-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-05 23:35:30",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "sktree"
}
        
Elapsed time: 1.36849s