binlearn


Namebinlearn JSON
Version 0.1.14 PyPI version JSON
download
home_pageNone
SummaryA comprehensive binning and discretization library for machine learning
upload_time2025-08-04 13:46:22
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords binning discretization binlearn data preprocessing machine learning data science feature engineering
VCS
bugtrack_url
requirements numpy pytest scipy kmeans1d scikit-learn
Travis-CI No Travis.
coveralls test coverage No coveralls.
            =============================================
binlearn - Binning and Discretization Library
=============================================

.. image:: https://img.shields.io/pypi/v/binlearn
    :alt: PyPI Version
    :target: https://pypi.org/project/binlearn/

.. image:: https://img.shields.io/pypi/pyversions/binlearn
    :alt: Python Versions
    :target: https://pypi.org/project/binlearn/

.. image:: https://img.shields.io/github/actions/workflow/status/TheDAALab/binlearn/build.yml?branch=main
    :alt: Build Status
    :target: https://github.com/TheDAALab/binlearn/actions/workflows/build.yml

.. image:: https://img.shields.io/codecov/c/github/TheDAALab/binlearn
    :alt: Code Coverage
    :target: https://codecov.io/gh/TheDAALab/binlearn

.. image:: https://img.shields.io/github/license/TheDAALab/binlearn
    :alt: License
    :target: https://github.com/TheDAALab/binlearn/blob/main/LICENSE

.. image:: https://img.shields.io/readthedocs/binlearn
    :alt: Documentation Status
    :target: https://binlearn.readthedocs.io/

.. image:: https://img.shields.io/pypi/dm/binlearn
    :alt: Monthly Downloads
    :target: https://pypi.org/project/binlearn/

.. image:: https://img.shields.io/github/stars/TheDAALab/binlearn?style=social
    :alt: GitHub Stars
    :target: https://github.com/TheDAALab/binlearn

.. image:: https://img.shields.io/badge/code%20style-ruff-000000.svg
    :alt: Code Style - Ruff
    :target: https://github.com/astral-sh/ruff

.. image:: https://img.shields.io/badge/typing-mypy-blue
    :alt: Type Checking - MyPy
    :target: https://mypy.readthedocs.io/

A modern, type-safe Python library for data binning and discretization with comprehensive error handling, sklearn compatibility, and DataFrame support. Features our new **SingletonBinning** method for cleaner categorical data encoding!

๐Ÿš€ **Key Features**
---------------------

โœจ **Multiple Binning Methods**
  * **EqualWidthBinning** - Equal-width intervals across data range
  * **EqualFrequencyBinning** - Equal-frequency (quantile-based) bins  
  * **KMeansBinning** - K-means clustering-based discretization
  * **EqualWidthMinimumWeightBinning** - Weight-constrained equal-width binning
  * **SupervisedBinning** - Decision tree-based supervised binning for classification and regression
  * **ManualIntervalBinning** - Custom interval boundary specification
  * **ManualFlexibleBinning** - Mixed interval and singleton bin definitions
  * **SingletonBinning** - Clean categorical encoding for discrete values ๐Ÿ†•

๐Ÿ”ง **Framework Integration**
  * **Pandas DataFrames** - Native support with column name preservation
  * **Polars DataFrames** - High-performance columnar data support (optional)
  * **NumPy Arrays** - Efficient numerical array processing
  * **Scikit-learn Pipelines** - Full transformer compatibility

โšก **Modern Code Quality**
  * **Type Safety** - 100% mypy compliance with comprehensive type annotations
  * **Code Quality** - 100% ruff compliance with modern Python syntax
  * **Error Handling** - Comprehensive validation with helpful error messages and suggestions
  * **Test Coverage** - 100% code coverage with 841 comprehensive tests
  * **Documentation** - Extensive examples and API documentation with SingletonBinning guide

๐Ÿ“ฆ **Installation**
---------------------

.. code-block:: bash

   pip install binlearn

๐Ÿ”ฅ **Quick Start**
--------------------

