Get various data.
Explore the tableauserverclient library for more options.
Uses st.cache to only rerun when the query changes or after 10 min.
@st.cache(ttl=600)
def run_query():
    with server.auth.sign_in(tableau_auth):
    # Get all workbooks.
    workbooks, pagination_item = server.workbooks.get()
    workbooks_names = [w.name for w in workbooks]
    # Get views for first workbook.
    server.workbooks.populate_views(workbooks[0])
    views_names = [v.name for v in workbooks[0].views]
    # Get image & CSV for first view of first workbook.
    view_item = workbooks[0].views[0]
    server.views.populate_image(view_item)
    server.views.populate_csv(view_item)
    view_name = view_item.name
    view_image = view_item.image
    # `view_item.csv` is a list of binary objects, convert to str.
