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","."]
docstr: Returns connection widgets to add to connection form.
docstr_tok: ["Returns","connection","widgets","to","add","to","connection","form","."]
code: def get_connection_form_widgets(cls) -> dict[str, Any]:
      """Returns connection widgets to add to connection form."""
      from flask_appbuilder.fieldwidgets import BS3TextFieldWidget
      from flask_babel import lazy_gettext
      from wtforms import StringField
  
      return {
          "log_level": StringField(
              lazy_gettext("Log Level"),
              widget=BS3TextFieldWidget(),
              default=None,
          ),
          "project_id": StringField(
              lazy_gettext("Project ID"),
              widget=BS3TextFieldWidget(),
          ),
      }
  
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 1 for calling the PineconeHook obj's underlying member method code with example usage: obj.get_connection_form_widgets(cls) and returns: dict