docs: def rename(self, old_key, new_key):
          """Rename a file.
  
          :param old_key: Old key that holds the object.
          :param new_key: New key that will hold the object.
          :returns: The object that has been renamed.
          """
          assert new_key not in self
          assert old_key != new_key
  
          file_ = self[old_key]
          old_data = self.filesmap[old_key]
  
          # Create a new version with the new name
          obj = ObjectVersion.create(
              bucket=self.bucket, key=new_key,
              _file_id=file_.obj.file_id
          )
  
          # Delete old key
          self.filesmap[new_key] = self.file_cls(obj, old_data).dumps()
          del self[old_key]
  
          return obj