{ "info": { "author": "Center for Data Science and Public Policy", "author_email": "datascifellows@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9" ], "description": "# *Aequitas*: Bias Auditing & Fair ML Toolkit\n\n[![](https://pepy.tech/badge/aequitas)](https://pypi.org/project/aequitas/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)\n\n[comment]: <> (Add badges for coverage when we have tests, update repo for other types of badges!)\n\n\n

\n \n

\n\n\n`aequitas` is an open-source bias auditing and Fair ML toolkit for data scientists, machine learning researchers, and policymakers. The objective of this package is to provide an easy-to-use and transparent tool for auditing predictors, as well as experimenting with Fair ML methods in binary classification settings.\n\n

\n \n

\n\n## \ud83d\udce5 Installation\n\n```cmd\npip install aequitas\n```\n\nor\n\n```cmd\npip install git+https://github.com/dssg/aequitas.git\n```\n\n### \ud83d\udd0d Quickstart on Bias Auditing\n\nTo perform a bias audit, you need a pandas `DataFrame` with the following format:\n\n| | label | score | sens_attr_1 | sens_attr_2 | ... | sens_attr_N |\n|-----|-------|-------|-------------|-------------|-----|-------------|\n| 0 | 0 | 0 | A | F | | Y |\n| 1 | 0 | 1 | C | F | | N |\n| 2 | 1 | 1 | B | T | | N |\n| ... | | | | | | |\n| N | 1 | 0 | E | T | | Y |\n\nwhere `label` is the target variable for your prediction task and `score` is the model output.\nOnly one sensitive attribute is required; all must be in `Categorical` format.\n\n```python\nfrom aequitas import Audit\n\naudit = Audit(df)\n```\n\nTo obtain a summary of the bias audit, run:\n```python\n# Select the fairness metric of interest for your dataset\naudit.summary_plot([\"tpr\", \"fpr\", \"pprev\"])\n```\n\n\nWe can also observe a single metric and sensitive attribute:\n```python\naudit.disparity_plot(attribute=\"sens_attr_2\", metrics=[\"fpr\"])\n```\n\n\n### \ud83e\uddea Quickstart on Fair ML Experimenting\n\nTo perform an experiment, a dataset is required. It must have a label column, a sensitive attribute column, and features. \n\n```python\nfrom aequitas.flow import DefaultExperiment\n\nexperiment = DefaultExperiment(dataset, label=\"label\", s=\"sensitive_attribute\")\nexperiment.run()\n```\nSeveral aspects of an experiment (*e.g.*, algorithms, number of runs, dataset splitting) can be configured individually.\n\n\n\n[comment]: <> (Make default experiment this easy to run)\n\n### \ud83e\udde0 Quickstart on Method Training\n\nAssuming an `aequitas.flow.Dataset`, it is possible to train methods and use their functionality depending on the type of algorithm (pre-, in-, or post-processing).\n\nFor pre-processing methods:\n```python\nfrom aequitas.flow.methods.preprocessing import PrevalenceSampling\n\nsampler = PrevalenceSampling()\nsampler.fit(dataset.train.X, dataset.train.y, dataset.train.s)\nX_sample, y_sample, s_sample = sampler.transform(dataset.train.X, dataset.train.y, dataset.train.s)\n```\n\nfor in-processing methods:\n```python\nfrom aequitas.flow.methods.inprocessing import FairGBM\n\nmodel = FairGBM()\nmodel.fit(X_sample, y_sample, s_sample)\nscores_val = model.predict_proba(dataset.validation.X, dataset.validation.y, dataset.validation.s)\nscores_test = model.predict_proba(dataset.test.X, dataset.test.y, dataset.test.s)\n```\n\nfor post-processing methods:\n```python\nfrom aequitas.flow.methods.postprocessing import BalancedGroupThreshold\n\nthreshold = BalancedGroupThreshold(\"top_pct\", 0.1, \"fpr\")\nthreshold.fit(dataset.validation.X, scores_val, dataset.validation.y, dataset.validation.s)\ncorrected_scores = threshold.transform(dataset.test.X, scores_test, dataset.test.s)\n```\n\nWith this sequence, we would sample a dataset, train a FairGBM model, and then adjust the scores to have equal FPR per group (achieving Predictive Equality).\n\n## \ud83d\udcdc Features of the Toolkit\n- **Metrics**: Audits based on confusion matrix-based metrics with flexibility to select the more important ones depending on use-case.\n- **Plotting options**: The major outcomes of bias auditing and experimenting offer also plots adequate to different user objectives. \n- **Fair ML methods**: Interface and implementation of several Fair ML methods, including pre-, in-, and post-processing methods.\n- **Datasets**: Two \"families\" of datasets included, named [BankAccountFraud](https://arxiv.org/pdf/2211.13358) and [FolkTables](https://arxiv.org/abs/2108.04884).\n- **Extensibility**: Adapted to receive user-implemented methods, with intuitive interfaces and method signatures.\n- **Reproducibility**: Option to save artifacts of Experiments, from the transformed data to the fitted models and predictions.\n- **Modularity**: Fair ML Methods and default datasets can be used individually or integrated in an `Experiment`.\n- **Hyperparameter optimization**: Out of the box integration and abstraction of [Optuna](https://github.com/optuna/optuna)'s hyperparameter optimization capabilities for experimentation.\n\n### Fair ML Methods\n\nWe support a range of methods designed to address bias and discrimination in different stages of the ML pipeline.\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Type Method Description
Pre-processing Data Repairer Transforms the data distribution so that a given feature distribution is marginally independent of the sensitive attribute, s.
Label Flipping Flips the labels of a fraction of the training data according to the Fair Ordering-Based Noise Correction method.
Prevalence Sampling Generates a training sample with controllable balanced prevalence for the groups in dataset, either by undersampling or oversampling.
UnawarenessRemoves features that are highly correlated with the sensitive attribute.
MassagingFlips selected labels to reduce prevalence disparity between groups.
In-processing FairGBM Novel method where a boosting trees algorithm (LightGBM) is subject to pre-defined fairness constraints.
Fairlearn Classifier Models from the Fairlearn reductions package. Possible parameterization for ExponentiatedGradient and GridSearch methods.
Post-processingGroup ThresholdAdjusts the threshold per group to obtain a certain fairness criterion (e.g., all groups with 10% FPR)
Balanced Group ThresholdAdjusts the threshold per group to obtain a certain fairness criterion, while satisfying a global constraint (e.g., Demographic Parity with a global FPR of 10%)
\n\n\n### Fairness Metrics\n\n`aequitas` provides the value of confusion matrix metrics for each possible value of the sensitive attribute columns To calculate fairness metrics. The cells of the confusion metrics are:\n\n| Cell | Symbol | Description | \n|--------------------|:-------:|----------------------------------------------------------------|\n| **False Positive** | $FP_g$ | The number of entities of the group with $\\hat{Y}=1$ and $Y=0$ |\n| **False Negative** | $FN_g$ | The number of entities of the group with $\\hat{Y}=0$ and $Y=1$ |\n| **True Positive** | $TP_g$ | The number of entities of the group with $\\hat{Y}=1$ and $Y=1$ |\n| **True Negative** | $TN_g$ | The number of entities of the group with $\\hat{Y}=0$ and $Y=0$ |\n\nFrom these, we calculate several metrics:\n\n| Metric | Formula | Description | \n|-------------------------------|:---------------------------------------------------:|-------------------------------------------------------------------------------------------| \n| **Accuracy** | $Acc_g = \\cfrac{TP_g + TN_g}{\\|g\\|}$ | The fraction of correctly predicted entities withing the group. |\n| **True Positive Rate** | $TPR_g = \\cfrac{TP_g}{TP_g + FN_g}$ | The fraction of true positives within the label positive entities of a group. |\n| **True Negative Rate** | $TNR_g = \\cfrac{TN_g}{TN_g + FP_g}$ | The fraction of true negatives within the label negative entities of a group. |\n| **False Negative Rate** | $FNR_g = \\cfrac{FN_g}{TP_g + FN_g}$ | The fraction of false negatives within the label positive entities of a group. |\n| **False Positive Rate** | $FPR_g = \\cfrac{FP_g}{TN_g + FP_g}$ | The fraction of false positives within the label negative entities of a group. |\n| **Precision** | $Precision_g = \\cfrac{TP_g}{TP_g + FP_g}$ | The fraction of true positives within the predicted positive entities of a group. |\n| **Negative Predictive Value** | $NPV_g = \\cfrac{TN_g}{TN_g + FN_g}$ | The fraction of true negatives within the predicted negative entities of a group. | \n| **False Discovery Rate** | $FDR_g = \\cfrac{FP_g}{TP_g + FP_g}$ | The fraction of false positives within the predicted positive entities of a group. |\n| **False Omission Rate** | $FOR_g = \\cfrac{FN_g}{TN_g + FN_g}$ | The fraction of false negatives within the predicted negative entities of a group. |\n| **Predicted Positive** | $PP_g = TP_g + FP_g$ | The number of entities within a group where the decision is positive, i.e., $\\hat{Y}=1$. |\n| **Total Predictive Positive** | $K = \\sum PP_{g(a_i)}$ | The total number of entities predicted positive across groups defined by $A$ | \n| **Predicted Negative** | $PN_g = TN_g + FN_g$ | The number of entities within a group where the decision is negative, i.e., $\\hat{Y}=0$ | \n| **Predicted Prevalence** | $Pprev_g=\\cfrac{PP_g}{\\|g\\|}=P(\\hat{Y}=1 \\| A=a_i)$ | The fraction of entities within a group which were predicted as positive. | \n| **Predicted Positive Rate** | $PPR_g = \\cfrac{PP_g}{K} = P(A=A_i \\| \\hat{Y}=1)$ | The fraction of the entities predicted as positive that belong to a certain group. | \n\nThese are implemented in the [`Group`](https://github.com/dssg/aequitas/blob/master/src/aequitas/group.py) class. With the [`Bias`](https://github.com/dssg/aequitas/blob/master/src/aequitas/bias.py) class, several fairness metrics can be derived by different combinations of ratios of these metrics.\n\n### \ud83d\udcd4Example Notebooks\n\n| Notebook | Description |\n|-|-|\n| [Audit a Model's Predictions](https://colab.research.google.com/github/dssg/aequitas/blob/notebooks/compas_demo.ipynb) | Check how to do an in-depth bias audit with the COMPAS example notebook. |\n| [Correct a Model's Predictions](https://colab.research.google.com/github/dssg/aequitas/blob/notebooks/aequitas_flow_model_audit_and_correct.ipynb) | Create a dataframe to audit a specific model, and correct the predictions with group-specific thresholds in the Model correction notebook. |\n| [Train a Model with Fairness Considerations](https://colab.research.google.com/github/dssg/aequitas/blob/notebooks/aequitas_flow_experiment.ipynb) | Experiment with your own dataset or methods and check the results of a Fair ML experiment. |\n\n## Further documentation\n\nYou can find the toolkit documentation [here](https://dssg.github.io/aequitas/).\n\nFor more examples of the python library and a deep dive into concepts of fairness in ML, see our [Tutorial](https://github.com/dssg/fairness_tutorial) presented on KDD and AAAI. Visit also the [Aequitas project website](http://dsapp.uchicago.edu/aequitas/).\n\n## Citing Aequitas\n\n\nIf you use Aequitas in a scientific publication, we would appreciate citations to the following paper:\n\nPedro Saleiro, Benedict Kuester, Abby Stevens, Ari Anisfeld, Loren Hinkson, Jesse London, Rayid Ghani, Aequitas: A Bias and Fairness Audit Toolkit, arXiv preprint arXiv:1811.05577 (2018). ([PDF](https://arxiv.org/pdf/1811.05577.pdf))\n\n```bib\n @article{2018aequitas,\n title={Aequitas: A Bias and Fairness Audit Toolkit},\n author={Saleiro, Pedro and Kuester, Benedict and Stevens, Abby and Anisfeld, Ari and Hinkson, Loren and London, Jesse and Ghani, Rayid}, journal={arXiv preprint arXiv:1811.05577}, year={2018}}\n``` \n\n[Back to top](#aequitas-bias-auditing--fair-ml-toolkit)\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dssg/aequitas", "keywords": "fairness bias aequitas", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "aequitas", "package_url": "https://pypi.org/project/aequitas/", "platform": null, "project_url": "https://pypi.org/project/aequitas/", "project_urls": { "Homepage": "https://github.com/dssg/aequitas" }, "release_url": "https://pypi.org/project/aequitas/1.0.0/", "requires_dist": [ "matplotlib >=3.0.3", "pandas >=0.24.1", "pyyaml >=5.1", "seaborn >=0.9.0", "altair >=4.1.0", "millify ==0.1.1", "scipy >=0.18.1", "optuna >=3.0.0", "aif360 >=0.5.0", "fairgbm ==0.9.14", "fairlearn >=0.8.0", "hydra-core >=1.3.0", "validators >=0.22.0", "hyperparameter-tuning >=0.3.1", "numpy ==1.23.5", "SQLAlchemy >=1.1.1 ; extra == 'cli'", "tabulate ==0.8.2 ; extra == 'cli'", "xhtml2pdf ==0.2.2 ; extra == 'cli'", "ohio >=0.2.0 ; extra == 'cli'", "markdown2 ==2.3.5 ; extra == 'cli'", "Flask ==0.12.2 ; extra == 'webapp'", "Flask-Bootstrap ==3.3.7.1 ; extra == 'webapp'" ], "requires_python": "", "summary": "The bias and fairness audit toolkit.", "version": "1.0.0", "yanked": false, "yanked_reason": null }, "last_serial": 21653180, "releases": { "0.26.0": [ { "comment_text": "", "digests": { "blake2b_256": "1e9dd1d50629d4ef4e2a14a97f1ef6a52b4ad0d92d5fd0cac63c302d4d54e530", "md5": "e9708f2dae655e6e8a07b3161e064a2a", "sha256": "1eb203b6eb653412d7b7d7b979e94937e51473b9671c38f15487cc598ab8c42b" }, "downloads": -1, "filename": "aequitas-0.26.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e9708f2dae655e6e8a07b3161e064a2a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2140834, "upload_time": "2019-04-04T17:44:02", "upload_time_iso_8601": "2019-04-04T17:44:02.820989Z", "url": "https://files.pythonhosted.org/packages/1e/9d/d1d50629d4ef4e2a14a97f1ef6a52b4ad0d92d5fd0cac63c302d4d54e530/aequitas-0.26.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "cda49699699e5f08b278c58f88b1d716439b993fb4f3f4e9ba25df1b889cfe04", "md5": "9f847820821cd1a48c8d3c1370b93d37", "sha256": "421e98e522bdb9f3fd004c0a9825a9c4bf0576e01a755876e2247305cf068602" }, "downloads": -1, "filename": "aequitas-0.26.0.tar.gz", "has_sig": false, "md5_digest": "9f847820821cd1a48c8d3c1370b93d37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2089539, "upload_time": "2019-04-04T17:44:07", "upload_time_iso_8601": "2019-04-04T17:44:07.238863Z", "url": "https://files.pythonhosted.org/packages/cd/a4/9699699e5f08b278c58f88b1d716439b993fb4f3f4e9ba25df1b889cfe04/aequitas-0.26.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.27.0": [ { "comment_text": "", "digests": { "blake2b_256": "d262349f78c567d8f1350f7c595e0fb09be67f7b89cb739402aa6de3b803f858", "md5": "9fe376d117172256da918357dffd2af0", "sha256": "35e4e901e2f9ed6c88a00a8387f57a0fb181280bb22a6e7819d8a1409f9a1e58" }, "downloads": -1, "filename": "aequitas-0.27.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9fe376d117172256da918357dffd2af0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2140822, "upload_time": "2019-04-04T18:50:00", "upload_time_iso_8601": "2019-04-04T18:50:00.117868Z", "url": "https://files.pythonhosted.org/packages/d2/62/349f78c567d8f1350f7c595e0fb09be67f7b89cb739402aa6de3b803f858/aequitas-0.27.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "ea50921ab96af9771e8aa19e8f0e45bdb997969efce8123931f16e7ad29c9ac5", "md5": "9ebc30bf0bb403a18e0511f3097e1327", "sha256": "d123e0a15b25ea41a9a495cae5507dbfb28e0077b54ff960a5bb741d873aa72c" }, "downloads": -1, "filename": "aequitas-0.27.0.tar.gz", "has_sig": false, "md5_digest": "9ebc30bf0bb403a18e0511f3097e1327", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2089547, "upload_time": "2019-04-04T18:50:03", "upload_time_iso_8601": "2019-04-04T18:50:03.115793Z", "url": "https://files.pythonhosted.org/packages/ea/50/921ab96af9771e8aa19e8f0e45bdb997969efce8123931f16e7ad29c9ac5/aequitas-0.27.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.28.0": [ { "comment_text": "", "digests": { "blake2b_256": "38505d3a4565a07a37be7db357a5c0752bc5d2a180dc14aa72c74887548332d2", "md5": "53f8beb412a60b05dc930a3a1018603a", "sha256": "3f247c74c8ddf356d265ad860e5a0396ba1e280876dce897d6d8ab7cab96e4e6" }, "downloads": -1, "filename": "aequitas-0.28.0-py3-none-any.whl", "has_sig": false, "md5_digest": "53f8beb412a60b05dc930a3a1018603a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2140868, "upload_time": "2019-04-04T19:53:00", "upload_time_iso_8601": "2019-04-04T19:53:00.366242Z", "url": "https://files.pythonhosted.org/packages/38/50/5d3a4565a07a37be7db357a5c0752bc5d2a180dc14aa72c74887548332d2/aequitas-0.28.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "87f814986a19d778bd0e9bca633d519fff111990549d8331772af6cda1bf30f1", "md5": "9bb0eb555513d57784eb9c64d4321c00", "sha256": "0545ad6f4b2e61892dedd39881839de561e27b887b31c8bac4d55442b1048026" }, "downloads": -1, "filename": "aequitas-0.28.0.tar.gz", "has_sig": false, "md5_digest": "9bb0eb555513d57784eb9c64d4321c00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2089622, "upload_time": "2019-04-04T19:53:03", "upload_time_iso_8601": "2019-04-04T19:53:03.836589Z", "url": "https://files.pythonhosted.org/packages/87/f8/14986a19d778bd0e9bca633d519fff111990549d8331772af6cda1bf30f1/aequitas-0.28.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.29.0": [ { "comment_text": "", "digests": { "blake2b_256": "708fa385e1737d9054f4346eb3d5ba27c2079e8e7bad68be331745814dc82861", "md5": "edcee74fa5c09f20891a2ad462369a91", "sha256": "380c733a2bdb1838c77131c4428d12a4672d76977a008831ef318c03a48b8c08" }, "downloads": -1, "filename": "aequitas-0.29.0-py3-none-any.whl", "has_sig": false, "md5_digest": "edcee74fa5c09f20891a2ad462369a91", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2140882, "upload_time": "2019-04-04T19:56:09", "upload_time_iso_8601": "2019-04-04T19:56:09.753024Z", "url": "https://files.pythonhosted.org/packages/70/8f/a385e1737d9054f4346eb3d5ba27c2079e8e7bad68be331745814dc82861/aequitas-0.29.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "7bb4736fe3fc2536e35ebed05c008db44c5e18befbd54115250f1ca40f2b99cd", "md5": "4e2bd54f34a10746ec4b45e643d33865", "sha256": "c4d1e34def641ae2857357cfe7b9b524141350619721377af9a2931a0ed3f98f" }, "downloads": -1, "filename": "aequitas-0.29.0.tar.gz", "has_sig": false, "md5_digest": "4e2bd54f34a10746ec4b45e643d33865", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2089634, "upload_time": "2019-04-04T19:56:13", "upload_time_iso_8601": "2019-04-04T19:56:13.242224Z", "url": "https://files.pythonhosted.org/packages/7b/b4/736fe3fc2536e35ebed05c008db44c5e18befbd54115250f1ca40f2b99cd/aequitas-0.29.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.32.0": [ { "comment_text": "", "digests": { "blake2b_256": "3e6225986ebabc59fcdfcc999356100d459c46258c950d008d4f347f6cf2170c", "md5": "b3c20d75d31e1380f257044f9631a735", "sha256": "f030d60f8bcef03e4764af9365ff94d8f3a802722a69cae814cd557501f252e3" }, "downloads": -1, "filename": "aequitas-0.32.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b3c20d75d31e1380f257044f9631a735", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2136944, "upload_time": "2019-04-04T20:23:12", "upload_time_iso_8601": "2019-04-04T20:23:12.764595Z", "url": "https://files.pythonhosted.org/packages/3e/62/25986ebabc59fcdfcc999356100d459c46258c950d008d4f347f6cf2170c/aequitas-0.32.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "fe3a6a531adf2d63ba9b14c59c15400f31f36af27a04606aba009aee8861a0b3", "md5": "7f0a0cfcacea99a5971bfbbabcb9360c", "sha256": "5807a5d72c13c062fcad0cbf9202d4bbd887e2433005a26704cbe5c02c77a2bc" }, "downloads": -1, "filename": "aequitas-0.32.0.tar.gz", "has_sig": false, "md5_digest": "7f0a0cfcacea99a5971bfbbabcb9360c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2085157, "upload_time": "2019-04-04T20:23:15", "upload_time_iso_8601": "2019-04-04T20:23:15.245977Z", "url": "https://files.pythonhosted.org/packages/fe/3a/6a531adf2d63ba9b14c59c15400f31f36af27a04606aba009aee8861a0b3/aequitas-0.32.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.33.0": [ { "comment_text": "", "digests": { "blake2b_256": "813f78c6ce883ed07b0e6f46a9d022d00d6813b4a44c1dac9518603728502e37", "md5": "b378b30cd6e44d6e3d3083e969a488d5", "sha256": "4fe6b9f8b4fbf89cca2ecbb8f85252a3427b625fb174e62e76bcf4b661092ea0" }, "downloads": -1, "filename": "aequitas-0.33.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b378b30cd6e44d6e3d3083e969a488d5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2136942, "upload_time": "2019-04-09T22:21:56", "upload_time_iso_8601": "2019-04-09T22:21:56.525558Z", "url": "https://files.pythonhosted.org/packages/81/3f/78c6ce883ed07b0e6f46a9d022d00d6813b4a44c1dac9518603728502e37/aequitas-0.33.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "5ded4ab1e16399f6fde32403ff3f933e21383029b74f11e35eb55b21285797d1", "md5": "beb8d59e9520a18ceeb53181f79ed0d7", "sha256": "c390e6d585fc8087557ed2643d02d05c1f5439b1b25cbe178b10125edba27868" }, "downloads": -1, "filename": "aequitas-0.33.0.tar.gz", "has_sig": false, "md5_digest": "beb8d59e9520a18ceeb53181f79ed0d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2085138, "upload_time": "2019-04-09T22:21:59", "upload_time_iso_8601": "2019-04-09T22:21:59.337376Z", "url": "https://files.pythonhosted.org/packages/5d/ed/4ab1e16399f6fde32403ff3f933e21383029b74f11e35eb55b21285797d1/aequitas-0.33.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.34.0": [ { "comment_text": "", "digests": { "blake2b_256": "d78b19c20a1fe1874d53c64a5a12c725b2ac58c8bab868258e95d8a981cac968", "md5": "3b9ac3ed2714d6a1e8b8ab1638e941e4", "sha256": "f82583998954c87fa28de62e2079b7c772f01ac2c12c9b4af80b116b40fe9cfe" }, "downloads": -1, "filename": "aequitas-0.34.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3b9ac3ed2714d6a1e8b8ab1638e941e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2136909, "upload_time": "2019-04-10T00:36:04", "upload_time_iso_8601": "2019-04-10T00:36:04.065833Z", "url": "https://files.pythonhosted.org/packages/d7/8b/19c20a1fe1874d53c64a5a12c725b2ac58c8bab868258e95d8a981cac968/aequitas-0.34.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "201c6c5256e210c6d43938a03c661c469239fefac797d6722930352ffad34af9", "md5": "7ec495a268ccadf5c56c3e68e49ed28c", "sha256": "60926fb686a1ee85e5fd63ef253f049cd257d6b546c10b720bf8d5e2c23b0d12" }, "downloads": -1, "filename": "aequitas-0.34.0.tar.gz", "has_sig": false, "md5_digest": "7ec495a268ccadf5c56c3e68e49ed28c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2085195, "upload_time": "2019-04-10T00:36:07", "upload_time_iso_8601": "2019-04-10T00:36:07.929210Z", "url": "https://files.pythonhosted.org/packages/20/1c/6c5256e210c6d43938a03c661c469239fefac797d6722930352ffad34af9/aequitas-0.34.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.35.0": [ { "comment_text": "", "digests": { "blake2b_256": "67910dc07ef77975aac033c3a38119aa0b217a4b28fe360494759627d54b6cda", "md5": "60c7533b4ce2d4412ee6cad33a78a8ea", "sha256": "1d769a9f13d18d7c6ff3fdd02b66ad3526c23a3a23b500daf9ec74d1799d3a6e" }, "downloads": -1, "filename": "aequitas-0.35.0-py3-none-any.whl", "has_sig": false, "md5_digest": "60c7533b4ce2d4412ee6cad33a78a8ea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2136910, "upload_time": "2019-04-12T16:41:18", "upload_time_iso_8601": "2019-04-12T16:41:18.535140Z", "url": "https://files.pythonhosted.org/packages/67/91/0dc07ef77975aac033c3a38119aa0b217a4b28fe360494759627d54b6cda/aequitas-0.35.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "7555aa0f671bc85c9aa0ff3f05e46ca4455531cea4a66883bbf076f4ce67ecdc", "md5": "a9e70c86f4873c5f22bd3729264af545", "sha256": "97baa37e201826ce0a64718fbe598baeb1eab23db903e7749c868df7aec22023" }, "downloads": -1, "filename": "aequitas-0.35.0.tar.gz", "has_sig": false, "md5_digest": "a9e70c86f4873c5f22bd3729264af545", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2085225, "upload_time": "2019-04-12T16:41:21", "upload_time_iso_8601": "2019-04-12T16:41:21.538453Z", "url": "https://files.pythonhosted.org/packages/75/55/aa0f671bc85c9aa0ff3f05e46ca4455531cea4a66883bbf076f4ce67ecdc/aequitas-0.35.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.36.0": [ { "comment_text": "", "digests": { "blake2b_256": "aabab2b6710e15bbf0ff47083f9f121f8d3a772b123a0e618df75e382459d447", "md5": "0c74c7cd9f4b99f862191cce17fc9cdb", "sha256": "14636023594bfdd5b2e599834c97dbe5793fa286bd70724000df62fca7fe807c" }, "downloads": -1, "filename": "aequitas-0.36.0-py2-none-any.whl", "has_sig": false, "md5_digest": "0c74c7cd9f4b99f862191cce17fc9cdb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2135750, "upload_time": "2019-04-29T20:26:16", "upload_time_iso_8601": "2019-04-29T20:26:16.270780Z", "url": "https://files.pythonhosted.org/packages/aa/ba/b2b6710e15bbf0ff47083f9f121f8d3a772b123a0e618df75e382459d447/aequitas-0.36.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "dd5b67c32924f69477568a8e8716f10e9a3ace29aba8f869ebfb17e515e91415", "md5": "cf91855f3c6b208f4e8829d0d87b11a8", "sha256": "8ae30ede2c5a7f9c6171e99e4d8d947f6727bb8059a8a1eab9036cb191f862e6" }, "downloads": -1, "filename": "aequitas-0.36.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cf91855f3c6b208f4e8829d0d87b11a8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2137108, "upload_time": "2019-04-15T20:12:01", "upload_time_iso_8601": "2019-04-15T20:12:01.072134Z", "url": "https://files.pythonhosted.org/packages/dd/5b/67c32924f69477568a8e8716f10e9a3ace29aba8f869ebfb17e515e91415/aequitas-0.36.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "9c3cb15a4715511d93f44adb70b95db39e0506eb45539445d66c7181f76ce91e", "md5": "a861b3d175463bd95f18e70fb7d0f0f8", "sha256": "111ea0a19c13f06f68e0da060e0a5a320cb007294cf92555d132d18fc3ea0018" }, "downloads": -1, "filename": "aequitas-0.36.0.tar.gz", "has_sig": false, "md5_digest": "a861b3d175463bd95f18e70fb7d0f0f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2085416, "upload_time": "2019-04-15T20:12:03", "upload_time_iso_8601": "2019-04-15T20:12:03.937399Z", "url": "https://files.pythonhosted.org/packages/9c/3c/b15a4715511d93f44adb70b95db39e0506eb45539445d66c7181f76ce91e/aequitas-0.36.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.37.0": [ { "comment_text": "", "digests": { "blake2b_256": "1ccb8a2c01aec1a0f6dbf1f8f930e6da922e7ff7229c5d196b94b37837c050a4", "md5": "f3868feb6e9a443ce741332676737584", "sha256": "029f8e61498753986484a331ef5765322bafe32e4d91168ac8db78cdfb931883" }, "downloads": -1, "filename": "aequitas-0.37.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f3868feb6e9a443ce741332676737584", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2135749, "upload_time": "2019-04-29T20:26:10", "upload_time_iso_8601": "2019-04-29T20:26:10.178782Z", "url": "https://files.pythonhosted.org/packages/1c/cb/8a2c01aec1a0f6dbf1f8f930e6da922e7ff7229c5d196b94b37837c050a4/aequitas-0.37.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "9df007cdf12ca7e804a3e18f653c6de3aab9816058c2ec8c2dcfac9f963666c2", "md5": "099b5a388d3222ccaa5619563ad4b55e", "sha256": "36dce091e394828945b8891f6f46333247038c7b508a204472f6b9e2825d911b" }, "downloads": -1, "filename": "aequitas-0.37.0.tar.gz", "has_sig": false, "md5_digest": "099b5a388d3222ccaa5619563ad4b55e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2084467, "upload_time": "2019-04-29T20:26:20", "upload_time_iso_8601": "2019-04-29T20:26:20.658950Z", "url": "https://files.pythonhosted.org/packages/9d/f0/07cdf12ca7e804a3e18f653c6de3aab9816058c2ec8c2dcfac9f963666c2/aequitas-0.37.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.38.0": [ { "comment_text": "", "digests": { "blake2b_256": "6288751e056d289b5bcaf4f5cf6d4f18e1023717bfb21945e5b2502013330399", "md5": "c8a0ab073e87ca62336a6f10941176c6", "sha256": "e723c3ca5f3a410e6b19b471bc17c46bda76fa0e3925548596b03315313c61ef" }, "downloads": -1, "filename": "aequitas-0.38.0-py2-none-any.whl", "has_sig": false, "md5_digest": "c8a0ab073e87ca62336a6f10941176c6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2135751, "upload_time": "2019-04-29T20:27:33", "upload_time_iso_8601": "2019-04-29T20:27:33.502781Z", "url": "https://files.pythonhosted.org/packages/62/88/751e056d289b5bcaf4f5cf6d4f18e1023717bfb21945e5b2502013330399/aequitas-0.38.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "97d62613cca86b6aad55578da625d9e8941c28e88a8ab1f899162001d90d0d3c", "md5": "9a50a725fd4197eedece83433548badd", "sha256": "45be4981f828bf4f64a7eedc6c29725a67cb15d06c0ede5db21e26ee0d4093ed" }, "downloads": -1, "filename": "aequitas-0.38.0.tar.gz", "has_sig": false, "md5_digest": "9a50a725fd4197eedece83433548badd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2084468, "upload_time": "2019-04-29T20:27:40", "upload_time_iso_8601": "2019-04-29T20:27:40.470777Z", "url": "https://files.pythonhosted.org/packages/97/d6/2613cca86b6aad55578da625d9e8941c28e88a8ab1f899162001d90d0d3c/aequitas-0.38.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.38.1": [ { "comment_text": "", "digests": { "blake2b_256": "63bfdbed26cfa48a28d804ea12d6866c34aabc5e39fbbb1b8818683b5c7afced", "md5": "ea57fd8f539e21d9b354c6deab766b14", "sha256": "7220f1cc5c34e131f1d959e5b55526a43ded6162492469573e62ed4f0cf1f78f" }, "downloads": -1, "filename": "aequitas-0.38.1-py3.6.egg", "has_sig": false, "md5_digest": "ea57fd8f539e21d9b354c6deab766b14", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 2269009, "upload_time": "2020-08-23T17:14:37", "upload_time_iso_8601": "2020-08-23T17:14:37.428895Z", "url": "https://files.pythonhosted.org/packages/63/bf/dbed26cfa48a28d804ea12d6866c34aabc5e39fbbb1b8818683b5c7afced/aequitas-0.38.1-py3.6.egg", "yanked": false, "yanked_reason": null } ], "0.39.0": [ { "comment_text": "", "digests": { "blake2b_256": "e750867e3658aeb0acb6042521cbb2cdf4bae265fdd23b765997d8680603298b", "md5": "bfce43fc4d847c5e9cde3579df95898c", "sha256": "b264a61d6b483600ba04b95d5b16f025598727bc894e8976c19c8ef336110bc1" }, "downloads": -1, "filename": "aequitas-0.39.0-py3-none-any.whl", "has_sig": false, "md5_digest": "bfce43fc4d847c5e9cde3579df95898c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2171179, "upload_time": "2020-08-23T17:13:41", "upload_time_iso_8601": "2020-08-23T17:13:41.042485Z", "url": "https://files.pythonhosted.org/packages/e7/50/867e3658aeb0acb6042521cbb2cdf4bae265fdd23b765997d8680603298b/aequitas-0.39.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "29a946bb9960d9b284586dfdc9c62d0b860d1020f3506cef5ca05db52218c44f", "md5": "a69a77c4f23ed711b5161b55b19c144a", "sha256": "6c5fbb187b29c44527e0aa1341f0b777882a6c7b1999a43119445e751bbf985a" }, "downloads": -1, "filename": "aequitas-0.39.0.tar.gz", "has_sig": false, "md5_digest": "a69a77c4f23ed711b5161b55b19c144a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2109894, "upload_time": "2020-08-23T17:15:06", "upload_time_iso_8601": "2020-08-23T17:15:06.305903Z", "url": "https://files.pythonhosted.org/packages/29/a9/46bb9960d9b284586dfdc9c62d0b860d1020f3506cef5ca05db52218c44f/aequitas-0.39.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.40.0": [ { "comment_text": "", "digests": { "blake2b_256": "ce0d6757b088354d38989dd910562e5453a60340986ee1de6eb0491f761383a5", "md5": "671f8e383fde528d07de2a5716b3a4e5", "sha256": "da92ea68f697b5c2b99712c4df6d28b396fa24c1f62c682b787ec48a549e005d" }, "downloads": -1, "filename": "aequitas-0.40.0-py3-none-any.whl", "has_sig": false, "md5_digest": "671f8e383fde528d07de2a5716b3a4e5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2171179, "upload_time": "2020-08-23T22:15:29", "upload_time_iso_8601": "2020-08-23T22:15:29.102686Z", "url": "https://files.pythonhosted.org/packages/ce/0d/6757b088354d38989dd910562e5453a60340986ee1de6eb0491f761383a5/aequitas-0.40.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "44cd6f091155cc9742919790df73619531a78740b5a5b5407e206ddf40a5445b", "md5": "b32b64079fa026df558ff7bdc5440932", "sha256": "6b0a03a1c0f00f83973e33ba098341980af6a74b4da9323df33c8d3e33a9c129" }, "downloads": -1, "filename": "aequitas-0.40.0.tar.gz", "has_sig": false, "md5_digest": "b32b64079fa026df558ff7bdc5440932", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2116555, "upload_time": "2020-08-23T22:15:57", "upload_time_iso_8601": "2020-08-23T22:15:57.227964Z", "url": "https://files.pythonhosted.org/packages/44/cd/6f091155cc9742919790df73619531a78740b5a5b5407e206ddf40a5445b/aequitas-0.40.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.41.0": [ { "comment_text": "", "digests": { "blake2b_256": "c2ded981229902f51eb52e22e9144a0ab92eabf53a17a96568d858d1bfb479d4", "md5": "541d44aefeef8a99388de4a4aeea1d65", "sha256": "6a18bd6219514050be6f1f9193234d17aa4e47e9250c919a786f77e1e4d7e17f" }, "downloads": -1, "filename": "aequitas-0.41.0-py3-none-any.whl", "has_sig": false, "md5_digest": "541d44aefeef8a99388de4a4aeea1d65", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2171185, "upload_time": "2020-08-23T23:38:51", "upload_time_iso_8601": "2020-08-23T23:38:51.836272Z", "url": "https://files.pythonhosted.org/packages/c2/de/d981229902f51eb52e22e9144a0ab92eabf53a17a96568d858d1bfb479d4/aequitas-0.41.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "478a417242b5362d71b3704d828ad4e5012e9a70a0178a92c950d4df751c8566", "md5": "d7319653240c3ea17207b64240b06a37", "sha256": "a49d60706b8de1f57d5cc1927117280681cbb698aaab33f4a4d7d9b75eee124a" }, "downloads": -1, "filename": "aequitas-0.41.0.tar.gz", "has_sig": false, "md5_digest": "d7319653240c3ea17207b64240b06a37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2116553, "upload_time": "2020-08-23T23:39:19", "upload_time_iso_8601": "2020-08-23T23:39:19.847945Z", "url": "https://files.pythonhosted.org/packages/47/8a/417242b5362d71b3704d828ad4e5012e9a70a0178a92c950d4df751c8566/aequitas-0.41.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.42.0": [ { "comment_text": "", "digests": { "blake2b_256": "0096b5f521d5040b292c08431bdc8b4293492a0b85f176f5e7ac4187455effd9", "md5": "99bca81a44742dd2b8f6c5e4a28d9ba4", "sha256": "60a725a36ff57f62292050db7916afe2273cc72b094ad5b24ed25f558e3ef148" }, "downloads": -1, "filename": "aequitas-0.42.0-py3-none-any.whl", "has_sig": false, "md5_digest": "99bca81a44742dd2b8f6c5e4a28d9ba4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2171825, "upload_time": "2020-12-16T11:48:14", "upload_time_iso_8601": "2020-12-16T11:48:14.503441Z", "url": "https://files.pythonhosted.org/packages/00/96/b5f521d5040b292c08431bdc8b4293492a0b85f176f5e7ac4187455effd9/aequitas-0.42.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "05d80c01096d655d43f4678c0aeabb27128ffb039c5dec4c59bda6de35945175", "md5": "07480a1e5503cf70ad8000f5c163af82", "sha256": "0fed7a5d1a0e492d784510bc800bd02c35ca09c1e46c67c16b7b21581dda7981" }, "downloads": -1, "filename": "aequitas-0.42.0.tar.gz", "has_sig": false, "md5_digest": "07480a1e5503cf70ad8000f5c163af82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2120117, "upload_time": "2020-12-16T11:48:19", "upload_time_iso_8601": "2020-12-16T11:48:19.778226Z", "url": "https://files.pythonhosted.org/packages/05/d8/0c01096d655d43f4678c0aeabb27128ffb039c5dec4c59bda6de35945175/aequitas-0.42.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "blake2b_256": "29c3bde85e8425bef56825f83fe0cd2fced38a3afdd5dd8b72e41ed3d15edf18", "md5": "78563d1a068d1d0f160903f18c85eb40", "sha256": "25724904a3f415d340a50a1ab4e9f33e709561c818c3cc276c857dcacf14e208" }, "downloads": -1, "filename": "aequitas-1.0.0-1-py3-none-any.whl", "has_sig": false, "md5_digest": "78563d1a068d1d0f160903f18c85eb40", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3125994, "upload_time": "2024-01-30T12:30:53", "upload_time_iso_8601": "2024-01-30T12:30:53.356424Z", "url": "https://files.pythonhosted.org/packages/29/c3/bde85e8425bef56825f83fe0cd2fced38a3afdd5dd8b72e41ed3d15edf18/aequitas-1.0.0-1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "3260aacbd64a81a3d6b355aca6d4e9379abbdf4fb6409a923e74c2aa180361ae", "md5": "46821385d598c4ab08a3e831d83f15ec", "sha256": "4edf3850565f6ca385f00ddb40501eae14967984238c669f0b6edc6ff5111704" }, "downloads": -1, "filename": "aequitas-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "46821385d598c4ab08a3e831d83f15ec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3126031, "upload_time": "2024-01-30T12:03:19", "upload_time_iso_8601": "2024-01-30T12:03:19.811064Z", "url": "https://files.pythonhosted.org/packages/32/60/aacbd64a81a3d6b355aca6d4e9379abbdf4fb6409a923e74c2aa180361ae/aequitas-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "208c0dd1a15a6cc3fe6ed969bb545ba9356007a9098be5742f54700eff62b2f6", "md5": "13f99ea4d5af439ee5ac2541eba94787", "sha256": "95d3072dadbfc625324d1cd507dbcf8534abb5ef306a1a2822a6468b92593671" }, "downloads": -1, "filename": "aequitas-1.0.0.tar.gz", "has_sig": false, "md5_digest": "13f99ea4d5af439ee5ac2541eba94787", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3048239, "upload_time": "2024-01-30T12:03:23", "upload_time_iso_8601": "2024-01-30T12:03:23.796252Z", "url": "https://files.pythonhosted.org/packages/20/8c/0dd1a15a6cc3fe6ed969bb545ba9356007a9098be5742f54700eff62b2f6/aequitas-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0.dev0": [ { "comment_text": "", "digests": { "blake2b_256": "dc68580516cafa7c8653eda6b97d10a38c211e34b4834d621ed990e68aef98fa", "md5": "affcdc45cc7f9d9d598d9fe12e11234a", "sha256": "677c1c8ebe9af1c193fdedebeae0079363dfd585dd820f0cfbab74eca1be17a6" }, "downloads": -1, "filename": "aequitas-1.0.0.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "affcdc45cc7f9d9d598d9fe12e11234a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3124147, "upload_time": "2024-01-25T16:35:27", "upload_time_iso_8601": "2024-01-25T16:35:27.495522Z", "url": "https://files.pythonhosted.org/packages/dc/68/580516cafa7c8653eda6b97d10a38c211e34b4834d621ed990e68aef98fa/aequitas-1.0.0.dev0-py3-none-any.whl", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "blake2b_256": "29c3bde85e8425bef56825f83fe0cd2fced38a3afdd5dd8b72e41ed3d15edf18", "md5": "78563d1a068d1d0f160903f18c85eb40", "sha256": "25724904a3f415d340a50a1ab4e9f33e709561c818c3cc276c857dcacf14e208" }, "downloads": -1, "filename": "aequitas-1.0.0-1-py3-none-any.whl", "has_sig": false, "md5_digest": "78563d1a068d1d0f160903f18c85eb40", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3125994, "upload_time": "2024-01-30T12:30:53", "upload_time_iso_8601": "2024-01-30T12:30:53.356424Z", "url": "https://files.pythonhosted.org/packages/29/c3/bde85e8425bef56825f83fe0cd2fced38a3afdd5dd8b72e41ed3d15edf18/aequitas-1.0.0-1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "3260aacbd64a81a3d6b355aca6d4e9379abbdf4fb6409a923e74c2aa180361ae", "md5": "46821385d598c4ab08a3e831d83f15ec", "sha256": "4edf3850565f6ca385f00ddb40501eae14967984238c669f0b6edc6ff5111704" }, "downloads": -1, "filename": "aequitas-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "46821385d598c4ab08a3e831d83f15ec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3126031, "upload_time": "2024-01-30T12:03:19", "upload_time_iso_8601": "2024-01-30T12:03:19.811064Z", "url": "https://files.pythonhosted.org/packages/32/60/aacbd64a81a3d6b355aca6d4e9379abbdf4fb6409a923e74c2aa180361ae/aequitas-1.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "blake2b_256": "208c0dd1a15a6cc3fe6ed969bb545ba9356007a9098be5742f54700eff62b2f6", "md5": "13f99ea4d5af439ee5ac2541eba94787", "sha256": "95d3072dadbfc625324d1cd507dbcf8534abb5ef306a1a2822a6468b92593671" }, "downloads": -1, "filename": "aequitas-1.0.0.tar.gz", "has_sig": false, "md5_digest": "13f99ea4d5af439ee5ac2541eba94787", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3048239, "upload_time": "2024-01-30T12:03:23", "upload_time_iso_8601": "2024-01-30T12:03:23.796252Z", "url": "https://files.pythonhosted.org/packages/20/8c/0dd1a15a6cc3fe6ed969bb545ba9356007a9098be5742f54700eff62b2f6/aequitas-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }