obliquetree


Nameobliquetree JSON
Version 1.0.1 PyPI version JSON
download
home_pageNone
SummaryTraditional and Oblique Decision Tree
upload_time2025-01-09 10:38:00
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT License
keywords python data-science machine-learning machine-learning-library explainable-ai decision-tree oblique-tree
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # obliquetree

`obliquetree` is an advanced decision tree implementation designed to provide high-performance and interpretable models. It supports both classification and regression tasks, enabling a wide range of applications. By offering traditional and oblique splits, it ensures flexibility and improved generalization with shallow trees. This makes it a powerful alternative to regular decision trees.


![Tree Visualization](docs/source/_static/tree_visual.png)


----

## Getting Started

`obliquetree` combines advanced capabilities with efficient performance. It supports **oblique splits**, leveraging **L-BFGS optimization** to determine the best linear weights for splits, ensuring both speed and accuracy.

In **traditional mode**, without oblique splits, `obliquetree` outperforms `scikit-learn` in terms of speed and adds support for **categorical variables**, providing a significant advantage over many traditional decision tree implementations.

When the **oblique feature** is enabled, `obliquetree` dynamically selects the optimal split type between oblique and traditional splits. If no weights can be found to reduce impurity, it defaults to an **axis-aligned split**, ensuring robustness and adaptability in various scenarios.

In very large trees (e.g., depth 10 or more), the performance of `obliquetree` may converge closely with **traditional trees**. The true strength of `obliquetree` lies in their ability to perform exceptionally well at **shallower depths**, offering improved generalization with fewer splits. Moreover, thanks to linear projections, `obliquetree` significantly outperform traditional trees when working with datasets that exhibit **linear relationships**.

-----
## Installation
To install `obliquetree`, use the following pip command:
```bash
pip install obliquetree
```

Using the `obliquetree` library is simple and intuitive. Here's a more generic example that works for both classification and regression:


```python
from obliquetree import Classifier, Regressor

# Initialize the model (Classifier or Regressor)
model = Classifier(  # Replace "Classifier" with "Regressor" if performing regression
    use_oblique=True,       # Enable oblique splits
    max_depth=2,            # Set the maximum depth of the tree
    n_pair=2,               # Number of feature pairs for optimization
    random_state=42,        # Set a random state for reproducibility
    categories=[0, 10, 32], # Specify which features are categorical
)

# Train the model on the training dataset
model.fit(X_train, y_train)

# Predict on the test dataset
y_pred = model.predict(X_test)
```
-----

