in jupyter-gcs-contents-manager/gcs_contents_manager.py [0:0]
def rename_file(self, old_path, new_path):
if (old_path in ['', '/']) or (new_path in ['', '/']):
raise HTTPError(403, 'The top-level directory is read-only')
try:
old_cm, old_relative_path, old_prefix = self._content_manager_for_path(
old_path)
if (old_relative_path in ['', '/']) or (old_prefix in ['', '/']):
raise HTTPError(403, 'The top-level directory contents are read-only')
if not old_cm:
raise HTTPError(404,
'No content manager defined for "{}"'.format(old_path))
new_cm, new_relative_path, new_prefix = self._content_manager_for_path(
new_path)
if (new_relative_path in ['', '/']) or (new_prefix in ['', '/']):
raise HTTPError(403, 'The top-level directory contents are read-only')
if not new_cm:
raise HTTPError(404,
'No content manager defined for "{}"'.format(new_path))
if old_cm != new_cm:
raise HTTPError(400, 'Unsupported rename across file systems')
return old_cm.rename_file(old_relative_path, new_relative_path)
except HTTPError as err:
raise err
except Exception as ex:
raise HTTPError(
500, 'Internal server error: [{}] {}'.format(type(ex), str(ex)))