From b1cd1cfbd6646bd8967e35f601b44d5c850f1b8b Mon Sep 17 00:00:00 2001 From: Lars Pastewka Date: Sun, 7 Dec 2025 23:25:46 +0100 Subject: [PATCH] BUILD: Switched build system to flit --- dtool_cli/__init__.py | 25 ++++++++++++++++++++++++- pyproject.toml | 43 +++++++++++++++++++++++++++++++++++++++++++ setup.cfg | 10 ---------- setup.py | 27 --------------------------- 4 files changed, 67 insertions(+), 38 deletions(-) create mode 100644 pyproject.toml delete mode 100644 setup.cfg delete mode 100644 setup.py diff --git a/dtool_cli/__init__.py b/dtool_cli/__init__.py index 785b88d..971d124 100644 --- a/dtool_cli/__init__.py +++ b/dtool_cli/__init__.py @@ -1,3 +1,26 @@ """dtool_cli module.""" -__version__ = "0.7.1" +import logging + +logger = logging.getLogger(__name__) + +# workaround for diverging python versions: +try: + from importlib.metadata import version, PackageNotFoundError + logger.debug("imported version, PackageNotFoundError from importlib.metadata") +except ModuleNotFoundError: + from importlib_metadata import version, PackageNotFoundError + logger.debug("imported version, PackageNotFoundError from importlib_metadata") + +# first, try to determine dynamic version at runtime +try: + __version__ = version(__name__) + logger.debug("Determined version %s via importlib_metadata.version", __version__) +except PackageNotFoundError: + # if that fails, check for static version file written by setuptools_scm + try: + from .version import version as __version__ + logger.debug("Determined version %s from autogenerated dtool_cli/version.py", __version__) + except Exception as e: + logger.debug("All efforts to determine version failed: %s", e) + __version__ = None diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..4f19f1d --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,43 @@ +[build-system] +requires = ["flit_scm"] +build-backend = "flit_scm:buildapi" + +[project] +name = "dtool-cli" +description = "Data management command line tool: dtool." +readme = "README.rst" +license = {text = "MIT"} +authors = [ + {name = "Tjelvar Olsson", email = "tjelvar.olsson@gmail.com"} +] +dynamic = ["version"] +requires-python = ">=3.8" +dependencies = [ + "click", + "click-plugins", + "dtoolcore>=2", +] + +[project.optional-dependencies] +test = [ + "pytest", + "pytest-cov", +] + +[project.urls] +Repository = "https://github.com/jic-dtool/dtool-cli" + +[project.scripts] +dtool = "dtool_cli.cli:dtool" + +[tool.flit.module] +name = "dtool_cli" + +[tool.setuptools_scm] +version_scheme = "guess-next-dev" +local_scheme = "no-local-version" +write_to = "dtool_cli/version.py" + +[tool.pytest.ini_options] +testpaths = ["tests"] +addopts = "--cov=dtool_cli --cov-report=term-missing" diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 686a3d2..0000000 --- a/setup.cfg +++ /dev/null @@ -1,10 +0,0 @@ -[flake8] -exclude=env*,.tox,.git,*.egg,build,docs - -[tool:pytest] -testpaths = tests -addopts = --cov=dtool_cli -#addopts = -x --pdb - -[cov:run] -source = dtool_cli diff --git a/setup.py b/setup.py deleted file mode 100644 index 4d57761..0000000 --- a/setup.py +++ /dev/null @@ -1,27 +0,0 @@ -from setuptools import setup - -url = "https://github.com/jic-dtool/dtool-cli" -version = "0.7.1" -readme = open('README.rst').read() - -setup( - name="dtool-cli", - packages=["dtool_cli"], - version=version, - description="Data management command line tool: dtool.", - long_description=readme, - include_package_data=True, - author="Tjelvar Olsson", - author_email="tjelvar.olsson@gmail.com", - url=url, - install_requires=[ - "click", - "click-plugins", - "dtoolcore>=2", - ], - entry_points={ - 'console_scripts': ['dtool=dtool_cli.cli:dtool'], - }, - download_url="{}/tarball/{}".format(url, version), - license="MIT" -)