from argparse import Namespace from typing import Any from mdrsclient.commands.base import BaseCommand class MvCommand(BaseCommand): @classmethod def register(cls, parsers: Any) -> None: mv_parser = parsers.add_parser("mv", help="move or rename the file or folder") mv_parser.add_argument("src_path", help="source remote path (remote:/lab/path/src)") mv_parser.add_argument("dest_path", help="destination remote path (remote:/lab/path/dest)") mv_parser.set_defaults(func=cls.func) @classmethod def func(cls, args: Namespace) -> None: src_path = str(args.src_path) dest_path = str(args.dest_path) cls.mv(src_path, dest_path) @classmethod def mv(cls, src_path: str, dest_path: str) -> None: remote = src_path.split(":", 1)[0] if ":" in src_path else "" from mdrsclient.client import MdrsClient client = MdrsClient.from_remote(remote) client.mv(src_path, dest_path)