## Documentation
For example usage, API details, comparisons with axis-aligned trees, and in-depth insights into the algorithmic foundation, we **strongly recommend** referring to the full [documentation](https://obliquetree.readthedocs.io/en/latest/).

---
## Key Features

- **Oblique Splits**  
  Perform oblique splits using linear combinations of features to capture complex patterns in data. Supports both linear and soft decision tree objectives for flexible and accurate modeling.

- **Axis-Aligned Splits**  
  Offers conventional (axis-aligned) splits, enabling users to leverage standard decision tree behavior for simplicity and interpretability.

- **Feature Constraints**  
  Limit the number of features used in oblique splits with the `n_pair` parameter, promoting simpler, more interpretable tree structures while retaining predictive power.

- **Seamless Categorical Feature Handling**  
  Natively supports categorical columns with minimal preprocessing. Only label encoding is required, removing the need for extensive data transformation.

- **Robust Handling of Missing Values**  
  Automatically assigns `NaN` values to the optimal leaf for axis-aligned splits.

- **Customizable Tree Structures**  
  The flexible API empowers users to design their own tree architectures easily.

- **Exact Equivalence with `scikit-learn`**  
  Guarantees results identical to `scikit-learn`'s decision trees when oblique and categorical splitting are disabled.

- **Optimized Performance**  
  Outperforms `scikit-learn` in terms of speed and efficiency when oblique and categorical splitting are disabled:
  - Up to **50% faster** for datasets with float columns.
  - Up to **200% faster** for datasets with integer columns.

  ![Performance Comparison (Float)](docs/source/_static/sklearn_perf/performance_comparison_float.png)

  ![Performance Comparison (Integer)](docs/source/_static/sklearn_perf/performance_comparison_int.png)


----
### Contributing
Contributions are welcome! If you'd like to improve `obliquetree` or suggest new features, feel free to fork the repository and submit a pull request.

-----
### License
`obliquetree` is released under the MIT License. See the LICENSE file for more details.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "obliquetree",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "python, data-science, machine-learning, machine-learning-library, explainable-ai, decision-tree, oblique-tree",
    "author": null,
    "author_email": "Samet Copur <sametcopur@yahoo.com>",
    "download_url": null,
    "platform": null,
    "description": "# obliquetree\n\n`obliquetree` is an advanced decision tree implementation designed to provide high-performance and interpretable models. It supports both classification and regression tasks, enabling a wide range of applications. By offering traditional and oblique splits, it ensures flexibility and improved generalization with shallow trees. This makes it a powerful alternative to regular decision trees.\n\n\n![Tree Visualization](docs/source/_static/tree_visual.png)\n\n\n----\n\n## Getting Started\n\n`obliquetree` combines advanced capabilities with efficient performance. It supports **oblique splits**, leveraging **L-BFGS optimization** to determine the best linear weights for splits, ensuring both speed and accuracy.\n\nIn **traditional mode**, without oblique splits, `obliquetree` outperforms `scikit-learn` in terms of speed and adds support for **categorical variables**, providing a significant advantage over many traditional decision tree implementations.\n\nWhen the **oblique feature** is enabled, `obliquetree` dynamically selects the optimal split type between oblique and traditional splits. If no weights can be found to reduce impurity, it defaults to an **axis-aligned split**, ensuring robustness and adaptability in various scenarios.\n\nIn very large trees (e.g., depth 10 or more), the performance of `obliquetree` may converge closely with **traditional trees**. The true strength of `obliquetree` lies in their ability to perform exceptionally well at **shallower depths**, offering improved generalization with fewer splits. Moreover, thanks to linear projections, `obliquetree` significantly outperform traditional trees when working with datasets that exhibit **linear relationships**.\n\n-----\n## Installation\nTo install `obliquetree`, use the following pip command:\n```bash\npip install obliquetree\n```\n\nUsing the `obliquetree` library is simple and intuitive. Here's a more generic example that works for both classification and regression:\n\n\n```python\nfrom obliquetree import Classifier, Regressor\n\n# Initialize the model (Classifier or Regressor)\nmodel = Classifier(  # Replace \"Classifier\" with \"Regressor\" if performing regression\n    use_oblique=True,       # Enable oblique splits\n    max_depth=2,            # Set the maximum depth of the tree\n    n_pair=2,               # Number of feature pairs for optimization\n    random_state=42,        # Set a random state for reproducibility\n    categories=[0, 10, 32], # Specify which features are categorical\n)\n\n# Train the model on the training dataset\nmodel.fit(X_train, y_train)\n\n# Predict on the test dataset\ny_pred = model.predict(X_test)\n```\n-----\n\n## Documentation\nFor example usage, API details, comparisons with axis-aligned trees, and in-depth insights into the algorithmic foundation, we **strongly recommend** referring to the full [documentation](https://obliquetree.readthedocs.io/en/latest/).\n\n---\n## Key Features\n\n- **Oblique Splits**  \n  Perform oblique splits using linear combinations of features to capture complex patterns in data. Supports both linear and soft decision tree objectives for flexible and accurate modeling.\n\n- **Axis-Aligned Splits**  \n  Offers conventional (axis-aligned) splits, enabling users to leverage standard decision tree behavior for simplicity and interpretability.\n\n- **Feature Constraints**  \n  Limit the number of features used in oblique splits with the `n_pair` parameter, promoting simpler, more interpretable tree structures while retaining predictive power.\n\n- **Seamless Categorical Feature Handling**  \n  Natively supports categorical columns with minimal preprocessing. Only label encoding is required, removing the need for extensive data transformation.\n\n- **Robust Handling of Missing Values**  \n  Automatically assigns `NaN` values to the optimal leaf for axis-aligned splits.\n\n- **Customizable Tree Structures**  \n  The flexible API empowers users to design their own tree architectures easily.\n\n- **Exact Equivalence with `scikit-learn`**  \n  Guarantees results identical to `scikit-learn`'s decision trees when oblique and categorical splitting are disabled.\n\n- **Optimized Performance**  \n  Outperforms `scikit-learn` in terms of speed and efficiency when oblique and categorical splitting are disabled:\n  - Up to **50% faster** for datasets with float columns.\n  - Up to **200% faster** for datasets with integer columns.\n\n  ![Performance Comparison (Float)](docs/source/_static/sklearn_perf/performance_comparison_float.png)\n\n  ![Performance Comparison (Integer)](docs/source/_static/sklearn_perf/performance_comparison_int.png)\n\n\n----\n### Contributing\nContributions are welcome! If you'd like to improve `obliquetree` or suggest new features, feel free to fork the repository and submit a pull request.\n\n-----\n### License\n`obliquetree` is released under the MIT License. See the LICENSE file for more details.\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Traditional and Oblique Decision Tree",
    "version": "1.0.1",
    "project_urls": {
        "Documentation": "https://obliquetree.readthedocs.io/en/latest/",
        "Repository": "https://github.com/sametcopur/obliquetree",
        "Tracker": "https://github.com/sametcopur/obliquetree/issues"
    },
    "split_keywords": [
        "python",
        " data-science",
        " machine-learning",
        " machine-learning-library",
        " explainable-ai",
        " decision-tree",
        " oblique-tree"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "da003da10be0ce8a7e7022897aa2d67e662c79ed66b9586f00b368a806b4f2f3",
                "md5": "086bd581a5983cc8972dbec6212dcb35",
                "sha256": "605fda8bce9d1a00a454d6b0931ed37b67590bb9d015a9044d49034e58155418"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "086bd581a5983cc8972dbec6212dcb35",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 1419487,
            "upload_time": "2025-01-09T10:38:00",
            "upload_time_iso_8601": "2025-01-09T10:38:00.779842Z",
            "url": "https://files.pythonhosted.org/packages/da/00/3da10be0ce8a7e7022897aa2d67e662c79ed66b9586f00b368a806b4f2f3/obliquetree-1.0.1-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "91c5bd5d8f286fe127ffade67f76818c64baa8ed4a24bdd9f99dfbe326e84e21",
                "md5": "48490dd98c1dc736e800b46ad1c03f08",
                "sha256": "197f990b0f5db42ee52d1640c89e97e1d87df939964393f1a8ccd8f51dc89c8e"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "48490dd98c1dc736e800b46ad1c03f08",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 4043241,
            "upload_time": "2025-01-09T10:45:28",
            "upload_time_iso_8601": "2025-01-09T10:45:28.284309Z",
            "url": "https://files.pythonhosted.org/packages/91/c5/bd5d8f286fe127ffade67f76818c64baa8ed4a24bdd9f99dfbe326e84e21/obliquetree-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5710cd885dedef9a8f914b896e9d5c47e3e86be882bcbb29d7e75bbf0d391f91",
                "md5": "f2b40c841da55d21508c0f80df82c8be",
                "sha256": "b1bbeac51aa3fc9c165946ce5910b6a2c11d7ff39c355a906f9499603d644636"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f2b40c841da55d21508c0f80df82c8be",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 5216123,
            "upload_time": "2025-01-09T10:45:31",
            "upload_time_iso_8601": "2025-01-09T10:45:31.252640Z",
            "url": "https://files.pythonhosted.org/packages/57/10/cd885dedef9a8f914b896e9d5c47e3e86be882bcbb29d7e75bbf0d391f91/obliquetree-1.0.1-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b0e2fd27adb7f63d021e8042b61a6e9b02ba951de1dbcdd0837d8217d9624616",
                "md5": "93cb40cdaff370311fa65ef61f37ce4a",
                "sha256": "d31be8fa900223f90475e1d9c4928b42d43f7fc556e0a17caae2ad1d2ccfc465"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "93cb40cdaff370311fa65ef61f37ce4a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 1378241,
            "upload_time": "2025-01-09T10:40:55",
            "upload_time_iso_8601": "2025-01-09T10:40:55.616141Z",
            "url": "https://files.pythonhosted.org/packages/b0/e2/fd27adb7f63d021e8042b61a6e9b02ba951de1dbcdd0837d8217d9624616/obliquetree-1.0.1-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d2e16f4d5896754172708c870e119d5419fd9c048c860b391906624972d1d118",
                "md5": "a7806e90644b901d6259b6783fef3d53",
                "sha256": "dd2c524a809c31ffba48c4196b7fe090dd68fa50b56ef3a186032bd4c0b3fab7"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "a7806e90644b901d6259b6783fef3d53",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 1418158,
            "upload_time": "2025-01-09T10:38:02",
            "upload_time_iso_8601": "2025-01-09T10:38:02.368853Z",
            "url": "https://files.pythonhosted.org/packages/d2/e1/6f4d5896754172708c870e119d5419fd9c048c860b391906624972d1d118/obliquetree-1.0.1-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6b12d373488ff0fa2f6bbab78e1caac5b89f901270ae6301ae73e38fae8deac0",
                "md5": "3d189e456b903a975514e36711a7c07a",
                "sha256": "73a8faa418783f2b0daefd2d79889201ead46b776fe3d77028a80e4ab9c234bf"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3d189e456b903a975514e36711a7c07a",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 4272877,
            "upload_time": "2025-01-09T10:45:32",
            "upload_time_iso_8601": "2025-01-09T10:45:32.887703Z",
            "url": "https://files.pythonhosted.org/packages/6b/12/d373488ff0fa2f6bbab78e1caac5b89f901270ae6301ae73e38fae8deac0/obliquetree-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3d6c5a0df639a2950203da314f03411ce1f8628e68d0712ab98e675b68d310fd",
                "md5": "c5d3368298a556fec0bd28f2f40077c2",
                "sha256": "e1244079656cf8ddde55097698692073dea5ad4974a812632da7fceb69117737"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c5d3368298a556fec0bd28f2f40077c2",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 5459373,
            "upload_time": "2025-01-09T10:45:35",
            "upload_time_iso_8601": "2025-01-09T10:45:35.691960Z",
            "url": "https://files.pythonhosted.org/packages/3d/6c/5a0df639a2950203da314f03411ce1f8628e68d0712ab98e675b68d310fd/obliquetree-1.0.1-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "56244b7d35b004bcbb2c073923bd555b813af6a484d5eb4183c5aa56e90dbf39",
                "md5": "f5c097f90c0f70c7cc2cf7c9bd665203",
                "sha256": "77477b5c1ccfb7f05c54880f446a0c975eaedbb7f4a44f0c1fa33a9a7e0d8481"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f5c097f90c0f70c7cc2cf7c9bd665203",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 1379137,
            "upload_time": "2025-01-09T10:40:58",
            "upload_time_iso_8601": "2025-01-09T10:40:58.339117Z",
            "url": "https://files.pythonhosted.org/packages/56/24/4b7d35b004bcbb2c073923bd555b813af6a484d5eb4183c5aa56e90dbf39/obliquetree-1.0.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6d04bd10a3b40b8a62a260973f2585d95b1f3112910142ffea386c943dbedafc",
                "md5": "5fa4f040b16ab9ee71345735ecead311",
                "sha256": "bc3b834ddbf9114d54bd1fb0031eeaedbc4c762b4457eb516efdf1383f1ceaad"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5fa4f040b16ab9ee71345735ecead311",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 1421519,
            "upload_time": "2025-01-09T10:38:03",
            "upload_time_iso_8601": "2025-01-09T10:38:03.668975Z",
            "url": "https://files.pythonhosted.org/packages/6d/04/bd10a3b40b8a62a260973f2585d95b1f3112910142ffea386c943dbedafc/obliquetree-1.0.1-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6aadb89c1b2b4e609ac08ee3e5382ffc7e73969dad74efc2d666d1dadcdeeda4",
                "md5": "cf9c5aad805b4d66911e1aa95f75e008",
                "sha256": "60bf536aec2d89e18d5157e135d085d52d6ea82a8606a244b83a7867f241c9be"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cf9c5aad805b4d66911e1aa95f75e008",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 4200347,
            "upload_time": "2025-01-09T10:45:37",
            "upload_time_iso_8601": "2025-01-09T10:45:37.487479Z",
            "url": "https://files.pythonhosted.org/packages/6a/ad/b89c1b2b4e609ac08ee3e5382ffc7e73969dad74efc2d666d1dadcdeeda4/obliquetree-1.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cf73e6fc81a6f7a6fadf7c7805ce19e85f664cfecad14d229600794c1d8743b6",
                "md5": "06756b9cedb3362d72c7b5846467a64a",
                "sha256": "0bb0bf8a4a1d922ee44133be55ad83b57ac700801495348f3f959f723325bc5c"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "06756b9cedb3362d72c7b5846467a64a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 5394532,
            "upload_time": "2025-01-09T10:45:40",
            "upload_time_iso_8601": "2025-01-09T10:45:40.459325Z",
            "url": "https://files.pythonhosted.org/packages/cf/73/e6fc81a6f7a6fadf7c7805ce19e85f664cfecad14d229600794c1d8743b6/obliquetree-1.0.1-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7e932d909823290ede0038f48fa1220f50aeccb37f1f20c36d1b8d5f3b3ec0cd",
                "md5": "f88018a245d220c9b4eaf5d6c6d71d6e",
                "sha256": "e2fca35fc4ed3405fc5e92372abddf9b1e71c950ef1717094b1858d11e524415"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f88018a245d220c9b4eaf5d6c6d71d6e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 1378720,
            "upload_time": "2025-01-09T10:40:59",
            "upload_time_iso_8601": "2025-01-09T10:40:59.599031Z",
            "url": "https://files.pythonhosted.org/packages/7e/93/2d909823290ede0038f48fa1220f50aeccb37f1f20c36d1b8d5f3b3ec0cd/obliquetree-1.0.1-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bb38b2173f19517ae6e028192f4f5e6fdef25585e6bb7747a7251443003ec678",
                "md5": "e330f449fbb627537821c94bfd2d9d1a",
                "sha256": "4cbfd81bb85dcc3c37be850b420d498c81bc4520b7ba4761ed67c7c87b72e16c"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "e330f449fbb627537821c94bfd2d9d1a",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 1415183,
            "upload_time": "2025-01-09T10:38:06",
            "upload_time_iso_8601": "2025-01-09T10:38:06.132752Z",
            "url": "https://files.pythonhosted.org/packages/bb/38/b2173f19517ae6e028192f4f5e6fdef25585e6bb7747a7251443003ec678/obliquetree-1.0.1-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "071951bcb55e293d64c7a089477820dd9f6737d5ea0fbc7676c47e5469067eb3",
                "md5": "4f11de76d2d4c69fa4460e5b40968176",
                "sha256": "6d264a9f2cab341a8519443b3a5e8d176e2a5b9c7a39847c990d462b3ec38efd"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4f11de76d2d4c69fa4460e5b40968176",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 4186257,
            "upload_time": "2025-01-09T10:45:44",
            "upload_time_iso_8601": "2025-01-09T10:45:44.280566Z",
            "url": "https://files.pythonhosted.org/packages/07/19/51bcb55e293d64c7a089477820dd9f6737d5ea0fbc7676c47e5469067eb3/obliquetree-1.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9eaf74f0a0dba87f0214aa339b00280ec7d92fc48bba27add8004c327d4fe5df",
                "md5": "44ae49312bc3e9a594b945528d354f78",
                "sha256": "05feacca3fdbf834bd3dfffd23d494ad9981a11769c7d09a55d8fd3934b7dd29"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "44ae49312bc3e9a594b945528d354f78",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 5377400,
            "upload_time": "2025-01-09T10:45:45",
            "upload_time_iso_8601": "2025-01-09T10:45:45.993257Z",
            "url": "https://files.pythonhosted.org/packages/9e/af/74f0a0dba87f0214aa339b00280ec7d92fc48bba27add8004c327d4fe5df/obliquetree-1.0.1-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3e1807d9c8de8386d47c696b4bedb4373389255a9ef222cb9891a47d6216eeda",
                "md5": "5b8b03884f978b8f0ded6e4176377a40",
                "sha256": "3283f9ba8d18f2787c0ace2e6cba3c5100929fdcc75843f3cceb4c9c8fe2b333"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.1-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "5b8b03884f978b8f0ded6e4176377a40",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 1377400,
            "upload_time": "2025-01-09T10:41:02",
            "upload_time_iso_8601": "2025-01-09T10:41:02.096449Z",
            "url": "https://files.pythonhosted.org/packages/3e/18/07d9c8de8386d47c696b4bedb4373389255a9ef222cb9891a47d6216eeda/obliquetree-1.0.1-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-09 10:38:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sametcopur",
    "github_project": "obliquetree",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "obliquetree"
}
        
Elapsed time: 0.43238s