From e53bb993a2b70a1cfb928617272f1d3369e86d5e Mon Sep 17 00:00:00 2001 From: Coding-Dev-Tools Date: Sat, 16 May 2026 20:29:11 -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/configdrift/cli.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index be369d0..6450907 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,6 @@ dependencies = [ "pyyaml>=6.0", "tomli>=2.0.0; python_version < '3.11'", "tomli-w>=1.0.0", - "revenueholdings-license>=0.1.0", ] [project.optional-dependencies] @@ -36,6 +35,7 @@ dev = [ "pytest-cov>=4.0.0", ] toml = ["tomli>=2.0.0", "tomli-w>=1.0.0"] +license = ["revenueholdings-license>=0.1.0"] [project.urls] Homepage = "https://github.com/Coding-Dev-Tools/configdrift" diff --git a/src/configdrift/cli.py b/src/configdrift/cli.py index 9fbf87b..041f228 100644 --- a/src/configdrift/cli.py +++ b/src/configdrift/cli.py @@ -9,7 +9,13 @@ from rich.table import Table from rich.syntax import Syntax -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 configdrift import __version__ from configdrift.loader import load_file