code: def delete(self, key):
          
          if self._status != self._IN_PROGRESS:
              raise ValueError("Batch must be in progress to delete()")
  
          if key.is_partial:
              raise ValueError("Key must be complete")
  
          if self.project != key.project:
              raise ValueError("Key must be from same project as batch")
  
          key_pb = key.to_protobuf()
          self._add_delete_key_pb().CopyFrom(key_pb)
docs: Remember a key to be deleted during :meth:`commit`.
  
          :type key: :class:`google.cloud.datastore.key.Key`
          :param key: the key to be deleted.
  
          :raises: :class:`~exceptions.ValueError` if the batch is not in
                   progress, if key is not complete, or if the key's
                   ``project`` does not match ours.