Source code for trext.extract.server
"""
connection for tableau
"""
from tableausdk.Server import ServerAPI, ServerConnection
from trext.extract.utils import get_extract_name
[docs]class Tableau(object):
"""
Tableau server connection class
"""
def __init__(self):
self.server_init = ServerAPI()
self.server_init.initialize()
self.server = ServerConnection()
[docs] def connect(self, host, username, password, site_content_url='Default'):
"""
Connect to the Tableau server
:param host: address of the Tableau server
:param username: Tableau Server username
:param password: Tableau Server password
:param site_content_url: Site to publish to
"""
self.server.connect(host, username, password, site_content_url)
[docs] def publish(self, tde_path, project_name='Default', datasource_name=None, overwrite=True):
"""
Publishes an extract to the Tableau Server
:param tde_path: path of tde to publish
:param project_name: name of project on the Tableau site to publish to
:param datasource_name: the name of the .tde to publish as
:param overwrite: boolean to flag if the .tde needs an overwrite when publishing
"""
if not datasource_name:
datasource_name = get_extract_name(tde_path)
self.server.publishExtract(tde_path, project_name, datasource_name, overwrite)
[docs] def close(self):
"""
Close connection to Tableau Server
"""
self.server.disconnect()
self.server_init.cleanup()