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 to get the document to uuid map of existing objects in db.
  
  :param data: A single pandas DataFrame.
  :param document_column: The name of the property to query.
  :param class_name: The name of the class to query.
  :param uuid_column: The name of the column containing the UUID.
  :param offset: pagination parameter to indicate the which object to start fetching data.
  :param limit: pagination param to indicate the number of records to fetch from start object.
code: def _get_documents_to_uuid_map(
      self,
      data: pd.DataFrame,
      document_column: str,
      uuid_column: str,
      class_name: str,
      offset: int = 0,
      limit: int = 2000,
  ) -> dict[str, set]:
      """Helper function to get the document to uuid map of existing objects in db.
  
      :param data: A single pandas DataFrame.
      :param document_column: The name of the property to query.
      :param class_name: The name of the class to query.
      :param uuid_column: The name of the column containing the UUID.
      :param offset: pagination parameter to indicate the which object to start fetching data.
      :param limit: pagination param to indicate the number of records to fetch from start object.
      """
      documents_to_uuid: dict = {}
      document_keys = set(data[document_column])
      while True:
          data_objects = (
              self.conn.query.get(
                  properties=[document_column], class_name=class_name
              )
              .with_additional([uuid_column])
              .with_where(
                  {
                      "operator": "Or",
                      "operands": [
                          {
                              "valueText": key,
                              "path": document_column,
                              "operator": "Equal",
                          }
                          for key in document_keys
                      ],
                  }
              )
              .with_offset(offset)
              .with_limit(limit)
              .do()["data"]["Get"][class_name]
          )
          if len(data_objects) == 0:
              break
          offset = offset + limit
          documents_to_uuid.update(
              self._prepare_document_to_uuid_map(
                  data=data_objects,
                  group_key=document_column,
                  get_value=lambda x: x["_additional"][uuid_column],
              )
          )
      return documents_to_uuid
  
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 33 for calling the WeaviateHook obj's underlying member method code with example usage: obj._get_documents_to_uuid_map(data, document_column, uuid_column, class_name, offset, limit) and returns: documents_to_uuid