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 get_conn(self) -> None:
      pinecone_connection = self.get_connection(self.conn_id)
      api_key = pinecone_connection.password
      pinecone_environment = pinecone_connection.login
      pinecone_host = pinecone_connection.host
      extras = pinecone_connection.extra_dejson
      pinecone_project_id = extras.get("project_id")
      log_level = extras.get("log_level", None)
      pinecone.init(
          api_key=api_key,
          environment=pinecone_environment,
          host=pinecone_host,
          project_name=pinecone_project_id,
          log_level=log_level,
      )
  
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 4 for calling the PineconeHook obj's underlying member method code with example usage: obj.get_conn() without return types