Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 21 additions & 6 deletions src/remote_ops.py
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,7 @@ def mkstemp(self, prefix=None):
return temp_file

def copytree(self, src, dst):
if not os.path.isabs(dst):
if __class__._is_abs_path(dst):
dst = __class__._build_path('~', dst)
if self.isdir(dst):
raise FileExistsError("Directory {} already exists.".format(dst))
Expand Down Expand Up @@ -593,7 +593,7 @@ def write(
redirect_op = ">" if truncate else ">>"

# Extract the path to the parent directory
remote_directory = os.path.dirname(filename)
remote_directory = __class__._get_dirname(filename)

remote_cmd = [
"mkdir",
Expand Down Expand Up @@ -976,21 +976,21 @@ def get_tempdir(self) -> str:

temp_subdir = exec_output.strip()
assert type(temp_subdir) is str
temp_dir = os.path.dirname(temp_subdir)
temp_dir = __class__._get_dirname(temp_subdir)
assert type(temp_dir) is str
return temp_dir

def get_dirname(self, path: str) -> str:
assert type(path) is str
return posixpath.dirname(path)
return __class__._get_dirname(path)

def is_abs_path(self, path: str) -> bool:
assert type(path) is str
return posixpath.isabs(path)
return __class__._is_abs_path(path)

def get_basename(self, path: str) -> str:
assert type(path) is str
return posixpath.basename(path)
return __class__._get_basename(path)

@staticmethod
def _build_cmdline(
Expand Down Expand Up @@ -1089,6 +1089,21 @@ def _build_path(a: str, *parts: str) -> str:
assert type(parts) is tuple
return posixpath.join(a, *parts)

@staticmethod
def _get_dirname(path: str) -> str:
assert type(path) is str
return posixpath.dirname(path)

@staticmethod
def _is_abs_path(path: str) -> bool:
assert type(path) is str
return posixpath.isabs(path)

@staticmethod
def _get_basename(path: str) -> str:
assert type(path) is str
return posixpath.basename(path)


def normalize_error(error):
if isinstance(error, bytes):
Expand Down