From 1c8f804742f3c2e2c7f376c0592185fe79ae9035 Mon Sep 17 00:00:00 2001 From: Quratulain-bilal Date: Fri, 31 Jul 2026 19:38:20 +0500 Subject: [PATCH] fix: narrow exceptions in get_speckit_version() from Exception to specific types Outer catch narrowed to PackageNotFoundError (the only expected failure from importlib.metadata.version). Inner catch narrowed to (OSError, ValueError, KeyError) for file/parse errors. --- src/specify_cli/_assets.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/specify_cli/_assets.py b/src/specify_cli/_assets.py index 31fb9708e6..b6ef512661 100644 --- a/src/specify_cli/_assets.py +++ b/src/specify_cli/_assets.py @@ -105,7 +105,7 @@ def get_speckit_version() -> str: """Get current spec-kit version.""" try: return importlib.metadata.version("specify-cli") - except Exception: + except importlib.metadata.PackageNotFoundError: # Fallback: try reading from pyproject.toml try: import tomllib @@ -114,8 +114,6 @@ def get_speckit_version() -> str: with open(pyproject_path, "rb") as f: data = tomllib.load(f) return data.get("project", {}).get("version", "unknown") - except Exception: - # Intentionally ignore any errors while reading/parsing pyproject.toml. - # If this lookup fails for any reason, we fall back to returning "unknown" below. + except (OSError, ValueError, KeyError): pass return "unknown"