From 809140dfbca0db85c4620144918c377286ff83de Mon Sep 17 00:00:00 2001 From: Yoshihiro OKUMURA Date: Fri, 12 Jun 2026 10:25:03 +0900 Subject: [PATCH] fix(download): retrieve full folder to resolve type error Retrieve the full Folder object from FoldersApi instead of using the FolderSimple returned by find_sub_folder when resolving DOI subfolders. This fixes a type checker error under the upgraded pyright, and avoids a potential AttributeError at runtime due to FolderSimple lacking the path attribute. Also upgrade dependencies and bump version to 1.3.16 in pyproject.toml. --- mdrsclient/commands/download.py | 5 +++-- pyproject.toml | 18 +++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/mdrsclient/commands/download.py b/mdrsclient/commands/download.py index f9d7e0d..085d49d 100644 --- a/mdrsclient/commands/download.py +++ b/mdrsclient/commands/download.py @@ -98,9 +98,10 @@ class DownloadCommand(BaseCommand): cls.__multiple_download(connection, context) return else: - folder = r_parent_folder.find_sub_folder(r_basename) - if folder is None: + folder_simple = r_parent_folder.find_sub_folder(r_basename) + if folder_simple is None: raise IllegalArgumentException(f"File or folder `{subpath_clean}` not found.") + folder = FoldersApi(connection).retrieve(folder_simple.id) is_folder = True # For a DOI target the whole folder is the download target. diff --git a/pyproject.toml b/pyproject.toml index 13c4c0e..d013f13 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "mdrs-client-python" -version = "1.3.15" +version = "1.3.16" description = "The mdrs-client-python is python library and a command-line client for up- and downloading files to and from MDRS based repository." authors = ["Yoshihiro OKUMURA "] license = "MIT" @@ -24,20 +24,20 @@ packages = [ [tool.poetry.dependencies] python = "^3.10" -requests = "^2.32.3" +requests = "^2.34.2" requests-toolbelt = "^1.0.0" python-dotenv = "^1.1.0" -pydantic = "^2.11.4" -pydantic-settings = "^2.9.1" -PyJWT = "^2.10.1" -validators = "^0.34.0" +pydantic = "^2.13.4" +pydantic-settings = "^2.14.1" +PyJWT = "^2.13.0" +validators = "^0.35.0" [tool.poetry.group.dev.dependencies] -black = "^24.10.0" +black = "^26.5.1" flake8 = "^7.2.0" Flake8-pyproject = "^1.2.3" -isort = "^5.13.2" -pyright = "^1.1.400" +isort = "^8.0.1" +pyright = "^1.1.401" [tool.poetry.scripts] mdrs = 'mdrsclient.__main__:main'