import os import sys from setuptools import setup, find_packages PACKAGE_NAME = 'common_primitives' MINIMUM_PYTHON_VERSION = 3, 6 def check_python_version(): """Exit when the Python version is too low.""" if sys.version_info < MINIMUM_PYTHON_VERSION: sys.exit("Python {}.{}+ is required.".format(*MINIMUM_PYTHON_VERSION)) def read_package_variable(key): """Read the value of a variable from the package without importing.""" module_path = os.path.join(PACKAGE_NAME, '__init__.py') with open(module_path) as module: for line in module: parts = line.strip().split(' ') if parts and parts[0] == key: return parts[-1].strip("'") raise KeyError("'{0}' not found in '{1}'".format(key, module_path)) def read_readme(): with open(os.path.join(os.path.dirname(__file__), 'README.md'), encoding='utf8') as file: return file.read() def read_entry_points(): with open('entry_points.ini') as entry_points: return entry_points.read() check_python_version() version = read_package_variable('__version__') setup( name=PACKAGE_NAME, version=version, description='D3M common primitives', author=read_package_variable('__author__'), packages=find_packages(exclude=['contrib', 'docs', 'tests*']), data_files=[('./', ['./entry_points.ini'])], install_requires=[ 'd3m', 'pandas', 'scikit-learn', 'numpy', 'lightgbm>=2.2.2,<=2.3.0', 'opencv-python-headless<=4.1.1.26,>=4.1', 'imageio>=2.3.0,<=2.6.0', 'pillow==6.2.1', 'xgboost>=0.81,<=0.90', ], entry_points=read_entry_points(), url='https://gitlab.com/datadrivendiscovery/common-primitives', long_description=read_readme(), long_description_content_type='text/markdown', license='Apache-2.0', classifiers=[ 'License :: OSI Approved :: Apache Software License', ], )