# -*- coding: utf-8 -*-
import sys
import os
from distutils.core import setup
from setuptools import find_packages
#########
# settings
#########
project_var_name = "mlstatpy"
versionPython = "%s.%s" % (sys.version_info.major, sys.version_info.minor)
path = "Lib/site-packages/" + project_var_name
readme = 'README.rst'
history = 'HISTORY.rst'
requirements = None
KEYWORDS = project_var_name + ', Xavier Dupr'
DESCRIPTION = """Lectures about machine learning, mathematics, statistics, programming."""
CLASSIFIERS = [
'Programming Language :: Python :: 3',
'Intended Audience :: Developers',
'Topic :: Scientific/Engineering',
'Topic :: Education',
'License :: OSI Approved :: MIT License',
'Development Status :: 5 - Production/Stable'
]
#######
# data
#######
packages = find_packages('src', exclude='src')
package_dir = {k: "src/" + k.replace(".", "/") for k in packages}
package_data = {}
############
# functions
############
def ask_help():
return "--help" in sys.argv or "--help-commands" in sys.argv
def is_local():
file = os.path.abspath(__file__).replace("\\", "/").lower()
try:
from pyquickhelper.pycode.setup_helper import available_commands_list
except ImportError:
return False
return available_commands_list(sys.argv)
def verbose():
print("---------------------------------")
print("package_dir =", package_dir)
print("packages =", packages)
print("package_data=", package_data)
print("current =", os.path.abspath(os.getcwd()))
print("---------------------------------")
##########
# version
##########
if is_local() and not ask_help():
def write_version():
from pyquickhelper.pycode import write_version_for_setup
return write_version_for_setup(__file__)
write_version()
versiontxt = os.path.join(os.path.dirname(__file__), "version.txt")
if os.path.exists(versiontxt):
with open(versiontxt, "r") as f:
lines = f.readlines()
subversion = "." + lines[0].strip("\r\n ")
if subversion == ".0":
raise Exception("Subversion is wrong: '{0}'.".format(subversion))
else:
raise FileNotFoundError(versiontxt)
else:
# when the module is installed, no commit number is displayed
subversion = ""
if "upload" in sys.argv and not subversion and not ask_help():
# avoid uploading with a wrong subversion number
raise Exception(
"Git version is empty, cannot upload, is_local()={0}".format(is_local()))
##############
# common part
##############
if os.path.exists(readme):
with open(readme, "r", encoding='utf-8-sig') as f:
long_description = f.read()
else:
long_description = ""
if os.path.exists(history):
with open(history, "r", encoding='utf-8-sig') as f:
long_description += f.read()
if "--verbose" in sys.argv:
verbose()
if is_local():
import pyquickhelper
logging_function = pyquickhelper.get_fLOG()
logging_function(OutputPrint=True)
from pyquickhelper.pycode import process_standard_options_for_setup
r = process_standard_options_for_setup(
sys.argv, __file__, project_var_name,
unittest_modules=["pyquickhelper", "jyquickhelper", "mlinsights"],
additional_notebook_path=["pyquickhelper", "pyensae", "cpyquickhelper",
"pymyinstall", "jyquickhelper", "mlinsights"],
additional_local_path=["pyquickhelper", "pyensae", "cpyquickhelper",
"pymyinstall", "jyquickhelper", "mlinsights"],
requirements=["pyquickhelper", "pymyinstall", "cpyquickhelper",
"jyquickhelper", "pyensae", "mlinsights"],
add_htmlhelp=sys.platform.startswith("win"),
coverage_options=dict(omit=["*exclude*.py"]),
github_owner="sdpython",
fLOG=logging_function, covtoken=("ab2da06c-1ff3-4875-97fa-145e594bd7f9", "'_UT_37_std' in outfile"))
if not r and not ({"bdist_msi", "sdist",
"bdist_wheel", "publish", "publish_doc", "register",
"upload_docs", "bdist_wininst", "build_ext"} & set(sys.argv)):
raise Exception("unable to interpret command line: " + str(sys.argv))
else:
r = False
if ask_help():
from pyquickhelper.pycode import process_standard_options_for_setup_help
process_standard_options_for_setup_help(sys.argv)
if not r:
if len(sys.argv) in (1, 2) and sys.argv[-1] in ("--help-commands",):
from pyquickhelper.pycode import process_standard_options_for_setup_help
process_standard_options_for_setup_help(sys.argv)
from pyquickhelper.pycode import clean_readme
from mlstatpy import __version__ as sversion
long_description = clean_readme(long_description)
setup(
name=project_var_name,
version=sversion,
author='Xavier Dupr',
author_email='xavier.dupre@gmail.com',
license="MIT",
url="http://www.xavierdupre.fr/app/mlstatpy/helpsphinx/index.html",
download_url="https://github.com/sdpython/mlstatpy/",
description=DESCRIPTION,
long_description=long_description,
keywords=KEYWORDS,
classifiers=CLASSIFIERS,
packages=packages,
package_dir=package_dir,
package_data=package_data,
setup_requires=["pyquickhelper"],
install_requires=['numpy>=1.16', 'scipy>=1.4',
'mlinsights>=0.2', 'cpyquickhelper>=0.2'],
)