class_docstr: Interact with Weaviate database to store vectors. This hook uses the 'conn_id'.
  
  :param conn_id: The connection id to use when connecting to Weaviate. <howto/connection:weaviate>
class_docstr_tok: ["Interact","with","Weaviate","database","to","store","vectors",".","This","hook","uses","the","'conn_id","'",".",":","param","conn_id",":","The","connection","id","to","use","when","connecting","to","Weaviate",".","<","howto\/connection",":","weaviate",">"]
docstr: Helper function for `create_or_replace_objects()` to delete multiple objects.
  
  :param uuids: Collection of uuids.
  :param class_name: Name of the class in Weaviate schema where data is to be ingested.
  :param retry_attempts_per_object: number of times to try in case of failure before giving up.
code: def _delete_objects(
      self,
      uuids: Collection,
      class_name: str,
      retry_attempts_per_object: int = 5,
  ):
      """
      Helper function for `create_or_replace_objects()` to delete multiple objects.
  
      :param uuids: Collection of uuids.
      :param class_name: Name of the class in Weaviate schema where data is to be ingested.
      :param retry_attempts_per_object: number of times to try in case of failure before giving up.
      """
      for uuid in uuids:
          for attempt in Retrying(
              stop=stop_after_attempt(retry_attempts_per_object),
              retry=(
                  retry_if_exception(
                      lambda exc: check_http_error_is_retryable(exc)
                  )
                  | retry_if_exception_type(REQUESTS_EXCEPTIONS_TYPES)
              ),
          ):
              with attempt:
                  try:
                      self.delete_object(
                          uuid=uuid, class_name=class_name
                      )
                      self.log.debug(
                          "Deleted object with uuid %s", uuid
                      )
                  except (
                      weaviate.exceptions.UnexpectedStatusCodeException
                  ) as e:
                      if e.status_code == 404:
                          self.log.debug(
                              "Tried to delete a non existent object with uuid %s",
                              uuid,
                          )
                      else:
                          self.log.debug(
                              "Error occurred while trying to delete object with uuid %s",
                              uuid,
                          )
                          raise e
  
      self.log.info("Deleted %s objects.", len(uuids))
  
imports: from __future__ import annotations
  import contextlib
  import json
  import warnings
  from functools import cached_property
  from typing import TYPE_CHECKING, Any, Dict, List, Sequence, cast
  import requests
  import weaviate.exceptions
  from tenacity import Retrying, retry, retry_if_exception, retry_if_exception_type, stop_after_attempt
  from weaviate import Client
  from weaviate.auth import AuthApiKey, AuthBearerToken, AuthClientCredentials, AuthClientPassword
  from weaviate.data.replication import ConsistencyLevel
  from weaviate.exceptions import ObjectAlreadyExistsException
  from weaviate.util import generate_uuid5
  from airflow.exceptions import AirflowProviderDeprecationWarning
  from airflow.hooks.base import BaseHook
label_desc: Use image node_id 31 for calling the WeaviateHook obj's underlying member method code with example usage: obj._delete_objects(uuids, class_name, retry_attempts_per_object) without return types