.. code-block:: python

   import numpy as np
   import pandas as pd
   from binlearn import EqualWidthBinning, SupervisedBinning, SingletonBinning
   
   # Create sample data
   data = pd.DataFrame({
       'age': np.random.normal(35, 10, 1000),
       'income': np.random.lognormal(10, 0.5, 1000),
       'score': np.random.uniform(0, 100, 1000)
   })
   
   # Equal-width binning with DataFrame preservation
   binner = EqualWidthBinning(n_bins=5, preserve_dataframe=True)
   data_binned = binner.fit_transform(data)
   
   print(f"Original shape: {data.shape}")
   print(f"Binned shape: {data_binned.shape}")
   print(f"Bin edges for age: {binner.bin_edges_['age']}")
   
   # NEW: SingletonBinning for categorical features
   categorical_data = pd.DataFrame({
       'category': ['A', 'B', 'A', 'C', 'B', 'A'],
       'rating': [1, 2, 1, 3, 2, 1]
   })
   
   singleton_binner = SingletonBinning(preserve_dataframe=True)
   categorical_binned = singleton_binner.fit_transform(categorical_data)
   print(f"Categorical binning: {categorical_binned.shape}")

๐ŸŽฏ **Supervised Binning Example**
-----------------------------------

.. code-block:: python

   from binlearn import SupervisedBinning
   from sklearn.datasets import make_classification
   from sklearn.model_selection import train_test_split
   
   # Create classification dataset
   X, y = make_classification(n_samples=1000, n_features=4, n_classes=2, random_state=42)
   X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
   
   # Create supervised binner that considers target variable
   sup_binner = SupervisedBinning(
       n_bins=4,
       task_type='classification',
       tree_params={'max_depth': 3, 'min_samples_leaf': 20}
   )
   
   # Fit using guidance data (target variable)
   X_train_binned = sup_binner.fit_transform(X_train, guidance_data=y_train)
   X_test_binned = sup_binner.transform(X_test)
   
   print(f"Supervised binning created bins optimized for target separation")
   print(f"Bin edges per feature: {[len(edges)-1 for edges in sup_binner.bin_edges_.values()]}")

๐Ÿ› ๏ธ **Scikit-learn Integration**
---------------------------------

.. code-block:: python

   from sklearn.pipeline import Pipeline
   from sklearn.ensemble import RandomForestClassifier
   from binlearn import EqualFrequencyBinning
   
   # Create ML pipeline with binning preprocessing
   pipeline = Pipeline([
       ('binning', EqualFrequencyBinning(n_bins=5)),
       ('classifier', RandomForestClassifier(random_state=42))
   ])
   
   # Train and evaluate
   pipeline.fit(X_train, y_train)
   accuracy = pipeline.score(X_test, y_test)
   print(f"Pipeline accuracy: {accuracy:.3f}")

๐Ÿ“š **Available Methods**
--------------------------

**Interval-based Methods:**

* ``EqualWidthBinning`` - Creates bins of equal width across the data range
* ``EqualFrequencyBinning`` - Creates bins with approximately equal number of samples  
* ``KMeansBinning`` - Uses K-means clustering to determine bin boundaries
* ``EqualWidthMinimumWeightBinning`` - Equal-width bins with weight constraints

**Flexible Methods:**

* ``ManualIntervalBinning`` - Specify custom interval boundaries
* ``ManualFlexibleBinning`` - Define mixed interval and singleton bins

**Categorical Methods:**

* ``SingletonBinning`` - Clean categorical encoding for discrete values ๐Ÿ†•

**Supervised Methods:**

* ``SupervisedBinning`` - Decision tree-based binning optimized for target variables (classification and regression)

โš™๏ธ **Requirements**
---------------------

**Python Versions**: 3.10, 3.11, 3.12, 3.13

**Core Dependencies**:
  * NumPy >= 1.21.0
  * SciPy >= 1.7.0
  * Scikit-learn >= 1.0.0
  * kmeans1d >= 0.3.0

**Optional Dependencies**:
  * Pandas >= 1.3.0 (for DataFrame support)
  * Polars >= 0.15.0 (for Polars DataFrame support)

**Development Dependencies**:
  * pytest >= 6.0 (for testing)
  * ruff >= 0.1.0 (for linting and formatting)
  * mypy >= 1.0.0 (for type checking)

๐Ÿงช **Development Setup**
--------------------------

.. code-block:: bash

   # Clone repository
   git clone https://github.com/TheDAALab/binlearn.git
   cd binlearn
   
   # Install in development mode with all dependencies
   pip install -e ".[tests,dev,pandas,polars]"
   
   # Run all tests
   pytest
   
   # Run code quality checks
   ruff check binlearn/
   mypy binlearn/ --ignore-missing-imports
   
   # Build documentation
   cd docs && make html

๐Ÿ† **Code Quality Standards**
-------------------------------

