Skip to content

Commit

Permalink
Include Extras in setup.py (#153)
Browse files Browse the repository at this point in the history
* add extras to setup and include version of package

* Update requirements

* Update setup.py

* Update version and license
  • Loading branch information
sgpjesus authored Jan 30, 2024
1 parent 2369832 commit 71ddcd3
Show file tree
Hide file tree
Showing 12 changed files with 92 additions and 66 deletions.
1 change: 0 additions & 1 deletion requirement/dev.txt

This file was deleted.

5 changes: 5 additions & 0 deletions requirements/cli.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
SQLAlchemy>=1.1.1
tabulate==0.8.2
xhtml2pdf==0.2.2
ohio>=0.2.0
markdown2==2.3.5
7 changes: 0 additions & 7 deletions requirement/main.txt → requirements/main.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
ohio>=0.2.0
Flask==0.12.2
Flask-Bootstrap==3.3.7.1
markdown2==2.3.5
matplotlib>=3.0.3
pandas>=0.24.1
pyyaml>=5.1
SQLAlchemy>=1.1.1
tabulate==0.8.2
xhtml2pdf==0.2.2
seaborn>=0.9.0
altair>=4.1.0
millify==0.1.1
Expand Down
File renamed without changes.
2 changes: 2 additions & 0 deletions requirements/webapp.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Flask==0.12.2
Flask-Bootstrap==3.3.7.1
80 changes: 48 additions & 32 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,20 @@

ROOT_PATH = Path(__file__).parent

LICENSE_PATH = ROOT_PATH / 'LICENSE'
LICENSE_PATH = ROOT_PATH / "LICENSE"

README_PATH = ROOT_PATH / 'README.md'
README_PATH = ROOT_PATH / "README.md"

REQUIREMENTS_PATH = ROOT_PATH / 'requirement' / 'main.txt'
REQUIREMENTS = {
f"{req}": ROOT_PATH / "requirements" / f"{req}.txt"
for req in ["main", "webapp", "cli"]
}

#with open(README_PATH, encoding='utf-8') as f:
# long_description = f.read()
with open(ROOT_PATH / "src/aequitas/version.py", "r") as version_file:
version = re.search(r'__version__ = "(.*?)"', version_file.read()).group(1)

long_description = README_PATH.read_text()

long_description = """
Aequitas is an open-source bias audit toolkit for data scientists, machine learning researchers, and policymakers to audit machine learning models for discrimination and bias, and to make informed and equitable decisions around developing and deploying predictive tools."""

def stream_requirements(fd):
"""For a given requirements file descriptor, generate lines of
Expand All @@ -24,43 +27,56 @@ def stream_requirements(fd):
"""
for line in fd:
cleaned = re.sub(r'#.*$', '', line).strip()
if cleaned and not cleaned.startswith('-r'):
cleaned = re.sub(r"#.*$", "", line).strip()
if cleaned and not cleaned.startswith("-r"):
yield cleaned


with REQUIREMENTS_PATH.open() as requirements_file:
REQUIREMENTS = list(stream_requirements(requirements_file))

for req, path in REQUIREMENTS.items():
with path.open() as requirements_file:
REQUIREMENTS[req] = list(stream_requirements(requirements_file))

setup(
name='aequitas',
version='0.41.0',
name="aequitas",
version=version,
description="The bias and fairness audit toolkit.",
long_description=long_description,
long_description_content_type='text/markdown',
long_description_content_type="text/markdown",
author="Center for Data Science and Public Policy",
author_email='datascifellows@gmail.com',
url='https://github.com/dssg/aequitas',
packages=find_packages('src', exclude=['tests', 'tests.*']),
package_dir={'': 'src'},
author_email="datascifellows@gmail.com",
url="https://github.com/dssg/aequitas",
packages=find_packages("src", exclude=["tests", "tests.*"]),
package_dir={"": "src"},
include_package_data=True,
package_data={"": ["flow/plots/pareto/template.html", "flow/plots/pareto/js/dist/fairAutoML.js"]},
install_requires=REQUIREMENTS,
license='https://github.com/dssg/aequitas/blob/master/LICENSE',
package_data={
"": [
"flow/plots/pareto/template.html",
"flow/plots/pareto/js/dist/fairAutoML.js",
]
},
install_requires=REQUIREMENTS["main"],
extras_require={
"webapp": REQUIREMENTS["webapp"],
"cli": REQUIREMENTS["cli"],
},
license="MIT",
zip_safe=False,
keywords='fairness bias aequitas',
keywords="fairness bias aequitas",
classifiers=[
'Development Status :: 2 - Pre-Alpha',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Natural Language :: English',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
],
entry_points={
'console_scripts': [
'aequitas-report=aequitas_cli.aequitas_audit:main',
"console_scripts": [
"aequitas-report=aequitas_cli.aequitas_audit:main",
],
}
},
)
4 changes: 4 additions & 0 deletions src/aequitas/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from .version import __version__
from .audit import Audit

__all__ = ["__version__", "Audit"]
3 changes: 1 addition & 2 deletions src/aequitas/flow/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from ._version import __version__
from .experiment import Experiment

__all__ = ["__version__", "Experiment"]
__all__ = ["Experiment"]
1 change: 0 additions & 1 deletion src/aequitas/flow/_version.py

This file was deleted.

1 change: 1 addition & 0 deletions src/aequitas/version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
__version__ = "1.0.0"
42 changes: 23 additions & 19 deletions src/aequitas_cli/aequitas_audit.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,26 @@
import argparse
import logging
from sys import exit

import pandas as pd

from aequitas.bias import Bias
from aequitas.fairness import Fairness
from aequitas.group import Group
from aequitas.plotting import Plot
from aequitas.preprocessing import preprocess_input_df
from .utils.configs_loader import Configs
from .utils.io import get_csv_data
from .utils.io import get_db_data
from .utils.io import get_engine
from .utils.io import push_tocsv
from .utils.io import push_todb
from .utils.io import push_topdf
from .utils.report import audit_report_markdown
try:
import argparse
import logging
from sys import exit

import pandas as pd

from aequitas.bias import Bias
from aequitas.fairness import Fairness
from aequitas.group import Group
from aequitas.plotting import Plot
from aequitas.preprocessing import preprocess_input_df
from .utils.configs_loader import Configs
from .utils.io import get_csv_data
from .utils.io import get_db_data
from .utils.io import get_engine
from .utils.io import push_tocsv
from .utils.io import push_todb
from .utils.io import push_topdf
from .utils.report import audit_report_markdown

except ImportError:
raise ImportError('Missing dependencies. Please run `pip install "aequitas[cli]"`')

__author__ = "Rayid Ghani, Pedro Saleiro <saleiro@uchicago.edu>, Loren Hinkson"
__copyright__ = "Copyright \xa9 2018. The University of Chicago. All Rights Reserved."
Expand Down
12 changes: 8 additions & 4 deletions src/aequitas_webapp/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
from flask import Flask
from flask_bootstrap import Bootstrap

try:
from flask import Flask
from flask_bootstrap import Bootstrap
except ImportError:
raise ImportError(
'Missing dependencies. Please run `pip install "aequitas[webapp]"`'
)

app = Flask(__name__)
app.secret_key = 'super secret key'
app.secret_key = "super secret key"
Bootstrap(app)

0 comments on commit 71ddcd3

Please sign in to comment.