From bec388b0f2cfbaeb60d161e8744a337c07f73d4f Mon Sep 17 00:00:00 2001 From: "Adam.Dybbroe" Date: Tue, 5 Nov 2024 09:07:48 +0100 Subject: [PATCH] Use hatchling for project Signed-off-by: Adam.Dybbroe --- pyproject.toml | 122 +++++++++++++++++++++++++++---------------------- 1 file changed, 68 insertions(+), 54 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 4d65394..547088b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,63 +1,77 @@ -[tool.poetry] - name = "ears_iasi_lvl2_format_converter" - version = "0.0.0" # This is just a placeholder for poetry_dynamic_versioning - description = "EARS-IASI level-2 format converter" - classifiers = [ +[project] +name = "ears_iasi_lvl2_format_converter" +dynamic = ["version"] +description = "EARS-IASI level-2 format converter" +authors = [ + { name = "Adam Dybroe", email = "adam.dybroe@smhi.se" } +] +dependencies = [ + "h5py", + "netCDF4", + "shapely", + "scipy", + "pykdtree", + "configobj", + "cftime", + "docutils", + "numpy>=1.21", + "netifaces", + "posttroll", + "pyorbital", + "pyproj", + "pyresample", + "trollsift", + "pillow", +] +readme = "README.md" +requires-python = ">=3.10" +license = { text = "GPLv3" } + +classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Scientific/Engineering" - ] - repository = "" - authors = ["Adam Dybroe "] +] + +[project.scripts] +ears_iasi_lvl2_hdf5_to_netcdf = "ears_iasi_lvl2_format_converter.hdf5_to_netcdf:main" -[tool.poetry.scripts] - ears_iasi_lvl2_hdf5_to_netcdf = "ears_iasi_lvl2_format_converter.hdf5_to_netcdf:main" +[project.urls] +"Documentation" = "https://github.com/adybbroe/iasi_level2/" [build-system] - requires = ["poetry-core >= 1.0.0", "poetry-dynamic-versioning"] - build-backend = "poetry_dynamic_versioning.backend" - -[tool.poetry-dynamic-versioning] - enable = true - style = "pep440" - -[tool.poetry.dependencies] - python = "^3.10" - docutils = "^0.19" - h5py = "^3.8.0" - netCDF4 = "^1.6.3" - netifaces2 = "^0.0.16" - numpy = "^1.24.2" - posttroll = "^1.9.0" - pyorbital = "^1.7.3" - pyproj = "~3.4.1" - pyresample = "^1.26.1" - pillow = "^9.4.0" - trollsift = "^0.5.0" - -[tool.poetry.group.dev.dependencies] - pip = "^23.0" - poetry-dynamic-versioning = "^0.21.4" - -[tool.poetry.group.test.dependencies] - pytest = "^7.2.2" - pytest-cov = "^3.0.0" - -[tool.poetry.group.linting.dependencies] - black = "^23.1.0" - isort = "^5.12.0" - -[tool.pytest.ini_options] - testpaths = ["tests"] - addopts = "-v --cov-report=term-missing --cov-report=term:skip-covered --cov-report=xml:.coverage.xml --cov=./" - log_cli_level = "INFO" - -[tool.black] - line-length = 90 - -[tool.isort] - profile = "black" - line_length = 90 +requires = ["hatchling", "hatch-vcs"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["ears_iasi_lvl2_format_converter"] + +[tool.hatch.version] +source = "vcs" + +[tool.hatch.build.hooks.vcs] +version-file = "ears_iasi_lvl2_format_converter/version.py" + + +[tool.ruff] +line-length = 120 + +[tool.ruff.lint] +# See https://docs.astral.sh/ruff/rules/ +select = ["A", "B", "D", "E", "W", "F", "I", "N", "PT", "S", "TID", "C90", "Q", "T10", "T20"] + +[tool.ruff.lint.per-file-ignores] +"tests/*" = ["S101"] # assert allowed in tests +"ears_iasi_lvl2_format_converter/version.py" = ["D100", "Q000"] # automatically generated by hatch-vcs + +[tool.ruff.lint.pydocstyle] +convention = "google" + +[tool.ruff.lint.mccabe] +max-complexity = 10