From cde1f3bdfde78441b907360dda5d8ccf730250a3 Mon Sep 17 00:00:00 2001 From: Jared Van Bortel Date: Sun, 28 Dec 2025 21:21:03 -0500 Subject: [PATCH] fix relative_to on internal paths --- appdaemon/exceptions.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/appdaemon/exceptions.py b/appdaemon/exceptions.py index 9db3fcc2b..8fed36a7b 100644 --- a/appdaemon/exceptions.py +++ b/appdaemon/exceptions.py @@ -105,11 +105,14 @@ def user_exception_block(logger: Logger, exception: Exception, app_dir: Path | N logger.error(f"{indent}{exc.__class__.__name__}: {exc}") if tb := traceback.extract_tb(exc.__traceback__): frame = tb[-1] - file = Path(frame.filename).relative_to(app_dir.parent) - logger.error(f"{indent} line {frame.lineno} in {file.name}") - logger.error(f"{indent} {frame._line.rstrip()}") - error_len = frame.end_colno - frame.colno - logger.error(f"{indent} {' ' * (frame.colno - 1)}{'^' * error_len}") + file_path = Path(frame.filename) + # Only show file details if it's in the user's app directory + if file_path.is_relative_to(app_dir.parent): + file = file_path.relative_to(app_dir.parent) + logger.error(f"{indent} line {frame.lineno} in {file.name}") + logger.error(f"{indent} {frame._line.rstrip()}") + error_len = frame.end_colno - frame.colno + logger.error(f"{indent} {' ' * (frame.colno - 1)}{'^' * error_len}") case SyntaxError(): logger.error(f"{indent}{exc.__class__.__name__}: {exc}") logger.error(f"{indent} {exc.text.rstrip()}")