From 2bdf3b13d25704969310b3dbbd8530137aa4898f Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 12 Jan 2025 19:41:37 +0100 Subject: [PATCH] Replace setup.py with pyproject.toml (PEP621) This is required for using uv I'm afraid, but the changes should increase the QoL of the life, since we can rely on a no-code approach to define the package. This is based on https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html --- pyproject.toml | 44 +++++++++++++++++++++++++++++++++++++++--- setup.py | 52 -------------------------------------------------- 2 files changed, 41 insertions(+), 55 deletions(-) delete mode 100644 setup.py diff --git a/pyproject.toml b/pyproject.toml index 1a1b551..8ed0290 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,9 +1,47 @@ [build-system] -requires = [ - "setuptools", - "wheel", +requires = ["setuptools"] + +[project] +name = "asteroid-filterbanks" +authors = [ + {name = "Manuel Pariente", email="pariente.mnl@gmail.com"} +] +description = "Asteroid's filterbanks" +license = {text = "MIT"} +classifiers = [ + "Development Status :: 4 - Beta", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", +] +dependencies = [ + "numpy", + "torch>=1.8.0", + "typing-extensions", +] + +[project.optional-dependencies] +all = [ + "librosa", + "scipy", ] +dynamic = [ + "readme", + "version", +] + +[tools.setuptools.dynamic] +readme = {file = ["README.md"], content-type = "text/markdown"} +version = {attr = "asteroid_filterbanks.__version__"} + +[project.urls] +changelog = "https://github.com/asteroid-team/asteroid-filterbanks/releases" +homepage = "https://github.com/asteroid-team/asteroid-filterbanks" + [tool.black] # https://github.com/psf/black line-length = 100 diff --git a/setup.py b/setup.py deleted file mode 100644 index 261dd7b..0000000 --- a/setup.py +++ /dev/null @@ -1,52 +0,0 @@ -import codecs -import os -import re - -from setuptools import setup, find_packages - -with open("README.md", encoding="utf-8") as fh: - long_description = fh.read() - -here = os.path.abspath(os.path.dirname(__file__)) - - -def read(*parts): - with codecs.open(os.path.join(here, *parts), "r") as fp: - return fp.read() - - -def find_version(*file_paths): - version_file = read(*file_paths) - version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", version_file, re.M) - if version_match: - return version_match.group(1) - raise RuntimeError("Unable to find version string.") - - -setup( - name="asteroid-filterbanks", - version=find_version("asteroid_filterbanks", "__init__.py"), - author="Manuel Pariente", - author_email="manuel.pariente@loria.fr", - url="https://github.com/asteroid-team/asteroid-filterbanks", - description="Asteroid's filterbanks", - long_description=long_description, - long_description_content_type="text/markdown", - license="MIT", - python_requires=">=3.6", - install_requires=["numpy", "torch>=1.8.0", "typing_extensions"], - extras_require={ - "all": ["librosa", "scipy"], - }, - packages=find_packages(), - include_package_data=True, - classifiers=[ - "Development Status :: 4 - Beta", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "License :: OSI Approved :: MIT License", - "Operating System :: OS Independent", - ], -)