class_docstr: Interact with Pinecone. This hook uses the Pinecone conn_id.
  
  :param conn_id: Optional, default connection id is `pinecone_default`. The connection id to use when
      connecting to Pinecone.
class_docstr_tok: ["Interact","with","Pinecone",".","This","hook","uses","the","Pinecone","conn_id",".",":","param","conn_id",":","Optional",",","default","connection","id","is","`","pinecone_default","`",".","The","connection","id","to","use","when","connecting","to","Pinecone","."]
code: def test_connection(self) -> tuple[bool, str]:
      try:
          self.list_indexes()
          return True, "Connection established"
      except Exception as e:
          return False, str(e)
  
imports: from __future__ import annotations
  import itertools
  from typing import TYPE_CHECKING, Any
  import pinecone
  from airflow.hooks.base import BaseHook
label_desc: Use image node_id 5 for calling the PineconeHook obj's underlying member method code with example usage: obj.test_connection() and returns: True,  str, False,  str