From 894208981414e24416b0780e64a92a37c83da9fb Mon Sep 17 00:00:00 2001 From: luandalmazo Date: Mon, 27 Jul 2026 11:07:44 -0300 Subject: [PATCH] added handlers to broken symlinks --- datamint/api/endpoints/resources_api.py | 2 ++ datamint/client_cmd_tools/datamint_upload.py | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/datamint/api/endpoints/resources_api.py b/datamint/api/endpoints/resources_api.py index ded56122..64f8ba38 100644 --- a/datamint/api/endpoints/resources_api.py +++ b/datamint/api/endpoints/resources_api.py @@ -292,6 +292,8 @@ async def _upload_single_resource_async(self, else: source_filepath = os.path.abspath(os.path.expanduser(file_path)) filename = os.path.basename(source_filepath) + if not os.path.exists(file_path): + raise FileNotFoundError(f"File not found: {file_path}") if session is not None and not isinstance(session, aiohttp.ClientSession): raise ValueError("session must be an aiohttp.ClientSession object.") diff --git a/datamint/client_cmd_tools/datamint_upload.py b/datamint/client_cmd_tools/datamint_upload.py index 70710192..d15c811b 100644 --- a/datamint/client_cmd_tools/datamint_upload.py +++ b/datamint/client_cmd_tools/datamint_upload.py @@ -216,6 +216,10 @@ def walk_to_depth(path: str | Path, if _is_system_file(child): continue + if child.is_symlink() and not child.exists(): + _USER_LOGGER.warning(f"Skipping broken symlink: {child}") + continue + if child.is_dir(): if depth != 0: if exclude_pattern is not None and fnmatch.fnmatch(child.name, exclude_pattern):