From ebf1d7312a5106d800c3f86cb74a2c211ac54d03 Mon Sep 17 00:00:00 2001 From: Daniel McCloy Date: Fri, 8 Oct 2021 13:49:25 -0500 Subject: [PATCH 1/4] tweak requirements constraint --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index ef0e8aee69b..b43644616d2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ scipy>=1.1.0 matplotlib pyqt5>=5.10,<5.14; platform_system == "Darwin" pyqt5>=5.10,!=5.15.2,!=5.15.3; platform_system == "Linux" -pyqt5>=5.10,!=5.15.3; platform_system != "Linux" and platform_system != "Darwin" +pyqt5>=5.10,!=5.15.3; platform_system == "Windows" pyqt5-sip sip scikit-learn From 088d3b5214507528e980b25944f3c9b9eba64bdc Mon Sep 17 00:00:00 2001 From: Daniel McCloy Date: Fri, 8 Oct 2021 13:50:53 -0500 Subject: [PATCH 2/4] add optional requires to setup.py --- setup.py | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/setup.py b/setup.py index b59b4595397..3e6268c8573 100644 --- a/setup.py +++ b/setup.py @@ -5,9 +5,22 @@ import os import os.path as op +import re from setuptools import setup + +def parse_requirements_file(fname): + requirements = list() + with open(fname, 'r') as fid: + for line in fid: + req = line.strip() + if req.startswith('#'): + continue + requirements.append(req) + return requirements + + # get the version (don't import mne here, so dependencies are not needed) version = None with open(op.join('mne', '_version.py'), 'r') as fid: @@ -49,14 +62,21 @@ def package_tree(pkgroot): long_description = fid.read() hard_dependencies = ('numpy', 'scipy') + data_dependencies = ('pooch', 'tqdm') + full_install_requires = parse_requirements_file('requirements.txt') install_requires = list() - with open('requirements.txt', 'r') as fid: - for line in fid: - req = line.strip() - for hard_dep in hard_dependencies: - if req.startswith(hard_dep): - install_requires.append(req) + data_requires = list() + for req in full_install_requires: + pkg = re.split(r'[<>=!;]', req, maxsplit=1)[0] + if pkg in hard_dependencies: + install_requires.append(req) + full_install_requires.remove(req) + elif pkg in data_dependencies: + data_requires.append(req) # but don't remove from full + doc_requires = parse_requirements_file('requirements_doc.txt') + test_requires = (parse_requirements_file('requirements_testing.txt') + + parse_requirements_file('requirements_testing_extra.txt')) setup(name=DISTNAME, maintainer=MAINTAINER, include_package_data=True, @@ -90,6 +110,12 @@ def package_tree(pkgroot): platforms='any', python_requires='>=3.7', install_requires=install_requires, + extras_require={ + 'doc': doc_requires, + 'data': data_requires, + 'test': test_requires, + 'full': full_install_requires + }, packages=package_tree('mne'), package_data={'mne': [ op.join('data', 'eegbci_checksums.txt'), From 9f5a2917aa6989847d2f9c4217c27c8f6fd82de3 Mon Sep 17 00:00:00 2001 From: Daniel McCloy Date: Fri, 8 Oct 2021 15:47:26 -0500 Subject: [PATCH 3/4] fixes --- setup.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 3e6268c8573..10fcf682ed1 100644 --- a/setup.py +++ b/setup.py @@ -17,6 +17,8 @@ def parse_requirements_file(fname): req = line.strip() if req.startswith('#'): continue + # strip end-of-line comments + req = req.split('#', maxsplit=1)[0].strip() requirements.append(req) return requirements @@ -70,9 +72,10 @@ def package_tree(pkgroot): pkg = re.split(r'[<>=!;]', req, maxsplit=1)[0] if pkg in hard_dependencies: install_requires.append(req) - full_install_requires.remove(req) elif pkg in data_dependencies: - data_requires.append(req) # but don't remove from full + data_requires.append(req) + for req in install_requires: + full_install_requires.remove(req) doc_requires = parse_requirements_file('requirements_doc.txt') test_requires = (parse_requirements_file('requirements_testing.txt') + From 0c1c332a68be072e06113e44fde5465fb6348e6e Mon Sep 17 00:00:00 2001 From: Daniel McCloy Date: Fri, 8 Oct 2021 15:47:43 -0500 Subject: [PATCH 4/4] simpler [ci skip] --- setup.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 10fcf682ed1..9f72663657b 100644 --- a/setup.py +++ b/setup.py @@ -34,10 +34,8 @@ def parse_requirements_file(fname): raise RuntimeError('Could not determine version') -descr = """MNE python project for MEG and EEG data analysis.""" - DISTNAME = 'mne' -DESCRIPTION = descr +DESCRIPTION = 'MNE-Python project for MEG and EEG data analysis.' MAINTAINER = 'Alexandre Gramfort' MAINTAINER_EMAIL = 'alexandre.gramfort@inria.fr' URL = 'https://mne.tools/dev/'