* โœ… **100% Test Coverage** - Comprehensive test suite with 841 tests
* โœ… **100% Type Safety** - Complete mypy compliance with modern type annotations
* โœ… **100% Code Quality** - Full ruff compliance with modern Python standards
* * โœ… **Comprehensive Documentation** - Detailed API docs and examples with SingletonBinning guide
* โœ… **Modern Python** - Uses latest Python features and best practices
* โœ… **Robust Error Handling** - Helpful error messages with actionable suggestions

๐Ÿค **Contributing**
---------------------

We welcome contributions! Here's how to get started:

1. Fork the repository on GitHub
2. Create a feature branch: ``git checkout -b feature/your-feature``
3. Make your changes and add tests
4. Ensure all quality checks pass:
   
   .. code-block:: bash
   
      pytest                                    # Run tests
      ruff check binlearn/                      # Check code quality  
      mypy binlearn/ --ignore-missing-imports   # Check types

5. Submit a pull request

**Areas for Contribution**:
  * ๐Ÿ› Bug reports and fixes
  * โœจ New binning algorithms
  * ๐Ÿ“š Documentation improvements
  * ๐Ÿงช Additional test cases
  * ๐ŸŽฏ Performance optimizations

๐Ÿ”— **Links**
--------------

* **GitHub Repository**: https://github.com/TheDAALab/binlearn
* **Issue Tracker**: https://github.com/TheDAALab/binlearn/issues
* **Documentation**: https://binlearn.readthedocs.io/

๐Ÿ“„ **License**
----------------

This project is licensed under the MIT License. See the `LICENSE <https://github.com/TheDAALab/binlearn/blob/main/LICENSE>`_ file for details.

---

**Developed by TheDAALab** 

*A modern, type-safe binning framework for Python data science workflows.*

.. image:: https://img.shields.io/badge/Powered%20by-Python-blue.svg
    :alt: Powered by Python
    :target: https://www.python.org/

.. image:: https://img.shields.io/badge/Built%20with-NumPy-orange.svg
    :alt: Built with NumPy
    :target: https://numpy.org/

.. image:: https://img.shields.io/badge/Compatible%20with-Pandas-green.svg
    :alt: Compatible with Pandas
    :target: https://pandas.pydata.org/

.. image:: https://img.shields.io/badge/Integrates%20with-Scikit--learn-red.svg
    :alt: Integrates with Scikit-learn
    :target: https://scikit-learn.org/

.. image:: https://img.shields.io/pypi/status/binlearn
    :alt: Development Status
    :target: https://pypi.org/project/binlearn/

