--- a +++ b/setup.py @@ -0,0 +1,73 @@ +import sys +if sys.version_info < (3,): + print('Python 2 is not supported by CVD-risk-scores.') + sys.exit(-1) +if sys.platform == 'win32' and sys.maxsize.bit_length() == 31: + print('32-bit Windows Python runtime is not supported. Please switch to 64-bit Python.') + sys.exit(-1) + +import pathlib +import traceback +import logging +import platform +from setuptools import setup, find_packages + +# make sure python system version is at leaast 3.7.2 +python_min_v = (3, 7, 2) +python_min_v_str = '.'.join(map(str, python_min_v)) +if sys.version_info < python_min_v: + logging.error("Python version required is at least {}. Currently you have {}.".format(python_min_v_str, platform.python_version())) + +# determine semantic release version +DIR = pathlib.Path(__file__).parent +SOURCE_DIR = "src" +PROJECT_NAME = "cvd_risk_scores" + +def main(): + long_description = (DIR / 'README.md').read_text() + + try: + changelog = (DIR / 'CHANGELOG.md').read_text() + __version__, *_ = re.findall(r"\[([0-9.]+)]", changelog) + except (FileNotFoundError, ValueError) as ex: + __version__ = '1.0.2' + logging.error(ex) + logging.error(traceback.print_exc()) + logging.warning(f'Unable to get semantic release version. Setting version to {__version__}.') + + setup( + name=PROJECT_NAME, + version=__version__, + description='A Python package for computing cardiovascular disease risk using clinically validated models.', + long_description=long_description, + long_description_content_type='text/markdown', + author='francesco-pisu', + author_email='fra.pisu1@gmail.com', + url='https://github.com/francescopisu/CVD-risk-scores', + license='MIT', + python_requires='>=3.7,<3.10', + install_requires=[ + 'numpy>=1.0.0,<2.0.0', + 'pandas>=1.0.0,<2.0.0', + 'typing-extensions>=3.0.0,<10.0.0', + 'pydantic>=1.0.0,<10.0.0' + ], + package_dir={f'{PROJECT_NAME}': f'{SOURCE_DIR}/{PROJECT_NAME}'}, + packages=find_packages(where=f'{SOURCE_DIR}', exclude=['tests']), + # package_data={f'{PROJECT_NAME}': ['data/*.json']}, + include_package_data=True, + classifiers=[ + 'Development Status :: 2 - Pre-Alpha', + 'Intended Audience :: Science/Research', + 'Topic :: Scientific/Engineering :: Medical Science Apps.', + 'License :: OSI Approved :: MIT License', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + ] + ) + + +if __name__ == "__main__": + main() \ No newline at end of file