From 119d2c9777fd45699dd234ce83cb44da550cefa0 Mon Sep 17 00:00:00 2001 From: Eike Middell Date: Mon, 22 Sep 2025 11:35:00 +0200 Subject: [PATCH 1/2] replaced setup.py with pyproject.toml and setuptools_scm --- pyproject.toml | 43 ++++++++++++ setup.py | 137 -------------------------------------- snirf2bids/__version__.py | 3 - 3 files changed, 43 insertions(+), 140 deletions(-) create mode 100644 pyproject.toml delete mode 100644 setup.py delete mode 100644 snirf2bids/__version__.py diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..f022e1e --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,43 @@ +[build-system] +requires = ["setuptools>=69", "wheel", "setuptools-scm>=8"] +build-backend = "setuptools.build_meta" + +[project] +name = "snirf2bids" +dynamic=["version"] +description = "To convert snirf file to bids format." +readme = "README.md" +requires-python = ">=3.6" +authors = [ + {name="Sreekanth Kura", email="skura@bu.edu"}, + {name="Christian Arthur" }, + {name="Jeonghoon Choi"}, + {name="Jiazhen Liu"}, + {name="Juncheng Zhang"} +] +license = "MIT" +urls = { Homepage = "https://github.com/BUNPC/snirf2bids" } +classifiers = [ + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy" +] + + +dependencies = [ + "numpy", + "setuptools", + "snirf", + "importlib_resources" +] + +[tool.setuptools_scm] +version_file = "snirf2bids/__version__.py" + +[tool.setuptools] +include-package-data = true + +[tool.setuptools.packages.find] +exclude = ["tests", "*.tests", "*.tests.*", "tests.*"] \ No newline at end of file diff --git a/setup.py b/setup.py deleted file mode 100644 index dfd9251..0000000 --- a/setup.py +++ /dev/null @@ -1,137 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Note: To use the 'upload' functionality of this file, you must: -# $ pipenv install twine --dev - -import io -import os -import sys -from shutil import rmtree - -from setuptools import find_packages, setup, Command -from snirf2bids.__version__ import __version__ as VERSION - -# Package meta-data. -NAME = 'snirf2bids' -DESCRIPTION = 'To convert snirf file to bids format.' -URL = 'https://github.com/BUNPC/snirf2bids' -EMAIL = 'skura@bu.edu' -AUTHOR = 'JC' -REQUIRES_PYTHON = '>=3.6.0' - -about = {} -about['__version__'] = VERSION - -# What packages are required for this module to be executed? -REQUIRED = [ - 'numpy', - 'setuptools', - 'snirf', - 'importlib_resources' -] - -# What packages are optional? -EXTRAS = { - # 'fancy feature': ['django'], -} - -# The rest you shouldn't have to touch too much :) -# ------------------------------------------------ -# Except, perhaps the License and Trove Classifiers! -# If you do change the License, remember to change the Trove Classifier for that! - -here = os.path.abspath(os.path.dirname(__file__)) - -# Import the README and use it as the long-description. -# Note: this will only work if 'README.md' is present in your MANIFEST.in file! -try: - with io.open(os.path.join(here, 'README.md'), encoding='utf-8') as f: - long_description = '\n' + f.read() -except FileNotFoundError: - long_description = DESCRIPTION - -# Load the package's __version__.py module as a dictionary. -about = {} -if not VERSION: - project_slug = NAME.lower().replace("-", "_").replace(" ", "_") - with open(os.path.join(here, project_slug, '__version__.py')) as f: - exec(f.read(), about) -else: - about['__version__'] = VERSION - - -class UploadCommand(Command): - """Support setup.py upload.""" - - description = 'Build and publish the package.' - user_options = [] - - @staticmethod - def status(s): - """Prints things in bold.""" - print('\033[1m{0}\033[0m'.format(s)) - - def initialize_options(self): - pass - - def finalize_options(self): - pass - - def run(self): - try: - self.status('Removing previous builds…') - rmtree(os.path.join(here, 'dist')) - except OSError: - pass - - self.status('Building Source and Wheel (universal) distribution…') - os.system('{0} setup.py sdist bdist_wheel --universal'.format(sys.executable)) - - self.status('Uploading the package to PyPI via Twine…') - os.system('twine upload dist/*') - - self.status('Pushing git tags…') - os.system('git tag v{0}'.format(about['__version__'])) - os.system('git push --tags') - - sys.exit() - - -# Where the magic happens: -setup( - name=NAME, - version=about['__version__'], - description=DESCRIPTION, - long_description=long_description, - long_description_content_type='text/markdown', - author=AUTHOR, - author_email=EMAIL, - python_requires=REQUIRES_PYTHON, - url=URL, - packages=find_packages(exclude=["tests", "*.tests", "*.tests.*", "tests.*"]), - # If your package is a single module, use this instead of 'packages': - # py_modules=['snirf2bids'], - - # entry_points={ - # 'console_scripts': ['mycli=mymodule:cli'], - # }, - install_requires=REQUIRED, - extras_require=EXTRAS, - include_package_data=True, - license='MIT', - classifiers=[ - # Trove classifiers - # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers - 'License :: OSI Approved :: MIT License', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: Implementation :: CPython', - 'Programming Language :: Python :: Implementation :: PyPy' - ], - # $ setup.py publish support. - cmdclass={ - 'upload': UploadCommand, - }, -) diff --git a/snirf2bids/__version__.py b/snirf2bids/__version__.py deleted file mode 100644 index 85e81c6..0000000 --- a/snirf2bids/__version__.py +++ /dev/null @@ -1,3 +0,0 @@ -# __version__.py -__VERSION__ = (0, 8, 7) -__version__ = '.'.join(map(str, __VERSION__)) From b20f8deb0302187d527e85b3f360f53515424176 Mon Sep 17 00:00:00 2001 From: Eike Middell Date: Mon, 22 Sep 2025 11:36:43 +0200 Subject: [PATCH 2/2] added dynamic __version__.py to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c16b13b..9493b71 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ __pycache__/ *.log /venv +snirf2bids/__version__.py