set destination folder name using name attribute of folder copy api.

This commit is contained in:
Yoshihiro OKUMURA 2023-07-26 19:59:07 +09:00
parent 8588c6ce70
commit 4641b9304e
Signed by: orrisroot
GPG Key ID: 470AA444C92904B2
4 changed files with 57 additions and 60 deletions

View File

@ -1,14 +1,14 @@
{
"recommendations": [
"ms-python.python",
"ms-python.black-formatter",
"ms-python.isort",
"ms-python.flake8",
"ms-python.vscode-pylance",
"esbenp.prettier-vscode",
"redhat.vscode-xml",
"njpwerner.autodocstring",
"mosapride.zenkaku",
"streetsidesoftware.code-spell-checker"
]
"recommendations": [
"ms-python.python",
"ms-python.black-formatter",
"ms-python.isort",
"ms-python.flake8",
"ms-python.vscode-pylance",
"esbenp.prettier-vscode",
"redhat.vscode-xml",
"njpwerner.autodocstring",
"mosapride.zenkaku",
"streetsidesoftware.code-spell-checker"
]
}

77
.vscode/settings.json vendored
View File

@ -1,38 +1,43 @@
{
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter"
},
"[xml]": {
"editor.defaultFormatter": "redhat.vscode-xml"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// Extensions - Code Spell Checker
"cSpell.ignoreWords": ["getframe", "pydantic", "UNLCK"],
"cSpell.words": ["chacl", "mdrs", "mdrsclient", "neurodata", "Neuroinformatics", "RIKEN"],
// Extensions - isort
"isort.args": ["--profile=black"],
// Extensions - Prettier
"prettier.printWidth": 120,
"prettier.singleQuote": true,
"prettier.tabWidth": 4,
// Extensions - Pylance
"python.analysis.typeCheckingMode": "strict",
"python.analysis.exclude": ["api/migrations/[0-9]*.py"],
// Extensions - Python:black
"python.formatting.blackArgs": ["--line-length=120"],
"python.formatting.provider": "black",
// Extensions - Python:Flake8
"python.linting.enabled": true,
"python.linting.flake8Enabled": true,
"python.linting.flake8Args": ["--max-line-length=120"],
"python.linting.ignorePatterns": ["**/site-packages/**/*.py", ".vscode/*.py"],
"python.linting.lintOnSave": true,
// Extensions - Python Docstring Generator configuration
"autoDocstring.docstringFormat": "google"
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter"
},
"[xml]": {
"editor.defaultFormatter": "redhat.vscode-xml"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// Extensions - Code Spell Checker
"cSpell.ignoreWords": ["getframe", "pydantic", "UNLCK"],
"cSpell.words": ["chacl", "mdrs", "mdrsclient", "neurodata", "Neuroinformatics", "RIKEN"],
// Extensions - isort
"isort.args": ["--profile=black"],
// Extensions - Prettier
"prettier.printWidth": 120,
"prettier.semi": true,
"prettier.singleQuote": true,
"prettier.tabWidth": 2,
"prettier.trailingComma": "all",
// Extensions - Pylance
"python.analysis.typeCheckingMode": "strict",
"python.analysis.exclude": ["api/migrations/[0-9]*.py"],
// Extensions - Python:black
"python.formatting.blackArgs": ["--line-length=120"],
"python.formatting.provider": "black",
// Extensions - Python:Flake8
"python.linting.enabled": true,
"python.linting.flake8Enabled": true,
"python.linting.flake8Args": ["--max-line-length=120"],
"python.linting.ignorePatterns": ["**/site-packages/**/*.py", ".vscode/*.py"],
"python.linting.lintOnSave": true,
// Extensions - Python Docstring Generator configuration
"autoDocstring.docstringFormat": "google"
}

View File

@ -94,10 +94,10 @@ class FolderApi(BaseApi):
self._raise_response_error(response)
return True
def move(self, folder: FolderSimple, folder_id: str) -> bool:
def move(self, folder: FolderSimple, folder_id: str, name: str) -> bool:
# print(self.__class__.__name__ + "::" + sys._getframe().f_code.co_name)
url = self.ENTRYPOINT + folder.id + "/move/"
data: dict[str, str | int] = {"parent": folder_id}
data: dict[str, str | int] = {"parent": folder_id, "name": name}
token_check(self.connection)
response = self.connection.post(url, data=data)
self._raise_response_error(response)

View File

@ -1,15 +1,11 @@
import dataclasses
import os
from argparse import Namespace
from typing import Any
from unicodedata import normalize
from pydantic import TypeAdapter
from mdrsclient.api import FileApi, FolderApi
from mdrsclient.commands.base import BaseCommand
from mdrsclient.exceptions import IllegalArgumentException
from mdrsclient.models import FolderSimple
class MvCommand(BaseCommand):
@ -72,9 +68,5 @@ class MvCommand(BaseCommand):
raise IllegalArgumentException(f"`{s_path}` and `{s_path}` are the same folder.")
raise IllegalArgumentException(f"Cannot move `{s_path}` to `{d_path}`: Folder not empty.")
folder_api = FolderApi(connection)
if s_parent_folder.id != d_parent_folder.id:
folder_api.move(s_folder, d_parent_folder.id)
if s_basename != d_basename:
d_folder_dict = dataclasses.asdict(s_folder) | {"name": normalize("NFC", d_basename)}
d_folder = TypeAdapter(FolderSimple).validate_python(d_folder_dict)
folder_api.update(d_folder)
if s_parent_folder.id != d_parent_folder.id or d_basename != s_basename:
folder_api.move(s_folder, d_parent_folder.id, normalize("NFC", d_basename))