class_docstr: Connects to the Tableau Server Instance and allows to communicate with it.
  
  Can be used as a context manager: automatically authenticates the connection
  when opened and signs out when closed.
  
  .. seealso:: https://tableau.github.io/server-client-python/docs/
  
  :param site_id: The id of the site where the workbook belongs to.
      It will connect to the default site if you don't provide an id.
  :param tableau_conn_id: The :ref:`Tableau Connection id <howto/connection:tableau>`
      containing the credentials to authenticate to the Tableau Server.
class_docstr_tok: ["Connects","to","the","Tableau","Server","Instance","and","allows","to","communicate","with","it",".","Can","be","used","as","a","context","manager",":","automatically","authenticates","the","connection","when","opened","and","signs","out","when","closed",".","..","seealso",":",":","https",":","\/\/tableau.github.io\/server-client-python\/docs\/",":","param","site_id",":","The","id","of","the","site","where","the","workbook","belongs","to",".","It","will","connect","to","the","default","site","if","you","do","n't","provide","an","id",".",":","param","tableau_conn_id",":","The",":","ref",":","`","Tableau","Connection","id","<","howto\/connection",":","tableau",">","`","containing","the","credentials","to","authenticate","to","the","Tableau","Server","."]
code: def __init__(
      self,
      site_id: str | None = None,
      tableau_conn_id: str = default_conn_name,
      **kwargs,
  ) -> None:
      super().__init__(**kwargs)
      self.tableau_conn_id = tableau_conn_id
      self.conn = self.get_connection(self.tableau_conn_id)
      self.site_id = site_id or self.conn.extra_dejson.get(
          "site_id", ""
      )
      self.server = Server(self.conn.host)
      verify: Any = self.conn.extra_dejson.get("verify", True)
      if isinstance(verify, str):
          verify = parse_boolean(verify)
      self.server.add_http_options(
          options_dict={
              "verify": verify,
              "cert": self.conn.extra_dejson.get("cert", None),
          }
      )
      self.server.use_server_version()
      self.tableau_conn = None
  
imports: from __future__ import annotations
  import time
  import warnings
  from enum import Enum
  from typing import TYPE_CHECKING, Any
  from tableauserverclient import Pager, PersonalAccessTokenAuth, Server, TableauAuth
  from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
  from airflow.hooks.base import BaseHook
label_desc: Use image node_id 1 to create a new TableauHook object from inherited base classes: BaseHook with example: obj = TableauHook(site_id, tableau_conn_id)