From e1973152d37ae01f1714fe789f6027478ea3d13e Mon Sep 17 00:00:00 2001 From: sybrenjansen Date: Mon, 21 Feb 2022 16:32:16 +0100 Subject: [PATCH] Platform specific dependencies are now handled using environment markers as defined in PEP-508 (fixes #30) --- docs/changelog.rst | 8 +++++ setup.py | 75 ++++++++++++++++++++++------------------------ 2 files changed, 44 insertions(+), 39 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index a364d43..2066ed8 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,6 +1,14 @@ Changelog ========= +Dev +--- + +* Platform specific dependencies are now handled using environment markers as defined in PEP-508_ (`#30`_) + +.. _PEP-508: https://www.python.org/dev/peps/pep-0508/#environment-markers +.. _#30: https://github.com/Slimmer-AI/mpire/issues/30 + 2.3.3 ----- diff --git a/setup.py b/setup.py index 8da6f31..7ad5e02 100644 --- a/setup.py +++ b/setup.py @@ -1,62 +1,59 @@ -import platform -import sys from setuptools import find_packages, setup -# For Python < 3.7 we need dataclasses. On Windows, we need pywin32 for CPU pinning -additional_dependencies = [] -if sys.version_info[0] == 3 and sys.version_info[1] < 7: - additional_dependencies.append("dataclasses") -if platform.system() == "Windows": - additional_dependencies.append("pywin32==225") - def read_description(): - with open("README.rst") as file: + with open('README.rst') as file: return file.read() -if __name__ == "__main__": +if __name__ == '__main__': + # For Python < 3.7 we need dataclasses. On Windows, we need pywin32 for CPU pinning setup( - name="mpire", - version="2.3.3", - author="Slimmer AI", - description="A Python package for easy multiprocessing, but faster than multiprocessing", + name='mpire', + version='2.3.3', + author='Slimmer AI', + description='A Python package for easy multiprocessing, but faster than multiprocessing', long_description=read_description(), - url="https://github.com/Slimmer-AI/mpire", - license="MIT", + url='https://github.com/Slimmer-AI/mpire', + license='MIT', packages=find_packages(), - scripts=["bin/mpire-dashboard"], - install_requires=["tqdm"] + additional_dependencies, + scripts=['bin/mpire-dashboard'], + install_requires=['dataclasses; python_version<"3.7"', + 'pywin32==225; platform_system=="Windows"', + 'tqdm'], include_package_data=True, extras_require={ - "dashboard": ["flask"], - "dill": ["multiprocess"], - "docs": ["docutils==0.17.1", - "sphinx==3.2.1", - "sphinx-rtd-theme==0.5.0", - "sphinx-autodoc-typehints==1.11.0", - "sphinxcontrib-images==0.9.2", - "sphinx-versions==1.0.1"], - "testing": ["multiprocess", "numpy"] + additional_dependencies + 'dashboard': ['flask'], + 'dill': ['multiprocess'], + 'docs': ['docutils==0.17.1', + 'sphinx==3.2.1', + 'sphinx-rtd-theme==0.5.0', + 'sphinx-autodoc-typehints==1.11.0', + 'sphinxcontrib-images==0.9.2', + 'sphinx-versions==1.0.1'], + 'testing': ['dataclasses; python_version<"3.7"', + 'multiprocess', + 'numpy', + 'pywin32==225; platform_system=="Windows"'] }, - test_suite="tests", - tests_require=["multiprocess", "numpy"], + test_suite='tests', + tests_require=['multiprocess', 'numpy'], classifiers=[ # Development status - "Development Status :: 5 - Production/Stable", + 'Development Status :: 5 - Production/Stable', # Supported Python versions - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', # License - "License :: OSI Approved :: MIT License", + 'License :: OSI Approved :: MIT License', # Topic - "Topic :: Software Development", - "Topic :: Software Development :: Libraries", - "Topic :: Software Development :: Libraries :: Python Modules" + 'Topic :: Software Development', + 'Topic :: Software Development :: Libraries', + 'Topic :: Software Development :: Libraries :: Python Modules' ] )