Select Git revision
setup.py 2.96 KiB
import os
import subprocess
from io import open
from setuptools import find_packages, setup
VERSION_MAJOR = 0
VERSION_MINOR = 0
VERSION_PATCH = 1
SEMVER_STRING = f"v{VERSION_MAJOR:d}.{VERSION_MINOR:d}.{VERSION_PATCH:d}"
PROJECT_NAME = os.getenv("PYPI_PACKAGE_NAME", "WHY")
PROJECT_DESCRIPTION = ("Explainable AI system")
PROJECT_URL = "https://gitlab.cci.drexel.edu/pjm363/why-senior-project"
AUTHOR_NAME = "Philip Monaco, Abdullah Shah, Ibrahim Elsaid, Jashanpreet Singh, William Lu, Songheng Li"
MAINTAINER_NAME = "Philip Monaco, Abdullah Shah, Ibrahim Elsaid, Jashanpreet Singh, William Lu, Songheng Li"
all_requires = []
core_requires = [
"numpy>=1.21",
"pandas>=1.3.5",
"bokeh>=2.4.2",
"matplotlib>=3.5.0",
"scikit-learn>=1.0.2"
]
lint_requires = [
"black==21.12b0",
"isort==5.10.1",
"flake8==4.0.1",
"mypy"
]
docs_requires = [
"Sphinx",
"sphinx-gallery",
"sphinx-rtd-theme",
"m2r2"
]
all_requires = [
*core_requires,
*lint_requires,
docs_requires,
]
requires_map={
"lint": lint_requires,
"docs": docs_requires,
"all": all_requires,
}
def _minimal_ext_cmd(cmd):
env = {}
for k in ["SYSTEMROOT", "PATH", "HOME"]:
v = os.environ.get(k)
if v is not None:
env[k] = v
env["Language"] = "C"
env["LANG"] = "C"
env["LV_ALL"] = "C"
out = subprocess.check_output(cmd, stderr=subprocess.STDOUT, env=env)
return out
def get_git_hash():
try:
out = _minimal_ext_cmd(["git", "rev-parse", "HEAD"])
git_rev = out.strip().decode("ascii")
except (subprocess.SUbprocessError, OSError):
git_rev = "Unknown"
if not git_rev:
git_rev = "Unknown"
return git_rev
def is_tagged_released():
try:
out = _minimal_ext_cmd(["git", "describe", "--exact-match", "--tags", "HEAD"])
tag_name = out.strip().decode("ascii")
is_tagged_release = tag_name.startswith(SEMVER_STRING)
except (subprocess.SubprocessError, OSError):
is_tagged_release = False
return is_tagged_release
def render_version_string():
version_string = SEMVER_STRING
if os.path.exists(".git") and not is_tagged_released():
version_string += ".dev0+" + get_git_hash()[:7]
return version_string
here = os.path.abspath(os.path.split(__file__)[0])
with open(os.path.join(here, "README.md"), encoding="utf-8") as f:
long_description = f.read()
setup(
name=PROJECT_NAME,
version=render_version_string(),
author=AUTHOR_NAME,
url=PROJECT_URL,
description=PROJECT_DESCRIPTION,
long_description=long_description,
long_description_content_type="text/markdown",
license="LICENSE.md",
packages=find_packages(where="src"),
package_dir={"":"src"},
python_requires=">=3.8",
install_requires=core_requires,
extras_require=requires_map,
include_package_data=True,
zip_safe=False,
package_data={"src": ["py.typed"]},
entry_points={},
)