.. image:: https://img.shields.io/github/contributors/TheDAALab/binlearn
    :alt: Contributors
    :target: https://github.com/TheDAALab/binlearn/graphs/contributors

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "binlearn",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "The DAALAB <gyorgy.kovacs@daalab.com>",
    "keywords": "binning, discretization, binlearn, data preprocessing, machine learning, data science, feature engineering",
    "author": null,
    "author_email": "The DAALAB <gyorgy.kovacs@daalab.com>",
    "download_url": "https://files.pythonhosted.org/packages/6e/ff/d8f9e06ee6cd471188442848a3f73a1904d91503857bb9c69b274a836634/binlearn-0.1.14.tar.gz",
    "platform": null,
    "description": "=============================================\nbinlearn - Binning and Discretization Library\n=============================================\n\n.. image:: https://img.shields.io/pypi/v/binlearn\n    :alt: PyPI Version\n    :target: https://pypi.org/project/binlearn/\n\n.. image:: https://img.shields.io/pypi/pyversions/binlearn\n    :alt: Python Versions\n    :target: https://pypi.org/project/binlearn/\n\n.. image:: https://img.shields.io/github/actions/workflow/status/TheDAALab/binlearn/build.yml?branch=main\n    :alt: Build Status\n    :target: https://github.com/TheDAALab/binlearn/actions/workflows/build.yml\n\n.. image:: https://img.shields.io/codecov/c/github/TheDAALab/binlearn\n    :alt: Code Coverage\n    :target: https://codecov.io/gh/TheDAALab/binlearn\n\n.. image:: https://img.shields.io/github/license/TheDAALab/binlearn\n    :alt: License\n    :target: https://github.com/TheDAALab/binlearn/blob/main/LICENSE\n\n.. image:: https://img.shields.io/readthedocs/binlearn\n    :alt: Documentation Status\n    :target: https://binlearn.readthedocs.io/\n\n.. image:: https://img.shields.io/pypi/dm/binlearn\n    :alt: Monthly Downloads\n    :target: https://pypi.org/project/binlearn/\n\n.. image:: https://img.shields.io/github/stars/TheDAALab/binlearn?style=social\n    :alt: GitHub Stars\n    :target: https://github.com/TheDAALab/binlearn\n\n.. image:: https://img.shields.io/badge/code%20style-ruff-000000.svg\n    :alt: Code Style - Ruff\n    :target: https://github.com/astral-sh/ruff\n\n.. image:: https://img.shields.io/badge/typing-mypy-blue\n    :alt: Type Checking - MyPy\n    :target: https://mypy.readthedocs.io/\n\nA modern, type-safe Python library for data binning and discretization with comprehensive error handling, sklearn compatibility, and DataFrame support. Features our new **SingletonBinning** method for cleaner categorical data encoding!\n\n\ud83d\ude80 **Key Features**\n---------------------\n\n\u2728 **Multiple Binning Methods**\n  * **EqualWidthBinning** - Equal-width intervals across data range\n  * **EqualFrequencyBinning** - Equal-frequency (quantile-based) bins  \n  * **KMeansBinning** - K-means clustering-based discretization\n  * **EqualWidthMinimumWeightBinning** - Weight-constrained equal-width binning\n  * **SupervisedBinning** - Decision tree-based supervised binning for classification and regression\n  * **ManualIntervalBinning** - Custom interval boundary specification\n  * **ManualFlexibleBinning** - Mixed interval and singleton bin definitions\n  * **SingletonBinning** - Clean categorical encoding for discrete values \ud83c\udd95\n\n\ud83d\udd27 **Framework Integration**\n  * **Pandas DataFrames** - Native support with column name preservation\n  * **Polars DataFrames** - High-performance columnar data support (optional)\n  * **NumPy Arrays** - Efficient numerical array processing\n  * **Scikit-learn Pipelines** - Full transformer compatibility\n\n\u26a1 **Modern Code Quality**\n  * **Type Safety** - 100% mypy compliance with comprehensive type annotations\n  * **Code Quality** - 100% ruff compliance with modern Python syntax\n  * **Error Handling** - Comprehensive validation with helpful error messages and suggestions\n  * **Test Coverage** - 100% code coverage with 841 comprehensive tests\n  * **Documentation** - Extensive examples and API documentation with SingletonBinning guide\n\n\ud83d\udce6 **Installation**\n---------------------\n\n.. code-block:: bash\n\n   pip install binlearn\n\n\ud83d\udd25 **Quick Start**\n--------------------\n\n.. code-block:: python\n\n   import numpy as np\n   import pandas as pd\n   from binlearn import EqualWidthBinning, SupervisedBinning, SingletonBinning\n   \n   # Create sample data\n   data = pd.DataFrame({\n       'age': np.random.normal(35, 10, 1000),\n       'income': np.random.lognormal(10, 0.5, 1000),\n       'score': np.random.uniform(0, 100, 1000)\n   })\n   \n   # Equal-width binning with DataFrame preservation\n   binner = EqualWidthBinning(n_bins=5, preserve_dataframe=True)\n   data_binned = binner.fit_transform(data)\n   \n   print(f\"Original shape: {data.shape}\")\n   print(f\"Binned shape: {data_binned.shape}\")\n   print(f\"Bin edges for age: {binner.bin_edges_['age']}\")\n   \n   # NEW: SingletonBinning for categorical features\n   categorical_data = pd.DataFrame({\n       'category': ['A', 'B', 'A', 'C', 'B', 'A'],\n       'rating': [1, 2, 1, 3, 2, 1]\n   })\n   \n   singleton_binner = SingletonBinning(preserve_dataframe=True)\n   categorical_binned = singleton_binner.fit_transform(categorical_data)\n   print(f\"Categorical binning: {categorical_binned.shape}\")\n\n\ud83c\udfaf **Supervised Binning Example**\n-----------------------------------\n\n.. code-block:: python\n\n   from binlearn import SupervisedBinning\n   from sklearn.datasets import make_classification\n   from sklearn.model_selection import train_test_split\n   \n   # Create classification dataset\n   X, y = make_classification(n_samples=1000, n_features=4, n_classes=2, random_state=42)\n   X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n   \n   # Create supervised binner that considers target variable\n   sup_binner = SupervisedBinning(\n       n_bins=4,\n       task_type='classification',\n       tree_params={'max_depth': 3, 'min_samples_leaf': 20}\n   )\n   \n   # Fit using guidance data (target variable)\n   X_train_binned = sup_binner.fit_transform(X_train, guidance_data=y_train)\n   X_test_binned = sup_binner.transform(X_test)\n   \n   print(f\"Supervised binning created bins optimized for target separation\")\n   print(f\"Bin edges per feature: {[len(edges)-1 for edges in sup_binner.bin_edges_.values()]}\")\n\n\ud83d\udee0\ufe0f **Scikit-learn Integration**\n---------------------------------\n\n.. code-block:: python\n\n   from sklearn.pipeline import Pipeline\n   from sklearn.ensemble import RandomForestClassifier\n   from binlearn import EqualFrequencyBinning\n   \n   # Create ML pipeline with binning preprocessing\n   pipeline = Pipeline([\n       ('binning', EqualFrequencyBinning(n_bins=5)),\n       ('classifier', RandomForestClassifier(random_state=42))\n   ])\n   \n   # Train and evaluate\n   pipeline.fit(X_train, y_train)\n   accuracy = pipeline.score(X_test, y_test)\n   print(f\"Pipeline accuracy: {accuracy:.3f}\")\n\n\ud83d\udcda **Available Methods**\n--------------------------\n\n**Interval-based Methods:**\n\n* ``EqualWidthBinning`` - Creates bins of equal width across the data range\n* ``EqualFrequencyBinning`` - Creates bins with approximately equal number of samples  \n* ``KMeansBinning`` - Uses K-means clustering to determine bin boundaries\n* ``EqualWidthMinimumWeightBinning`` - Equal-width bins with weight constraints\n\n**Flexible Methods:**\n\n* ``ManualIntervalBinning`` - Specify custom interval boundaries\n* ``ManualFlexibleBinning`` - Define mixed interval and singleton bins\n\n**Categorical Methods:**\n\n* ``SingletonBinning`` - Clean categorical encoding for discrete values \ud83c\udd95\n\n**Supervised Methods:**\n\n* ``SupervisedBinning`` - Decision tree-based binning optimized for target variables (classification and regression)\n\n\u2699\ufe0f **Requirements**\n---------------------\n\n**Python Versions**: 3.10, 3.11, 3.12, 3.13\n\n**Core Dependencies**:\n  * NumPy >= 1.21.0\n  * SciPy >= 1.7.0\n  * Scikit-learn >= 1.0.0\n  * kmeans1d >= 0.3.0\n\n**Optional Dependencies**:\n  * Pandas >= 1.3.0 (for DataFrame support)\n  * Polars >= 0.15.0 (for Polars DataFrame support)\n\n**Development Dependencies**:\n  * pytest >= 6.0 (for testing)\n  * ruff >= 0.1.0 (for linting and formatting)\n  * mypy >= 1.0.0 (for type checking)\n\n\ud83e\uddea **Development Setup**\n--------------------------\n\n.. code-block:: bash\n\n   # Clone repository\n   git clone https://github.com/TheDAALab/binlearn.git\n   cd binlearn\n   \n   # Install in development mode with all dependencies\n   pip install -e \".[tests,dev,pandas,polars]\"\n   \n   # Run all tests\n   pytest\n   \n   # Run code quality checks\n   ruff check binlearn/\n   mypy binlearn/ --ignore-missing-imports\n   \n   # Build documentation\n   cd docs && make html\n\n\ud83c\udfc6 **Code Quality Standards**\n-------------------------------\n\n* \u2705 **100% Test Coverage** - Comprehensive test suite with 841 tests\n* \u2705 **100% Type Safety** - Complete mypy compliance with modern type annotations\n* \u2705 **100% Code Quality** - Full ruff compliance with modern Python standards\n* * \u2705 **Comprehensive Documentation** - Detailed API docs and examples with SingletonBinning guide\n* \u2705 **Modern Python** - Uses latest Python features and best practices\n* \u2705 **Robust Error Handling** - Helpful error messages with actionable suggestions\n\n\ud83e\udd1d **Contributing**\n---------------------\n\nWe welcome contributions! Here's how to get started:\n\n1. Fork the repository on GitHub\n2. Create a feature branch: ``git checkout -b feature/your-feature``\n3. Make your changes and add tests\n4. Ensure all quality checks pass:\n   \n   .. code-block:: bash\n   \n      pytest                                    # Run tests\n      ruff check binlearn/                      # Check code quality  \n      mypy binlearn/ --ignore-missing-imports   # Check types\n\n5. Submit a pull request\n\n**Areas for Contribution**:\n  * \ud83d\udc1b Bug reports and fixes\n  * \u2728 New binning algorithms\n  * \ud83d\udcda Documentation improvements\n  * \ud83e\uddea Additional test cases\n  * \ud83c\udfaf Performance optimizations\n\n\ud83d\udd17 **Links**\n--------------\n\n* **GitHub Repository**: https://github.com/TheDAALab/binlearn\n* **Issue Tracker**: https://github.com/TheDAALab/binlearn/issues\n* **Documentation**: https://binlearn.readthedocs.io/\n\n\ud83d\udcc4 **License**\n----------------\n\nThis project is licensed under the MIT License. See the `LICENSE <https://github.com/TheDAALab/binlearn/blob/main/LICENSE>`_ file for details.\n\n---\n\n**Developed by TheDAALab** \n\n*A modern, type-safe binning framework for Python data science workflows.*\n\n.. image:: https://img.shields.io/badge/Powered%20by-Python-blue.svg\n    :alt: Powered by Python\n    :target: https://www.python.org/\n\n.. image:: https://img.shields.io/badge/Built%20with-NumPy-orange.svg\n    :alt: Built with NumPy\n    :target: https://numpy.org/\n\n.. image:: https://img.shields.io/badge/Compatible%20with-Pandas-green.svg\n    :alt: Compatible with Pandas\n    :target: https://pandas.pydata.org/\n\n.. image:: https://img.shields.io/badge/Integrates%20with-Scikit--learn-red.svg\n    :alt: Integrates with Scikit-learn\n    :target: https://scikit-learn.org/\n\n.. image:: https://img.shields.io/pypi/status/binlearn\n    :alt: Development Status\n    :target: https://pypi.org/project/binlearn/\n\n.. image:: https://img.shields.io/github/contributors/TheDAALab/binlearn\n    :alt: Contributors\n    :target: https://github.com/TheDAALab/binlearn/graphs/contributors\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A comprehensive binning and discretization library for machine learning",
    "version": "0.1.14",
    "project_urls": {
        "Bug Tracker": "https://github.com/TheDAALab/binlearn/issues",
        "Changelog": "https://github.com/TheDAALab/binlearn/blob/main/CHANGELOG.md",
        "Documentation": "https://binlearn.readthedocs.io/",
        "Homepage": "https://github.com/TheDAALab/binlearn",
        "Repository": "https://github.com/TheDAALab/binlearn.git"
    },
    "split_keywords": [
        "binning",
        " discretization",
        " binlearn",
        " data preprocessing",
        " machine learning",
        " data science",
        " feature engineering"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "016ff1eebc6ba034981f330e0c13a1bf33dee92ec22b773275a6aecd84185101",
                "md5": "c62b8f634898f90364399d6336aaf9ee",
                "sha256": "afa7d0456b62b03d62d9adb11ce683605765d2067203e1dd7494eb226b1dd529"
            },
            "downloads": -1,
            "filename": "binlearn-0.1.14-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c62b8f634898f90364399d6336aaf9ee",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 98557,
            "upload_time": "2025-08-04T13:46:20",
            "upload_time_iso_8601": "2025-08-04T13:46:20.381135Z",
            "url": "https://files.pythonhosted.org/packages/01/6f/f1eebc6ba034981f330e0c13a1bf33dee92ec22b773275a6aecd84185101/binlearn-0.1.14-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6effd8f9e06ee6cd471188442848a3f73a1904d91503857bb9c69b274a836634",
                "md5": "49976e8b46a56e446d88cbdc38f97174",
                "sha256": "3bc7d016031ac17926636ccbf55a871150de6fd61582b346917575bfddcf45da"
            },
            "downloads": -1,
            "filename": "binlearn-0.1.14.tar.gz",
            "has_sig": false,
            "md5_digest": "49976e8b46a56e446d88cbdc38f97174",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 197638,
            "upload_time": "2025-08-04T13:46:22",
            "upload_time_iso_8601": "2025-08-04T13:46:22.034002Z",
            "url": "https://files.pythonhosted.org/packages/6e/ff/d8f9e06ee6cd471188442848a3f73a1904d91503857bb9c69b274a836634/binlearn-0.1.14.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-04 13:46:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "TheDAALab",
    "github_project": "binlearn",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "scipy",
            "specs": []
        },
        {
            "name": "kmeans1d",
            "specs": []
        },
        {
            "name": "scikit-learn",
            "specs": []
        }
    ],
    "lcname": "binlearn"
}
        
Elapsed time: 2.19681s