From 1d7cb22d42de90bba34019a80724f2373c1972d0 Mon Sep 17 00:00:00 2001 From: Coding-Dev-Tools Date: Sat, 16 May 2026 20:28:52 -0400 Subject: [PATCH] fix: move revenueholdings-license to optional [license] extra with graceful import fallback - Remove revenueholdings-license>=0.1.0 from required dependencies - Add license optional-dependencies group with revenueholdings-license - Make require_license() import conditional: try/except ImportError - On ImportError, define no-op require_license() and print warning - Fixes CI breakage caused by revenueholdings-license not on PyPI (COM-79, COM-82, COM-83) --- pyproject.toml | 2 +- src/deadcode/cli.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 5284403..2d378e0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,6 @@ classifiers = [ dependencies = [ "click>=8.1.0", "rich>=13.0.0", - "revenueholdings-license>=0.1.0", "pathspec>=0.11.0", "pyyaml>=6.0", ] @@ -36,6 +35,7 @@ dev = [ "pytest>=7.0.0", "pytest-cov>=4.0.0", ] +license = ["revenueholdings-license>=0.1.0"] [project.scripts] deadcode = "deadcode.cli:cli" diff --git a/src/deadcode/cli.py b/src/deadcode/cli.py index 5b19b4b..5d04733 100644 --- a/src/deadcode/cli.py +++ b/src/deadcode/cli.py @@ -10,7 +10,13 @@ import click from rich.console import Console from rich.table import Table -from revenueholdings_license import require_license +try: + from revenueholdings_license import require_license +except ImportError: + import warnings + warnings.warn("revenueholdings-license not installed; license checks skipped", stacklevel=2) + def require_license(product: str) -> None: # type: ignore[misc] + pass from . import __version__ from .config import DeadCodeConfig