pyxai


Namepyxai JSON
Version 1.0.12 PyPI version JSON
download
home_page
SummaryExplaining Machine Learning Classifiers in Python
upload_time2024-02-02 08:49:41
maintainerGilles Audemard, Nicolas Szczepanski
docs_urlNone
authorGilles Audemard, Steve Bellart, Louenas Bounia, Jean-Marie Lagniez, Pierre Marquis, Nicolas Szczepanski:
requires_python>=3.6
licenseMIT
keywords xai ai ml explainable learning
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
<p align="center">
  <div style="text-align:center">
    <img src="https://drive.google.com/uc?export=download&id=1R8PuTqnwQwZracP39JYmz91KnINiwt6e" />
  </div>
</p>

# PyXAI - Python eXplainable AI

- Documentation: [http://www.cril.univ-artois.fr/pyxai/](http://www.cril.univ-artois.fr/pyxai/)
- Git: [https://github.com/crillab/pyxai](https://github.com/crillab/pyxai)
- Installation: [http://www.cril.univ-artois.fr/pyxai/documentation/installation/](http://www.cril.univ-artois.fr/pyxai/documentation/installation/)

<h3>What is PyXAI ?</h3>
<p align="justify">
<b>PyXAI (Python eXplainable AI)</b> is a <a href="https://www.python.org/">Python</a> library (version 3.6 or later) allowing to bring explanations of various forms suited to <b>(regression or classification) tree-based ML models</b> (Decision Trees, Random Forests, Boosted Trees, ...). In contrast to many approaches to XAI (SHAP, Lime, ...), PyXAI algorithms are <b>model-specific</b>. Furthermore, PyXAI algorithms <b>guarantee certain properties</b> about the explanations generated, that can be of several types:
</p>
<ul>
  <li><b>Abductive explanations</b> for an instance $X$ are intended to explain why $X$ has been classified in the way it has been classified by the ML model (thus, addressing the “Why?” question). For the regression tasks, abductive explanations for $X$ are intended to explain why the regression value on $X$ is in a given interval.</li>
  <li><b>Contrastive explanations</b> for $X$ is to explain why $X$ has not been classified by the ML model as the user expected it (thus, addressing the “Why not?” question).</li>
</ul>

> <b> New features in version 1.0.0:</b>
> <ul>
>   <li>Regression for Boosted Trees with XGBoost or LightGBM</li>
>   <li>Adding Theories (knowledge about the dataset)</li>
>   <li>Easier model import (automatic detection of model types)</li>
>   <li>PyXAI's Graphical User Interface (GUI): displaying, loading and saving explanations. </li>
>   <li>Supports multiple image formats for imaging datasets</li>
>   <li>Supports data pre-processing (tool for preparing and cleansing a dataset)</li>
>   <li>Unit Tests with the unittest module</li>
> </ul> 

<figure>
  <img src="http://www.cril.univ-artois.fr/pyxai/assets/figures/pyxai2.png" alt="pyxai" />
  <figcaption>PyXAI's main steps for producing explanations.</figcaption>
</figure>

<figure>
  <img src="http://www.cril.univ-artois.fr/pyxai/assets/figures/GUI.png" alt="pyxai" />
  <img src="http://www.cril.univ-artois.fr/pyxai/assets/figures/GUI2.png" alt="pyxai" />
  <figcaption>PyXAI's Graphical User Interface (GUI) for visualizing explanations.</figcaption>
</figure>

<h3>What is the difference between PyXAI and other methods ?</h3>
<p align="justify">

The most popular approaches (SHAP, Lime, ...) to XAI <b>are model-agnostic, but do not offer any guarantees</b> of rigor. A number of <a href="https://arxiv.org/pdf/2307.07514.pdf">works</a> have highlighted several misconceptions about informal approaches to XAI (see the <a href="https://www.cril.univ-artois.fr/pyxai/papers/">related papers</a>). Contrastingly, <b>PyXAI algorithms rely on logic-based, model-precise</b> approaches for computing explanations. Although formal explainability has a number of drawbacks, particularly in terms of the computational complexity of logical reasoning needed to derive explanations, <b>steady progress has been made since its inception</b>. 
</p>


<h3>Which models can be explained with PyXAI ?</h3>
<p align="justify">
Models are the resulting objects of an experimental ML protocol through a chosen <b>cross-validation method</b> (for example, the result of a training phase on a classifier). Importantly, in PyXAI, there is a complete separation between the learning phase and the explaining phase: <b>you produce/load/save models, and you find explanations for some instances given such models</b>. Currently, with PyXAI, you can use methods to find explanations suited to different <b>ML models for classification or regression tasks</b>:
</p>
<ul>
  <li><a href="https://en.wikipedia.org/wiki/Decision_tree_learning">Decision Tree</a> (DT)</li> 
  <li><a href="https://en.wikipedia.org/wiki/Random_forest">Random Forest</a> (RF)</li>
  <li><a href="https://en.wikipedia.org/wiki/Gradient_boosting">Boosted Tree (Gradient boosting)</a> (BT)</li>
</ul> 
<p align="justify">
In addition to finding explanations, PyXAI also provides methods that perform operations (production, saving, loading) on models and instances. Currently, these methods are available for three <b>ML libraries</b>:
</p>
<ul>
  <li><a href="https://scikit-learn.org/stable/">Scikit-learn</a>: a software machine learning library</li> 
  <li><a href="https://xgboost.readthedocs.io/en/stable/">XGBoost</a>: an optimized distributed gradient boosting library</li>
  <li><a href="https://lightgbm.readthedocs.io/en/stable/">LightGBM</a>: a gradient boosting framework that uses tree based learning algorithms</li>
</ul> 
<p align="justify">
It is possible to also leverage PyXAI to find explanations suited to models learned using other libraries.
</p>

<h3>What does this website offer ?</h3>
<p align="justify">
In this website, you can find all what you need to know about PyXAI, with more than 10 <a href="https://jupyter.org/">Jupyter</a> Notebooks, including:
</p>
<ul>
 <li>The <a href="https://www.cril.univ-artois.fr/pyxai/documentation/installation/">installation guide</a> and the <a href="https://www.cril.univ-artois.fr/pyxai/documentation/quickstart/">quick start</a></li>
 
  <li>About obtaining models:</li>
  <ul>
  <li>How to <b>prepare and clean a dataset</b> using the PyXAI <a href="https://www.cril.univ-artois.fr/pyxai/documentation/preprocessor/">preprocessor</a> object?</li>
  <li>How to <b>import a model</b>, whatever its format? <a href="https://www.cril.univ-artois.fr/pyxai/documentation/importing/"> Importing Models</a> </li>
  <li>How to <b>generate a model using a ML cross-validation method</b>? <a href="https://www.cril.univ-artois.fr/pyxai/documentation/learning/generating/">Generating Models</a> </li>
  
  <li>How to <b>build a model from trees directly built by the user</b>? <a href="https://www.cril.univ-artois.fr/pyxai/documentation/learning/builder/">Building Models</a></li>
  <li>How to <b>save and load models</b> with the PyXAI learning module? <a href="https://www.cril.univ-artois.fr/pyxai/documentation/saving/">Saving/Loading Models</a></li>
  </ul>

<li>About obtaining explanations:</li>
  <ul>
  <li>The <b>concepts of the PyXAI explainer module</b>: <a href="https://www.cril.univ-artois.fr/pyxai/documentation/explainer/concepts/">Concepts</a> </li>
  <li>How to use a <b>time limit</b>? <a href="https://www.cril.univ-artois.fr/pyxai/documentation/explainer/time_limit/">Time Limit</a> </li>
  
  <li>The PyXAI library offers the possibility to process user preferences (<b>prefer some explanations to others or exclude some features</b>): <a href="https://www.cril.univ-artois.fr/pyxai/documentation/explainer/preferences/">Preferences</a> </li>

  <li><b>Theories are knowledge about the dataset.</b> PyXAI offers the possibility of encoding a theory when calculating explanations in order to avoid calculating impossible explanations: <a href="https://www.cril.univ-artois.fr/pyxai/documentation/explainer/theories/">Theories</a> </li>

  <li>How to <b>compute explanations for classification tasks</b>? <a href="https://www.cril.univ-artois.fr/pyxai/documentation/classification/">Explaining Classification</a> </li>
  
  <li>How to <b>compute explanations for regression tasks</b>? <a href="https://www.cril.univ-artois.fr/pyxai/documentation/regression/">Explaining Regression</a> </li>
  
  </ul>

 <li>How to use the <b>PyXAI's Graphical User Interface (GUI)</b> for <a href="https://www.cril.univ-artois.fr/pyxai/documentation/visualization/">visualizing explanations</a>?</li>
 
 
</ul>

<h3>How to use PyXAI ?</h3>
<p align="justify">
Here is an example (it comes from the <a href="https://www.cril.univ-artois.fr/pyxai/documentation/quickstart">Quick Start page</a>):
</p>
<h4 class="example">PyXAI in action</h4>

```python
from pyxai import Learning, Explainer

learner = Learning.Scikitlearn("tests/iris.csv", learner_type=Learning.CLASSIFICATION)
model = learner.evaluate(method=Learning.HOLD_OUT, output=Learning.DT)
instance, prediction = learner.get_instances(model, n=1, correct=True, predictions=[0])

explainer = Explainer.initialize(model, instance)
print("instance:", instance)
print("binary representation:", explainer.binary_representation)

sufficient_reason = explainer.sufficient_reason(n=1)
print("sufficient_reason:", sufficient_reason)
print("to_features:", explainer.to_features(sufficient_reason))

instance, prediction = learner.get_instances(model, n=1, correct=False)
explainer.set_instance(instance)
contrastive_reason = explainer.contrastive_reason()
print("contrastive reason", contrastive_reason)
print("to_features:", explainer.to_features(contrastive_reason, contrastive=True))

explainer.open_GUI()
```

<img src="https://www.cril.univ-artois.fr/pyxai/assets/figures/pyxaiGUI.png" alt="pyxai" />

<p>As illustrated by this example, with a few lines of code, PyXAI allows you to train a model, extract instances, and get explanations about the classifications made.</p>

<br /><br />
<p align="center">
    <a href="http://www.cril.univ-artois.fr"><img width="140px" src="https://www.cril.univ-artois.fr/pyxai/assets/figures/cril.png" /></a>
    <a href="https://www.cnrs.fr/"><img width="80px" style="width: 80px;" src="https://www.cril.univ-artois.fr/pyxai/assets/figures/cnrs.png" /></a>
    <a href="https://www.confiance.ai/"><img width="140px" style="width: 120px;" src="https://www.cril.univ-artois.fr/pyxai/assets/figures/confianceai.jpg" /></a>
    <a href="https://www.hautsdefrance.fr/"><img width="120px" style="width: 80px;" src="https://www.cril.univ-artois.fr/pyxai/assets/figures/logo_HDF.svg" /></a>
    <a href="http://univ-artois.fr"><img width="120px" src="https://www.cril.univ-artois.fr/pyxai/assets/figures/artois.png" /></a>
</p>


            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "pyxai",
    "maintainer": "Gilles Audemard, Nicolas Szczepanski",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "audemard@cril.fr, szczepanski@cril.fr",
    "keywords": "XAI AI ML explainable learning",
    "author": "Gilles Audemard, Steve Bellart, Louenas Bounia, Jean-Marie Lagniez, Pierre Marquis, Nicolas Szczepanski:",
    "author_email": "audemard@cril.fr, bellart@cril.fr, bounia@cril.fr, lagniez@cril.fr, marquis@cril.fr, szczepanski@cril.fr",
    "download_url": "",
    "platform": "LINUX",
    "description": "\n<p align=\"center\">\n  <div style=\"text-align:center\">\n    <img src=\"https://drive.google.com/uc?export=download&id=1R8PuTqnwQwZracP39JYmz91KnINiwt6e\" />\n  </div>\n</p>\n\n# PyXAI - Python eXplainable AI\n\n- Documentation: [http://www.cril.univ-artois.fr/pyxai/](http://www.cril.univ-artois.fr/pyxai/)\n- Git: [https://github.com/crillab/pyxai](https://github.com/crillab/pyxai)\n- Installation: [http://www.cril.univ-artois.fr/pyxai/documentation/installation/](http://www.cril.univ-artois.fr/pyxai/documentation/installation/)\n\n<h3>What is PyXAI ?</h3>\n<p align=\"justify\">\n<b>PyXAI (Python eXplainable AI)</b> is a <a href=\"https://www.python.org/\">Python</a> library (version 3.6 or later) allowing to bring explanations of various forms suited to <b>(regression or classification) tree-based ML models</b> (Decision Trees, Random Forests, Boosted Trees, ...). In contrast to many approaches to XAI (SHAP, Lime, ...), PyXAI algorithms are <b>model-specific</b>. Furthermore, PyXAI algorithms <b>guarantee certain properties</b> about the explanations generated, that can be of several types:\n</p>\n<ul>\n  <li><b>Abductive explanations</b> for an instance $X$ are intended to explain why $X$ has been classified in the way it has been classified by the ML model (thus, addressing the \u201cWhy?\u201d question). For the regression tasks, abductive explanations for $X$ are intended to explain why the regression value on $X$ is in a given interval.</li>\n  <li><b>Contrastive explanations</b> for $X$ is to explain why $X$ has not been classified by the ML model as the user expected it (thus, addressing the \u201cWhy not?\u201d question).</li>\n</ul>\n\n> <b> New features in version 1.0.0:</b>\n> <ul>\n>   <li>Regression for Boosted Trees with XGBoost or LightGBM</li>\n>   <li>Adding Theories (knowledge about the dataset)</li>\n>   <li>Easier model import (automatic detection of model types)</li>\n>   <li>PyXAI's Graphical User Interface (GUI): displaying, loading and saving explanations. </li>\n>   <li>Supports multiple image formats for imaging datasets</li>\n>   <li>Supports data pre-processing (tool for preparing and cleansing a dataset)</li>\n>   <li>Unit Tests with the unittest module</li>\n> </ul> \n\n<figure>\n  <img src=\"http://www.cril.univ-artois.fr/pyxai/assets/figures/pyxai2.png\" alt=\"pyxai\" />\n  <figcaption>PyXAI's main steps for producing explanations.</figcaption>\n</figure>\n\n<figure>\n  <img src=\"http://www.cril.univ-artois.fr/pyxai/assets/figures/GUI.png\" alt=\"pyxai\" />\n  <img src=\"http://www.cril.univ-artois.fr/pyxai/assets/figures/GUI2.png\" alt=\"pyxai\" />\n  <figcaption>PyXAI's Graphical User Interface (GUI) for visualizing explanations.</figcaption>\n</figure>\n\n<h3>What is the difference between PyXAI and other methods ?</h3>\n<p align=\"justify\">\n\nThe most popular approaches (SHAP, Lime, ...) to XAI <b>are model-agnostic, but do not offer any guarantees</b> of rigor. A number of <a href=\"https://arxiv.org/pdf/2307.07514.pdf\">works</a> have highlighted several misconceptions about informal approaches to XAI (see the <a href=\"https://www.cril.univ-artois.fr/pyxai/papers/\">related papers</a>). Contrastingly, <b>PyXAI algorithms rely on logic-based, model-precise</b> approaches for computing explanations. Although formal explainability has a number of drawbacks, particularly in terms of the computational complexity of logical reasoning needed to derive explanations, <b>steady progress has been made since its inception</b>. \n</p>\n\n\n<h3>Which models can be explained with PyXAI ?</h3>\n<p align=\"justify\">\nModels are the resulting objects of an experimental ML protocol through a chosen <b>cross-validation method</b> (for example, the result of a training phase on a classifier). Importantly, in PyXAI, there is a complete separation between the learning phase and the explaining phase: <b>you produce/load/save models, and you find explanations for some instances given such models</b>. Currently, with PyXAI, you can use methods to find explanations suited to different <b>ML models for classification or regression tasks</b>:\n</p>\n<ul>\n  <li><a href=\"https://en.wikipedia.org/wiki/Decision_tree_learning\">Decision Tree</a> (DT)</li> \n  <li><a href=\"https://en.wikipedia.org/wiki/Random_forest\">Random Forest</a> (RF)</li>\n  <li><a href=\"https://en.wikipedia.org/wiki/Gradient_boosting\">Boosted Tree (Gradient boosting)</a> (BT)</li>\n</ul> \n<p align=\"justify\">\nIn addition to finding explanations, PyXAI also provides methods that perform operations (production, saving, loading) on models and instances. Currently, these methods are available for three <b>ML libraries</b>:\n</p>\n<ul>\n  <li><a href=\"https://scikit-learn.org/stable/\">Scikit-learn</a>: a software machine learning library</li> \n  <li><a href=\"https://xgboost.readthedocs.io/en/stable/\">XGBoost</a>: an optimized distributed gradient boosting library</li>\n  <li><a href=\"https://lightgbm.readthedocs.io/en/stable/\">LightGBM</a>: a gradient boosting framework that uses tree based learning algorithms</li>\n</ul> \n<p align=\"justify\">\nIt is possible to also leverage PyXAI to find explanations suited to models learned using other libraries.\n</p>\n\n<h3>What does this website offer ?</h3>\n<p align=\"justify\">\nIn this website, you can find all what you need to know about PyXAI, with more than 10 <a href=\"https://jupyter.org/\">Jupyter</a> Notebooks, including:\n</p>\n<ul>\n <li>The <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/installation/\">installation guide</a> and the <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/quickstart/\">quick start</a></li>\n \n  <li>About obtaining models:</li>\n  <ul>\n  <li>How to <b>prepare and clean a dataset</b> using the PyXAI <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/preprocessor/\">preprocessor</a> object?</li>\n  <li>How to <b>import a model</b>, whatever its format? <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/importing/\"> Importing Models</a> </li>\n  <li>How to <b>generate a model using a ML cross-validation method</b>? <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/learning/generating/\">Generating Models</a> </li>\n  \n  <li>How to <b>build a model from trees directly built by the user</b>? <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/learning/builder/\">Building Models</a></li>\n  <li>How to <b>save and load models</b> with the PyXAI learning module? <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/saving/\">Saving/Loading Models</a></li>\n  </ul>\n\n<li>About obtaining explanations:</li>\n  <ul>\n  <li>The <b>concepts of the PyXAI explainer module</b>: <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/explainer/concepts/\">Concepts</a> </li>\n  <li>How to use a <b>time limit</b>? <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/explainer/time_limit/\">Time Limit</a> </li>\n  \n  <li>The PyXAI library offers the possibility to process user preferences (<b>prefer some explanations to others or exclude some features</b>): <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/explainer/preferences/\">Preferences</a> </li>\n\n  <li><b>Theories are knowledge about the dataset.</b> PyXAI offers the possibility of encoding a theory when calculating explanations in order to avoid calculating impossible explanations: <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/explainer/theories/\">Theories</a> </li>\n\n  <li>How to <b>compute explanations for classification tasks</b>? <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/classification/\">Explaining Classification</a> </li>\n  \n  <li>How to <b>compute explanations for regression tasks</b>? <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/regression/\">Explaining Regression</a> </li>\n  \n  </ul>\n\n <li>How to use the <b>PyXAI's Graphical User Interface (GUI)</b> for <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/visualization/\">visualizing explanations</a>?</li>\n \n \n</ul>\n\n<h3>How to use PyXAI ?</h3>\n<p align=\"justify\">\nHere is an example (it comes from the <a href=\"https://www.cril.univ-artois.fr/pyxai/documentation/quickstart\">Quick Start page</a>):\n</p>\n<h4 class=\"example\">PyXAI in action</h4>\n\n```python\nfrom pyxai import Learning, Explainer\n\nlearner = Learning.Scikitlearn(\"tests/iris.csv\", learner_type=Learning.CLASSIFICATION)\nmodel = learner.evaluate(method=Learning.HOLD_OUT, output=Learning.DT)\ninstance, prediction = learner.get_instances(model, n=1, correct=True, predictions=[0])\n\nexplainer = Explainer.initialize(model, instance)\nprint(\"instance:\", instance)\nprint(\"binary representation:\", explainer.binary_representation)\n\nsufficient_reason = explainer.sufficient_reason(n=1)\nprint(\"sufficient_reason:\", sufficient_reason)\nprint(\"to_features:\", explainer.to_features(sufficient_reason))\n\ninstance, prediction = learner.get_instances(model, n=1, correct=False)\nexplainer.set_instance(instance)\ncontrastive_reason = explainer.contrastive_reason()\nprint(\"contrastive reason\", contrastive_reason)\nprint(\"to_features:\", explainer.to_features(contrastive_reason, contrastive=True))\n\nexplainer.open_GUI()\n```\n\n<img src=\"https://www.cril.univ-artois.fr/pyxai/assets/figures/pyxaiGUI.png\" alt=\"pyxai\" />\n\n<p>As illustrated by this example, with a few lines of code, PyXAI allows you to train a model, extract instances, and get explanations about the classifications made.</p>\n\n<br /><br />\n<p align=\"center\">\n    <a href=\"http://www.cril.univ-artois.fr\"><img width=\"140px\" src=\"https://www.cril.univ-artois.fr/pyxai/assets/figures/cril.png\" /></a>\n    <a href=\"https://www.cnrs.fr/\"><img width=\"80px\" style=\"width: 80px;\" src=\"https://www.cril.univ-artois.fr/pyxai/assets/figures/cnrs.png\" /></a>\n    <a href=\"https://www.confiance.ai/\"><img width=\"140px\" style=\"width: 120px;\" src=\"https://www.cril.univ-artois.fr/pyxai/assets/figures/confianceai.jpg\" /></a>\n    <a href=\"https://www.hautsdefrance.fr/\"><img width=\"120px\" style=\"width: 80px;\" src=\"https://www.cril.univ-artois.fr/pyxai/assets/figures/logo_HDF.svg\" /></a>\n    <a href=\"http://univ-artois.fr\"><img width=\"120px\" src=\"https://www.cril.univ-artois.fr/pyxai/assets/figures/artois.png\" /></a>\n</p>\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Explaining Machine Learning Classifiers in Python",
    "version": "1.0.12",
    "project_urls": {
        "Documentation": "http://www.cril.univ-artois.fr/pyxai/",
        "Git": "https://github.com/crillab/pyxai",
        "Installation": "http://www.cril.univ-artois.fr/pyxai/documentation/installation/"
    },
    "split_keywords": [
        "xai",
        "ai",
        "ml",
        "explainable",
        "learning"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f977326315cb3a1bc57bcaf175bf5117c1975df367b058edd084b74f72875693",
                "md5": "a56498c694d5592662bbdaf059234a99",
                "sha256": "38480d7093d3b0acfb1adc9ba909fb256f8513ed3b13fb2e10e72e2f2934e238"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "a56498c694d5592662bbdaf059234a99",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6",
            "size": 11914286,
            "upload_time": "2024-02-02T08:49:41",
            "upload_time_iso_8601": "2024-02-02T08:49:41.710673Z",
            "url": "https://files.pythonhosted.org/packages/f9/77/326315cb3a1bc57bcaf175bf5117c1975df367b058edd084b74f72875693/pyxai-1.0.12-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6b2d1749d933902da308ad6c628faa6da9ed9bcb796abaa682864e20b0b0a92b",
                "md5": "a334a2baf5a928c4fdf6d4201d45392b",
                "sha256": "4c3f39c363118985eb77a911c15e44402a65c857a5f7fe78e87d42e22eb11324"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a334a2baf5a928c4fdf6d4201d45392b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6",
            "size": 11924259,
            "upload_time": "2024-02-02T08:49:45",
            "upload_time_iso_8601": "2024-02-02T08:49:45.182959Z",
            "url": "https://files.pythonhosted.org/packages/6b/2d/1749d933902da308ad6c628faa6da9ed9bcb796abaa682864e20b0b0a92b/pyxai-1.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "874d2557ab45ad481cf383809f1e1706b92b0c72559b1186817ad95141e28e16",
                "md5": "dc2b6c3a25711f60da580d55921ce456",
                "sha256": "233ba0684867f6afb4b1b5c7b1296363bb5ec80a1738209e60af363b2269ef24"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp310-cp310-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "dc2b6c3a25711f60da580d55921ce456",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6",
            "size": 12483608,
            "upload_time": "2024-02-02T08:49:48",
            "upload_time_iso_8601": "2024-02-02T08:49:48.362930Z",
            "url": "https://files.pythonhosted.org/packages/87/4d/2557ab45ad481cf383809f1e1706b92b0c72559b1186817ad95141e28e16/pyxai-1.0.12-cp310-cp310-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "df0af197fd301be33fd0088e43056654410b1173b3f442477a27cc9b711817f6",
                "md5": "d425b0851ddbf3313ecb4c9749559fa3",
                "sha256": "a36d75aa5bce1121a3e03e3930f01e706e66ad9edc89ee67c6e863a08e103c95"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d425b0851ddbf3313ecb4c9749559fa3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.6",
            "size": 12453233,
            "upload_time": "2024-02-02T08:49:51",
            "upload_time_iso_8601": "2024-02-02T08:49:51.448054Z",
            "url": "https://files.pythonhosted.org/packages/df/0a/f197fd301be33fd0088e43056654410b1173b3f442477a27cc9b711817f6/pyxai-1.0.12-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6798cce7bc8bf5c7e09669317fd25399f417ad743ec2a88dc856cea96e0a6873",
                "md5": "abfefd4e1e524b90af26eeba048785e8",
                "sha256": "18414bb2d97c530052b0e620560aa03b91cb1688c24d4a2481c7d182d855dba7"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "abfefd4e1e524b90af26eeba048785e8",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6",
            "size": 11914602,
            "upload_time": "2024-02-02T08:49:54",
            "upload_time_iso_8601": "2024-02-02T08:49:54.504399Z",
            "url": "https://files.pythonhosted.org/packages/67/98/cce7bc8bf5c7e09669317fd25399f417ad743ec2a88dc856cea96e0a6873/pyxai-1.0.12-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "528078f1b6ceaa427fcef73a9b8775ddceae97b5def176050d6f581d63cffb89",
                "md5": "0413ab724a65d040eb42fd0600bd1e9d",
                "sha256": "1560a970ef0405d7258cbb02ebafc2464c38dc3060afa1696434731ab0399d1b"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0413ab724a65d040eb42fd0600bd1e9d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6",
            "size": 11924696,
            "upload_time": "2024-02-02T08:49:58",
            "upload_time_iso_8601": "2024-02-02T08:49:58.383159Z",
            "url": "https://files.pythonhosted.org/packages/52/80/78f1b6ceaa427fcef73a9b8775ddceae97b5def176050d6f581d63cffb89/pyxai-1.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d09ca72b79d957b4b96768f6a9472821cc41ecca89efe484815ba91b1d2280f7",
                "md5": "1fc8d40933f9baf0bcf75506e22b9a8c",
                "sha256": "94fb811cb5300624e6ef54ae312a293495fd63332e829acd94c285e7d3d5fc84"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp311-cp311-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "1fc8d40933f9baf0bcf75506e22b9a8c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6",
            "size": 12486253,
            "upload_time": "2024-02-02T08:50:02",
            "upload_time_iso_8601": "2024-02-02T08:50:02.394937Z",
            "url": "https://files.pythonhosted.org/packages/d0/9c/a72b79d957b4b96768f6a9472821cc41ecca89efe484815ba91b1d2280f7/pyxai-1.0.12-cp311-cp311-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9692f4fe6d18640ef28a579a303212aeaa1d85c7d155214f25f86b9ad070d2fe",
                "md5": "9018e75dba02f6ed908b80796480b2a9",
                "sha256": "59784e8926b325bffba6d9fd50dec4b42929a626c267b95a20d5cbf1dc55f6a3"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9018e75dba02f6ed908b80796480b2a9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6",
            "size": 12456271,
            "upload_time": "2024-02-02T08:50:06",
            "upload_time_iso_8601": "2024-02-02T08:50:06.213279Z",
            "url": "https://files.pythonhosted.org/packages/96/92/f4fe6d18640ef28a579a303212aeaa1d85c7d155214f25f86b9ad070d2fe/pyxai-1.0.12-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cb526af44692de1ea98fc52bca477b4dbe75a50aac7d40ea0901f868bbbd75ee",
                "md5": "c2ba5cd16609916ae4ad6c3b63f1773a",
                "sha256": "78a4076a097ac317d9502c3bb81c4ac716600b794b1818e6ae18526f3c1dc7f7"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "c2ba5cd16609916ae4ad6c3b63f1773a",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6",
            "size": 11915045,
            "upload_time": "2024-02-02T08:50:09",
            "upload_time_iso_8601": "2024-02-02T08:50:09.549858Z",
            "url": "https://files.pythonhosted.org/packages/cb/52/6af44692de1ea98fc52bca477b4dbe75a50aac7d40ea0901f868bbbd75ee/pyxai-1.0.12-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d26f7acfe547836591b8b0bee31fd2c213088691d7b6cc954fe6fb43ab05f331",
                "md5": "f3e2f0aca3cd4e259cb2f575dc702feb",
                "sha256": "1ac26e1e00338aa196e7269e72e366af629c29c7fe2eefa0bd80b723a9b4d3b9"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f3e2f0aca3cd4e259cb2f575dc702feb",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6",
            "size": 11925061,
            "upload_time": "2024-02-02T08:50:13",
            "upload_time_iso_8601": "2024-02-02T08:50:13.348643Z",
            "url": "https://files.pythonhosted.org/packages/d2/6f/7acfe547836591b8b0bee31fd2c213088691d7b6cc954fe6fb43ab05f331/pyxai-1.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a895286d273caaa82a8c4c45e82c48ee88d8564f987bde56bd05f0c960650389",
                "md5": "18eaed81dfcd72a962193a997c1b08e2",
                "sha256": "53785aeaa40f5b748c93f593b7ea4d3d5c94c2ddf18786375618c308431e40ad"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp312-cp312-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "18eaed81dfcd72a962193a997c1b08e2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6",
            "size": 12484974,
            "upload_time": "2024-02-02T08:50:17",
            "upload_time_iso_8601": "2024-02-02T08:50:17.512015Z",
            "url": "https://files.pythonhosted.org/packages/a8/95/286d273caaa82a8c4c45e82c48ee88d8564f987bde56bd05f0c960650389/pyxai-1.0.12-cp312-cp312-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d3bc39aaf5431877b11747932ae5b0d0afd2f541b143f4ac328233d27a0b1543",
                "md5": "70f0191e1a7e110e9948386aa6f178e6",
                "sha256": "b6644562a0864c0ba86540f0c286adf97528b7df31d43a272022cac205133445"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp312-cp312-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "70f0191e1a7e110e9948386aa6f178e6",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6",
            "size": 12455666,
            "upload_time": "2024-02-02T08:50:20",
            "upload_time_iso_8601": "2024-02-02T08:50:20.515264Z",
            "url": "https://files.pythonhosted.org/packages/d3/bc/39aaf5431877b11747932ae5b0d0afd2f541b143f4ac328233d27a0b1543/pyxai-1.0.12-cp312-cp312-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c1502b7b8769afdc745423292929f61cde5e2b812baef5b3447a76db8f7f0734",
                "md5": "3d99828249985d3ee659e0202fdb906b",
                "sha256": "9f3971fdfd425fe5093d519d6532d0a95f0ec4a184a66f0806fc729966ed3334"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "3d99828249985d3ee659e0202fdb906b",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.6",
            "size": 11909807,
            "upload_time": "2024-02-02T08:50:24",
            "upload_time_iso_8601": "2024-02-02T08:50:24.096078Z",
            "url": "https://files.pythonhosted.org/packages/c1/50/2b7b8769afdc745423292929f61cde5e2b812baef5b3447a76db8f7f0734/pyxai-1.0.12-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2bee8091b407a964f39daefec5b05c5958684ffa6c1a01a830c596b5e7f0ddd9",
                "md5": "9e734205b2fd727ad7af95e6aace68a8",
                "sha256": "a558ccbeb1c4856809afdee1f617835e61a5452ba883ad1bd276d020271115db"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9e734205b2fd727ad7af95e6aace68a8",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.6",
            "size": 11920321,
            "upload_time": "2024-02-02T08:50:27",
            "upload_time_iso_8601": "2024-02-02T08:50:27.210211Z",
            "url": "https://files.pythonhosted.org/packages/2b/ee/8091b407a964f39daefec5b05c5958684ffa6c1a01a830c596b5e7f0ddd9/pyxai-1.0.12-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "559ca6844afd39a4d24fa34d501b68a7c81507cd3dd1a7d6b0f6aea840101f48",
                "md5": "e7f2e2fc8faafd0400deeac4a658756d",
                "sha256": "e22eed955c0d1f81a5451762fd1a68edb7de23029a49e62d991c2fc26fde5812"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp36-cp36m-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "e7f2e2fc8faafd0400deeac4a658756d",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.6",
            "size": 12479745,
            "upload_time": "2024-02-02T08:50:30",
            "upload_time_iso_8601": "2024-02-02T08:50:30.071473Z",
            "url": "https://files.pythonhosted.org/packages/55/9c/a6844afd39a4d24fa34d501b68a7c81507cd3dd1a7d6b0f6aea840101f48/pyxai-1.0.12-cp36-cp36m-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e3bc7b4d784f81f403e92c4e6fb5c1f4a5e7cf74a93c93d508f758d13dae7cc7",
                "md5": "d663a8132d63c08a39ced3d146921a7e",
                "sha256": "a47fda96146c6dfa95421fdb901828bd7abbfaf817d92117717d7c9814e69dbd"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp36-cp36m-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d663a8132d63c08a39ced3d146921a7e",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.6",
            "size": 12448007,
            "upload_time": "2024-02-02T08:50:33",
            "upload_time_iso_8601": "2024-02-02T08:50:33.328815Z",
            "url": "https://files.pythonhosted.org/packages/e3/bc/7b4d784f81f403e92c4e6fb5c1f4a5e7cf74a93c93d508f758d13dae7cc7/pyxai-1.0.12-cp36-cp36m-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "747f8f906278d20bd888ca96507e2ece022487ab33b051a7104eb7c7364ae972",
                "md5": "ced7545fbe6617a78062016adda13ad5",
                "sha256": "4b24aaceef380f0ea21a74b1080cb0fd5bf4f23558d268932bbd992e937a2487"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "ced7545fbe6617a78062016adda13ad5",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6",
            "size": 11912663,
            "upload_time": "2024-02-02T08:50:36",
            "upload_time_iso_8601": "2024-02-02T08:50:36.955807Z",
            "url": "https://files.pythonhosted.org/packages/74/7f/8f906278d20bd888ca96507e2ece022487ab33b051a7104eb7c7364ae972/pyxai-1.0.12-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2d852d8f537815212681e879dea53a5d220c759cea443d3bd845c0b84e0bcddb",
                "md5": "36d8ecaea4a4e753c37a326381cc1538",
                "sha256": "2779055c231e4f897e20916c9ef577391bcb6980b0f0b9a1c2719dbb2b7daab7"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "36d8ecaea4a4e753c37a326381cc1538",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6",
            "size": 11922521,
            "upload_time": "2024-02-02T08:50:40",
            "upload_time_iso_8601": "2024-02-02T08:50:40.772391Z",
            "url": "https://files.pythonhosted.org/packages/2d/85/2d8f537815212681e879dea53a5d220c759cea443d3bd845c0b84e0bcddb/pyxai-1.0.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "765222c0d3099ec143decf60bbebb71111bf84b9ebe9fc48e04f1cb3c3c4b2b5",
                "md5": "b89193ec5fca2c9fb851b2880eea7037",
                "sha256": "c3bdcce067332080814d3b66cea8804f60f4fd0536b1deb61cc28a3887584836"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp37-cp37m-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "b89193ec5fca2c9fb851b2880eea7037",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6",
            "size": 12485345,
            "upload_time": "2024-02-02T08:50:44",
            "upload_time_iso_8601": "2024-02-02T08:50:44.438672Z",
            "url": "https://files.pythonhosted.org/packages/76/52/22c0d3099ec143decf60bbebb71111bf84b9ebe9fc48e04f1cb3c3c4b2b5/pyxai-1.0.12-cp37-cp37m-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "886e738f1b7a2db2db15fefccdfe5e46485ea7b75448f64ab213357ba6ed3a6c",
                "md5": "8b4997a9d0749690426a2709378c0df1",
                "sha256": "443fce313c601fdcc37260935db1a81f54c0e573f5199e2ed3af6d2b96050b97"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8b4997a9d0749690426a2709378c0df1",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6",
            "size": 12455410,
            "upload_time": "2024-02-02T08:50:47",
            "upload_time_iso_8601": "2024-02-02T08:50:47.461987Z",
            "url": "https://files.pythonhosted.org/packages/88/6e/738f1b7a2db2db15fefccdfe5e46485ea7b75448f64ab213357ba6ed3a6c/pyxai-1.0.12-cp37-cp37m-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f9d3334f273a59b6b20bc6cd2497248ab65e23b2e699323aeeebe876c1a1836e",
                "md5": "cbe8589e75dd2be0877b3f01dfd12f69",
                "sha256": "c083fbd54f647cd21dc695903c6cb57f9c2c1f12621cc9988876f406c1ada833"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "cbe8589e75dd2be0877b3f01dfd12f69",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6",
            "size": 11912904,
            "upload_time": "2024-02-02T08:50:50",
            "upload_time_iso_8601": "2024-02-02T08:50:50.826394Z",
            "url": "https://files.pythonhosted.org/packages/f9/d3/334f273a59b6b20bc6cd2497248ab65e23b2e699323aeeebe876c1a1836e/pyxai-1.0.12-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7b92588cd6fbda30e7dc9238f029c1c8d8a7ed9ec520936c65636333a39eb84e",
                "md5": "0b16506ba5a5e55968931be6543f27eb",
                "sha256": "2295abd744271294039ab832936824876fd38336612d1ac854e78f23b321b042"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0b16506ba5a5e55968931be6543f27eb",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6",
            "size": 11922801,
            "upload_time": "2024-02-02T08:50:53",
            "upload_time_iso_8601": "2024-02-02T08:50:53.657162Z",
            "url": "https://files.pythonhosted.org/packages/7b/92/588cd6fbda30e7dc9238f029c1c8d8a7ed9ec520936c65636333a39eb84e/pyxai-1.0.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "eb8392160b5a335f6a349fd3e2649c2090ac0c8978393a1ddc5f297d3515a1fb",
                "md5": "2e4bfce2414361e169a4504ab6f32241",
                "sha256": "ddc69cf787d667b262d54a1f0fdb53d1beead0b753c5ef629d6f22f0d2445a09"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp38-cp38-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "2e4bfce2414361e169a4504ab6f32241",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6",
            "size": 12482568,
            "upload_time": "2024-02-02T08:50:56",
            "upload_time_iso_8601": "2024-02-02T08:50:56.679459Z",
            "url": "https://files.pythonhosted.org/packages/eb/83/92160b5a335f6a349fd3e2649c2090ac0c8978393a1ddc5f297d3515a1fb/pyxai-1.0.12-cp38-cp38-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9b9a2341794b981b8983712c109adf2731153ac5fb7094848a1d747e3b5cc306",
                "md5": "be67cb7e006a70bb67cbe67b54c40a2c",
                "sha256": "69e167073e5c362b39ecc6569ad8269bb9a7e21fbfb756d178a52b11161f4829"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "be67cb7e006a70bb67cbe67b54c40a2c",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6",
            "size": 12451955,
            "upload_time": "2024-02-02T08:51:00",
            "upload_time_iso_8601": "2024-02-02T08:51:00.622596Z",
            "url": "https://files.pythonhosted.org/packages/9b/9a/2341794b981b8983712c109adf2731153ac5fb7094848a1d747e3b5cc306/pyxai-1.0.12-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "55e509dcd36f1d96e9818a219421e01e0c063a90be5f360182e243b68403e88b",
                "md5": "0f7978b50452725f6d8777b962b42c49",
                "sha256": "c2ff1d901da81ec947ab8b7cc49d89377eb93bb921f48fa68186c0e1efc01cd2"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "0f7978b50452725f6d8777b962b42c49",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6",
            "size": 11913700,
            "upload_time": "2024-02-02T08:51:03",
            "upload_time_iso_8601": "2024-02-02T08:51:03.719891Z",
            "url": "https://files.pythonhosted.org/packages/55/e5/09dcd36f1d96e9818a219421e01e0c063a90be5f360182e243b68403e88b/pyxai-1.0.12-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "557a248b3304bd5005a18bbfc3b43d19ec524dee3b0c06bd266ad163407f9dc2",
                "md5": "a4d191e673b7e04a434d720ee49694df",
                "sha256": "b39d242c5a4833f24ddb849d11713e60881957d621af01f46988b6e50d5b8068"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a4d191e673b7e04a434d720ee49694df",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6",
            "size": 11923678,
            "upload_time": "2024-02-02T08:51:06",
            "upload_time_iso_8601": "2024-02-02T08:51:06.828167Z",
            "url": "https://files.pythonhosted.org/packages/55/7a/248b3304bd5005a18bbfc3b43d19ec524dee3b0c06bd266ad163407f9dc2/pyxai-1.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0e4e55df6fb55f44f5f7c4138bef808535b22d8ac00db145ae7371671c79945c",
                "md5": "45ddad52238809e37958aa70c0ff467b",
                "sha256": "c719007024235ed0c4575ecc272af5cffa011047df1efd5fc1ef94292342105b"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp39-cp39-musllinux_1_1_i686.whl",
            "has_sig": false,
            "md5_digest": "45ddad52238809e37958aa70c0ff467b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6",
            "size": 12483072,
            "upload_time": "2024-02-02T08:51:10",
            "upload_time_iso_8601": "2024-02-02T08:51:10.013623Z",
            "url": "https://files.pythonhosted.org/packages/0e/4e/55df6fb55f44f5f7c4138bef808535b22d8ac00db145ae7371671c79945c/pyxai-1.0.12-cp39-cp39-musllinux_1_1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5f79563043b0ba76797b83154beae037244eb7dece906378afba54222a95e65e",
                "md5": "18f5c176e35eed3fdf4a9994cfd57c16",
                "sha256": "560c6f9ff0b16dc6357d05a909b6f41010d756945a6842565c260019198b25d4"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "18f5c176e35eed3fdf4a9994cfd57c16",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6",
            "size": 12452356,
            "upload_time": "2024-02-02T08:51:14",
            "upload_time_iso_8601": "2024-02-02T08:51:14.156048Z",
            "url": "https://files.pythonhosted.org/packages/5f/79/563043b0ba76797b83154beae037244eb7dece906378afba54222a95e65e/pyxai-1.0.12-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8d98f2867fbcd223ad7138d27cd41116bc82a117aee598848d2b6fc348e9c379",
                "md5": "979944c2ce2f4017ec827c293e0e0adf",
                "sha256": "d57bb626944f61dcf4bd45cabe633af5066c939208e4c744383b1500d201216c"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "979944c2ce2f4017ec827c293e0e0adf",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.6",
            "size": 11214761,
            "upload_time": "2024-02-02T08:51:17",
            "upload_time_iso_8601": "2024-02-02T08:51:17.104200Z",
            "url": "https://files.pythonhosted.org/packages/8d/98/f2867fbcd223ad7138d27cd41116bc82a117aee598848d2b6fc348e9c379/pyxai-1.0.12-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e1f68fc1d12bdd464041d3e27a1d546959890169c0737ab49a63d267fdba4894",
                "md5": "53e630d2fb66035a11f27286fff0f278",
                "sha256": "d91bd2ee60b1242f92afc019f3ec9b016a061fbd40275d92de36a3110fa36e80"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "53e630d2fb66035a11f27286fff0f278",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.6",
            "size": 11209006,
            "upload_time": "2024-02-02T08:51:20",
            "upload_time_iso_8601": "2024-02-02T08:51:20.458771Z",
            "url": "https://files.pythonhosted.org/packages/e1/f6/8fc1d12bdd464041d3e27a1d546959890169c0737ab49a63d267fdba4894/pyxai-1.0.12-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "484541c41d73f4e08f76f56582c7a87d4c30e7ee0c1cdfb2072f3e776a8e2094",
                "md5": "d7a8a60928738cb0d41a77d363a4386a",
                "sha256": "d4012ca3c2d702340bf84f3fa1fce7f96cab8cd101c0a68f4d66696a1472a734"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "d7a8a60928738cb0d41a77d363a4386a",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.6",
            "size": 11216061,
            "upload_time": "2024-02-02T08:51:24",
            "upload_time_iso_8601": "2024-02-02T08:51:24.264812Z",
            "url": "https://files.pythonhosted.org/packages/48/45/41c41d73f4e08f76f56582c7a87d4c30e7ee0c1cdfb2072f3e776a8e2094/pyxai-1.0.12-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "692a07da710f4f232bd3454f74e9e096fe65d91122c6042ada429d4c347d06da",
                "md5": "19b687aad66678feba90f1679b5cbe8f",
                "sha256": "39e4c0f3b7e38667619137e2e19d1dfe1116650b37a10567136f0a0a246d432f"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "19b687aad66678feba90f1679b5cbe8f",
            "packagetype": "bdist_wheel",
            "python_version": "pp37",
            "requires_python": ">=3.6",
            "size": 11210391,
            "upload_time": "2024-02-02T08:51:27",
            "upload_time_iso_8601": "2024-02-02T08:51:27.667307Z",
            "url": "https://files.pythonhosted.org/packages/69/2a/07da710f4f232bd3454f74e9e096fe65d91122c6042ada429d4c347d06da/pyxai-1.0.12-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8c46dd6453027d7ec53070b7a362c97ecbe54b6c1008b35ef6c0840271479e89",
                "md5": "08bd9d9d8b40eb84e363de905323885b",
                "sha256": "b64ed12cb958655a31aa7e3090b7de16dd32bd4d0dadc5c55388b1153b8e6882"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "08bd9d9d8b40eb84e363de905323885b",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.6",
            "size": 11214815,
            "upload_time": "2024-02-02T08:51:30",
            "upload_time_iso_8601": "2024-02-02T08:51:30.684082Z",
            "url": "https://files.pythonhosted.org/packages/8c/46/dd6453027d7ec53070b7a362c97ecbe54b6c1008b35ef6c0840271479e89/pyxai-1.0.12-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8c54f34fd6bc6d31f136ba3a1c7d04eeadb91fc9e818886ca2355774481c52bf",
                "md5": "02843c38575f7ba97ca70f913735f7f9",
                "sha256": "6431623c3cdb325452b34d23c0bc3dc4c30e7bb63aa9ef72d39329647353cc7c"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "02843c38575f7ba97ca70f913735f7f9",
            "packagetype": "bdist_wheel",
            "python_version": "pp38",
            "requires_python": ">=3.6",
            "size": 11209046,
            "upload_time": "2024-02-02T08:51:34",
            "upload_time_iso_8601": "2024-02-02T08:51:34.822964Z",
            "url": "https://files.pythonhosted.org/packages/8c/54/f34fd6bc6d31f136ba3a1c7d04eeadb91fc9e818886ca2355774481c52bf/pyxai-1.0.12-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "555bd8ea5a995d29ccefe2688367fa132ae672cf3fef14d1ddfa08cfa5727d60",
                "md5": "cac4dc161eb1a8c77a693759a591d972",
                "sha256": "4b43be3f3167bc7a65c319236002ccf608ced9ca20df62a45fe28810c1321dbf"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "cac4dc161eb1a8c77a693759a591d972",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.6",
            "size": 11214700,
            "upload_time": "2024-02-02T08:51:38",
            "upload_time_iso_8601": "2024-02-02T08:51:38.013430Z",
            "url": "https://files.pythonhosted.org/packages/55/5b/d8ea5a995d29ccefe2688367fa132ae672cf3fef14d1ddfa08cfa5727d60/pyxai-1.0.12-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b50e5f59c63fb1ecc8fc3e401e187518fd6aad9e3d684b345cc6829c9c1063ad",
                "md5": "9e175a6887fe99c33cebe1cea0817880",
                "sha256": "e539a8e377c20d5dc43df451b0d0692a12d46dbcd940cf601194c89489f3b66b"
            },
            "downloads": -1,
            "filename": "pyxai-1.0.12-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9e175a6887fe99c33cebe1cea0817880",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.6",
            "size": 11208959,
            "upload_time": "2024-02-02T08:51:42",
            "upload_time_iso_8601": "2024-02-02T08:51:42.176959Z",
            "url": "https://files.pythonhosted.org/packages/b5/0e/5f59c63fb1ecc8fc3e401e187518fd6aad9e3d684b345cc6829c9c1063ad/pyxai-1.0.12-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-02 08:49:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "crillab",
    "github_project": "pyxai",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pyxai"
}
        
Elapsed time: 0.27120s