From 5417d441c19e3a34e6fa544ce9c6161ea9481eb3 Mon Sep 17 00:00:00 2001 From: Quratulain-bilal Date: Tue, 4 Aug 2026 01:23:17 +0500 Subject: [PATCH] fix: replace print() with logger.warning() in extensions catalog warnings Print statements to stderr are not appropriate for library code that may be consumed by tools or tests. Replaced with logger.warning() for proper log management. Removed unused local sys imports. --- src/specify_cli/extensions/__init__.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/specify_cli/extensions/__init__.py b/src/specify_cli/extensions/__init__.py index 6d78354809..aee112c332 100644 --- a/src/specify_cli/extensions/__init__.py +++ b/src/specify_cli/extensions/__init__.py @@ -12,6 +12,7 @@ import errno import hashlib import json +import logging import os import re import shutil @@ -45,6 +46,8 @@ from ..catalogs import CatalogStackBase from ..shared_infra import verify_archive_sha256 +logger = logging.getLogger(__name__) + _FALLBACK_CORE_COMMAND_NAMES = frozenset( { "analyze", @@ -3508,18 +3511,15 @@ def get_active_catalogs(self) -> List[CatalogEntry]: Raises: ValidationError: If a catalog URL is invalid """ - import sys - # 1. SPECKIT_CATALOG_URL env var replaces all defaults for backward compat if env_value := os.environ.get("SPECKIT_CATALOG_URL"): catalog_url = env_value.strip() self._validate_catalog_url(catalog_url) if catalog_url != self.DEFAULT_CATALOG_URL: if not getattr(self, "_non_default_catalog_warning_shown", False): - print( - "Warning: Using non-default extension catalog. " + logger.warning( + "Using non-default extension catalog. " "Only use catalogs from sources you trust.", - file=sys.stderr, ) self._non_default_catalog_warning_shown = True return [ @@ -3743,8 +3743,6 @@ def _get_merged_extensions( Raises: ExtensionError: If all catalogs fail to fetch """ - import sys - active_catalogs = self.get_active_catalogs() merged: Dict[str, Dict[str, Any]] = {} any_success = False @@ -3754,9 +3752,8 @@ def _get_merged_extensions( catalog_data = self._fetch_single_catalog(catalog_entry, force_refresh) any_success = True except ExtensionError as e: - print( - f"Warning: Could not fetch catalog '{catalog_entry.name}': {e}", - file=sys.stderr, + logger.warning( + "Could not fetch catalog '%s': %s", catalog_entry.name, e, ) continue