def save()

in jupyter-gcs-contents-manager/gcs_contents_manager.py [0:0]


  def save(self, model, path):
    if path in ['', '/']:
      raise HTTPError(403, 'The top-level directory is read-only')
    try:
      self.run_pre_save_hook(model=model, path=path)

      cm, relative_path, path_prefix = self._content_manager_for_path(path)
      if (relative_path in ['', '/']) or (path_prefix in ['', '/']):
        raise HTTPError(403, 'The top-level directory contents are read-only')
      if not cm:
        raise HTTPError(404, 'No content manager defined for "{}"'.format(path))

      if 'path' in model:
        model['path'] = relative_path

      model = cm.save(model, relative_path)
      if 'path' in model:
        model['path'] = path
      return model
    except HTTPError as err:
      raise err
    except Exception as ex:
      raise HTTPError(
          500, 'Internal server error: [{}] {}'.format(type(ex), str(ex)))