From 167945e677466d69a3e803f8b281d03632195e1d Mon Sep 17 00:00:00 2001 From: Wei Ji <23487320+weiji14@users.noreply.github.com> Date: Sat, 29 Jun 2024 10:41:10 +1200 Subject: [PATCH] Migrate from setup.cfg to pyproject.toml (#48) * Migrate project metadata from setup.py to pyproject.toml Define project metadata in pyproject.toml! Required dependencies are now listed under the [project] section instead of in requirements.txt. Versioneer config has also been moved from setup.cfg to [tool.versioneer]. * Fix check on sdist version number Package name is cupy_xarray, not cupy-xarray. * Include optional test dependencies in pyproject.toml Remove requirements_test.txt file, moving the test dependencies to pyproject.toml instead. Also updated MANIFEST.in to remove the requirements.txt entry. * Keep setup.py with versioneer.get_version() and .get_cmdclass() Still need these two lines so that the sdist won't have a 0.0.0 version. Xref https://github.com/python-versioneer/python-versioneer/blob/0.29/INSTALL.md#common-steps --- .github/workflows/pypi-release.yaml | 2 +- MANIFEST.in | 2 -- pyproject.toml | 35 +++++++++++++++++++++++++++++ requirements.txt | 2 -- requirements_test.txt | 2 -- setup.cfg | 7 ------ setup.py | 26 +++++---------------- 7 files changed, 41 insertions(+), 35 deletions(-) delete mode 100644 requirements.txt delete mode 100644 requirements_test.txt delete mode 100644 setup.cfg diff --git a/.github/workflows/pypi-release.yaml b/.github/workflows/pypi-release.yaml index 8328ddb..f1f7870 100644 --- a/.github/workflows/pypi-release.yaml +++ b/.github/workflows/pypi-release.yaml @@ -45,7 +45,7 @@ jobs: run: | python -m twine check dist/* pwd - if [ -f dist/cupy-xarray-0.0.0.tar.gz ]; then + if [ -f dist/cupy_xarray-0.0.0.tar.gz ]; then echo "❌ INVALID VERSION NUMBER" exit 1 else diff --git a/MANIFEST.in b/MANIFEST.in index 58c1a3e..e0f649d 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,11 +1,9 @@ include versioneer.py include cupy_xarray/_version.py -include requirements.txt include LICENSE include README.md include pyproject.toml prune cupy_xarray/tests* - recursive-exclude * __pycache__ recursive-exclude * *.py[co] diff --git a/pyproject.toml b/pyproject.toml index ddc4a1e..be870da 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,30 @@ +[build-system] +requires = ["setuptools", "versioneer[toml]"] +build-backend = "setuptools.build_meta" + +[project] +name = "cupy-xarray" +description = "Interface for using cupy in xarray, providing convenience accessors." +authors = [{name = "cupy-xarray developers"}] +license = {text = "Apache License"} +readme = "README.md" +requires-python = ">=3.8" +classifiers = [ + "Programming Language :: Python :: 3", + "Operating System :: OS Independent", +] +dynamic = ["version"] +dependencies = [ + "cupy", + "xarray>=2024.02.0", +] + +[project.optional-dependencies] +test = [ + "dask", + "pytest", +] + [tool.ruff] line-length = 100 # E501 (line-too-long) exclude = [ @@ -17,3 +44,11 @@ select = [ "SIM", # flake8-simplify "W", # pycodestyle warnings ] + +[tool.versioneer] +VCS = "git" +style = "pep440" +versionfile_source = "cupy_xarray/_version.py" +versionfile_build = "cupy_xarray/_version.py" +tag_prefix = "" +parentdir_prefix = "" diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 8a00180..0000000 --- a/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -cupy -xarray>=2024.02.0 diff --git a/requirements_test.txt b/requirements_test.txt deleted file mode 100644 index 78d2fa8..0000000 --- a/requirements_test.txt +++ /dev/null @@ -1,2 +0,0 @@ -pytest -dask diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index d20de6f..0000000 --- a/setup.cfg +++ /dev/null @@ -1,7 +0,0 @@ -[versioneer] -VCS = git -style = pep440 -versionfile_source = cupy_xarray/_version.py -versionfile_build = cupy_xarray/_version.py -tag_prefix = -parentdir_prefix = diff --git a/setup.py b/setup.py index bd994f4..3000451 100644 --- a/setup.py +++ b/setup.py @@ -2,24 +2,8 @@ import versioneer -with open("README.md", encoding="utf-8") as fh: - long_description = fh.read() -with open("requirements.txt") as fh: - requirements = [line.strip() for line in fh] - -setuptools.setup( - name="cupy-xarray", - version=versioneer.get_version(), - cmdclass=versioneer.get_cmdclass(), - author="cupy-xarray developers", - description="Interface for using cupy in xarray, providing convenience accessors.", - long_description=long_description, - long_description_content_type="text/markdown", - packages=setuptools.find_packages(), - classifiers=[ - "Programming Language :: Python :: 3", - "Operating System :: OS Independent", - ], - python_requires=">=3.7", - install_requires=requirements, -) +if __name__ == "__main__": + setuptools.setup( + version=versioneer.get_version(), + cmdclass=versioneer.get_cmdclass(), + )