obliquetree


Nameobliquetree JSON
Version 1.0.4 PyPI version JSON
download
home_pageNone
SummaryTraditional and Oblique Decision Tree
upload_time2025-11-01 09:43:48
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.4",
    "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": null,
            "digests": {
                "blake2b_256": "0fd01b04db702d35f095299426ec1350d9fa8a6802759650bd1046522a4a8364",
                "md5": "d78f837b35a7c32a944b7f8c28b2deb7",
                "sha256": "61a55ade9be381c6712883d2b18286ba8026611fadfeda5be62c454b15857394"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "d78f837b35a7c32a944b7f8c28b2deb7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 1454499,
            "upload_time": "2025-11-01T09:43:48",
            "upload_time_iso_8601": "2025-11-01T09:43:48.197328Z",
            "url": "https://files.pythonhosted.org/packages/0f/d0/1b04db702d35f095299426ec1350d9fa8a6802759650bd1046522a4a8364/obliquetree-1.0.4-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1b6009a764b1419dde010eeba1d360dc8b80d9bdb5f02c1c9c2dd96e3dd15059",
                "md5": "25399af19f12998a648198e61486c86c",
                "sha256": "d4354532bb969f3f94e31b9faf439d92abafb6d4e991359e19487194cf7dd3f3"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "25399af19f12998a648198e61486c86c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 4334731,
            "upload_time": "2025-11-01T09:51:23",
            "upload_time_iso_8601": "2025-11-01T09:51:23.954710Z",
            "url": "https://files.pythonhosted.org/packages/1b/60/09a764b1419dde010eeba1d360dc8b80d9bdb5f02c1c9c2dd96e3dd15059/obliquetree-1.0.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9144258c58b1799d67cee68cc3c9343d615429ce257be892861b78b7aeb6ff21",
                "md5": "e014f5de754c809b0f13fd4fd92ee116",
                "sha256": "85e6489b7b24f462d0d5ebe1f17627236d198ccb20837c6b2dd75fbbcbcd76b5"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e014f5de754c809b0f13fd4fd92ee116",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 5385291,
            "upload_time": "2025-11-01T09:51:25",
            "upload_time_iso_8601": "2025-11-01T09:51:25.784255Z",
            "url": "https://files.pythonhosted.org/packages/91/44/258c58b1799d67cee68cc3c9343d615429ce257be892861b78b7aeb6ff21/obliquetree-1.0.4-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0f137c109f12a713e28a3fe885138dc56ba2a758a0f0b1c9e0784217f86b4ecf",
                "md5": "f45f277e1805891833dd51dc83718310",
                "sha256": "23b0bbc059807941370b47792c19b76a1a849a68177b34404a78e73a33c0798f"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "f45f277e1805891833dd51dc83718310",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 1381075,
            "upload_time": "2025-11-01T09:46:30",
            "upload_time_iso_8601": "2025-11-01T09:46:30.869570Z",
            "url": "https://files.pythonhosted.org/packages/0f/13/7c109f12a713e28a3fe885138dc56ba2a758a0f0b1c9e0784217f86b4ecf/obliquetree-1.0.4-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "87631c9c04f83572c51685b9f635babf1beed569ba50ac9b2de177ec5c6cff6e",
                "md5": "338dbe520be83e9f65a014d9a13a2d81",
                "sha256": "070327b269c10c89f9bb2b2f54ef4fc6ac17fa17469347f25c1c626a71d7cec3"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "338dbe520be83e9f65a014d9a13a2d81",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 1452409,
            "upload_time": "2025-11-01T09:43:49",
            "upload_time_iso_8601": "2025-11-01T09:43:49.514162Z",
            "url": "https://files.pythonhosted.org/packages/87/63/1c9c04f83572c51685b9f635babf1beed569ba50ac9b2de177ec5c6cff6e/obliquetree-1.0.4-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6200414078fbb5b90de84fc5a6f847e21526878257faf8302520a655d18416ff",
                "md5": "d614d1e8f7e510255f07e94100d1a8f6",
                "sha256": "b75c693dc671bc9539ec4c8127d47e57c37bc9d48660c83279d657a7ced78901"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d614d1e8f7e510255f07e94100d1a8f6",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 4505353,
            "upload_time": "2025-11-01T09:51:27",
            "upload_time_iso_8601": "2025-11-01T09:51:27.540562Z",
            "url": "https://files.pythonhosted.org/packages/62/00/414078fbb5b90de84fc5a6f847e21526878257faf8302520a655d18416ff/obliquetree-1.0.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bc32f4d8b7575ab639db8f2dd09151bef95a11aaab95a483983ee81ba5b10e40",
                "md5": "fa70c7590c17d4182f29ef5d4a6a9d90",
                "sha256": "71cc211ca03a55e8a94945cd18943f10f42d4da44b0c65980c12333715d2273f"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fa70c7590c17d4182f29ef5d4a6a9d90",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 5555273,
            "upload_time": "2025-11-01T09:51:29",
            "upload_time_iso_8601": "2025-11-01T09:51:29.507398Z",
            "url": "https://files.pythonhosted.org/packages/bc/32/f4d8b7575ab639db8f2dd09151bef95a11aaab95a483983ee81ba5b10e40/obliquetree-1.0.4-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "01d3bb2c3d974d409d6b77d17f95907b2910294056202c0565149940f8523736",
                "md5": "b553fea1b082b8b6a36df1bbd874a8f7",
                "sha256": "a809224cfbf03ebd53e1899bf08b597011e474b5f0e65a000dd4d963036e428c"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b553fea1b082b8b6a36df1bbd874a8f7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 1379699,
            "upload_time": "2025-11-01T09:46:32",
            "upload_time_iso_8601": "2025-11-01T09:46:32.189659Z",
            "url": "https://files.pythonhosted.org/packages/01/d3/bb2c3d974d409d6b77d17f95907b2910294056202c0565149940f8523736/obliquetree-1.0.4-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1d5358566acbf457e2fc3e73f256427ec18f01c047ca28d2a807c4b68071c499",
                "md5": "2aab9cd7e4ee2c4aac88ce9153677d50",
                "sha256": "55d8df15672d6e027c0e0d0e9bd5b0ed45b0c33a334c858f666ab5eb40d8a745"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "2aab9cd7e4ee2c4aac88ce9153677d50",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 1452601,
            "upload_time": "2025-11-01T09:43:50",
            "upload_time_iso_8601": "2025-11-01T09:43:50.896470Z",
            "url": "https://files.pythonhosted.org/packages/1d/53/58566acbf457e2fc3e73f256427ec18f01c047ca28d2a807c4b68071c499/obliquetree-1.0.4-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c2134455be0ec3fb08db6e18d32b4a765e4f54c5b799ee447ca05fc8cf941039",
                "md5": "780e36fb0263932b3fb973cec417a0be",
                "sha256": "b5527da7a947be034969b269077f61e9067386d7b5775ea4f66ad45a80b99320"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "780e36fb0263932b3fb973cec417a0be",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 4456248,
            "upload_time": "2025-11-01T09:51:31",
            "upload_time_iso_8601": "2025-11-01T09:51:31.339307Z",
            "url": "https://files.pythonhosted.org/packages/c2/13/4455be0ec3fb08db6e18d32b4a765e4f54c5b799ee447ca05fc8cf941039/obliquetree-1.0.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9313d0ce1099c9f4c710d080eb89af2ee88f3800b2d577dc6d20d022809fcda8",
                "md5": "e64d2a1278190c3105aa1d79b980a064",
                "sha256": "84a7317d6313e4346777a62f56a9d5424888de8bfe120e0e392fbcac026023c4"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e64d2a1278190c3105aa1d79b980a064",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 5480520,
            "upload_time": "2025-11-01T09:51:33",
            "upload_time_iso_8601": "2025-11-01T09:51:33.046790Z",
            "url": "https://files.pythonhosted.org/packages/93/13/d0ce1099c9f4c710d080eb89af2ee88f3800b2d577dc6d20d022809fcda8/obliquetree-1.0.4-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "280c6a2ab50d0e86ce216b9199c0e1d4431bde023cacd2ee38f4ee3509571fc6",
                "md5": "58279e53e21609563301b589c2ebdde2",
                "sha256": "13543ef82309bf2a76c70ea20e86a9f77aaa09d4b0ac7c7d01136d292e61c9ac"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "58279e53e21609563301b589c2ebdde2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 1381737,
            "upload_time": "2025-11-01T09:46:33",
            "upload_time_iso_8601": "2025-11-01T09:46:33.503700Z",
            "url": "https://files.pythonhosted.org/packages/28/0c/6a2ab50d0e86ce216b9199c0e1d4431bde023cacd2ee38f4ee3509571fc6/obliquetree-1.0.4-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cedf0f7ebe60781ec19fc87029248bf140d10011efb259fbf4fdd113ba38d853",
                "md5": "71e2beeff562f4c0241c24fe62c7ac92",
                "sha256": "e36ef77f8e715047e13dcb9986ef093e3bdb6e3d7dfb7daecf614614d105df8a"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "71e2beeff562f4c0241c24fe62c7ac92",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 1447946,
            "upload_time": "2025-11-01T09:43:51",
            "upload_time_iso_8601": "2025-11-01T09:43:51.912449Z",
            "url": "https://files.pythonhosted.org/packages/ce/df/0f7ebe60781ec19fc87029248bf140d10011efb259fbf4fdd113ba38d853/obliquetree-1.0.4-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9343a3367190590f7f5611d2d6eb584f3287acc09b5bbe18fdefe80c35b6dda7",
                "md5": "82ec81e4792078600d6a875b993d7a57",
                "sha256": "e924ad695cf8a5e688edfc7f9e1664714300ad874934f2d6af6530958dac4968"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "82ec81e4792078600d6a875b993d7a57",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 4447720,
            "upload_time": "2025-11-01T09:51:34",
            "upload_time_iso_8601": "2025-11-01T09:51:34.782191Z",
            "url": "https://files.pythonhosted.org/packages/93/43/a3367190590f7f5611d2d6eb584f3287acc09b5bbe18fdefe80c35b6dda7/obliquetree-1.0.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1fec03c7c535966f85ffc964e352f8b2a33366522bc286020eabf40abb91e02d",
                "md5": "efd802183d05dc36ad77689899fbb50b",
                "sha256": "0058211c22a8a9ba4fc9eeecee74c9ad9d582d8dfa0300fe12dbf03bae7c1e2f"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "efd802183d05dc36ad77689899fbb50b",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 5466905,
            "upload_time": "2025-11-01T09:51:36",
            "upload_time_iso_8601": "2025-11-01T09:51:36.203822Z",
            "url": "https://files.pythonhosted.org/packages/1f/ec/03c7c535966f85ffc964e352f8b2a33366522bc286020eabf40abb91e02d/obliquetree-1.0.4-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b2ac91425693b99d41a8cbe59c72d3d5639b8886ed42e28bac1fc9eaf7527529",
                "md5": "a93d35425da53e86b389cc56d3502009",
                "sha256": "9df34c4ce88d3aae07d2d7d49316de570ff118c6e7bbf695710d8fa8eff79e90"
            },
            "downloads": -1,
            "filename": "obliquetree-1.0.4-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a93d35425da53e86b389cc56d3502009",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 1380310,
            "upload_time": "2025-11-01T09:46:34",
            "upload_time_iso_8601": "2025-11-01T09:46:34.513427Z",
            "url": "https://files.pythonhosted.org/packages/b2/ac/91425693b99d41a8cbe59c72d3d5639b8886ed42e28bac1fc9eaf7527529/obliquetree-1.0.4-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-01 09:43:48",
    "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: 2.15808s