def get_schedule_ids(conn, schedule_names=None): if schedule_names: schedule_ids = [ schedule['id'] for schedule in extract_pages(conn.query_schedules) if schedule['name'] in schedule_names ] else: schedule_ids = [ schedule['id'] for schedule in extract_pages(conn.query_schedules) ] return schedule_ids
def get_all_view_fields(conn: TableauServerConnection, site_id: str) -> List[Dict[str, Any]]: """Returns a list of JSON / dicts describing all available views.""" all_views = extract_pages(conn.query_views_for_site, content_id=site_id, parameter_dict={"fields": "fields=_all_"}) return all_views
def test_extract_pages_default(): test_query = conn.query_sites().json() total_sites_available = int(test_query['pagination']['totalAvailable']) extracted_sites = extract_pages(conn.query_sites) print("\nNumber of extracted sites: {}\nNumber of available sites: {}". format(len(extracted_sites), total_sites_available)) assert len(extracted_sites) == total_sites_available
def get_all_flow_fields(conn) -> list: """ Queries all available flow fields from Tableau Server. :param class conn: the Tableau Server connection :return: list """ all_flows = extract_pages(conn.query_flows_for_site, parameter_dict={'fields': 'fields=_all_'}) return all_flows
def test_delete_cloned_schedules(): expected_names = [ TEST_CLONE_NAME_PREFIX + name for name in TEST_SCHEDULE_NAMES ] print("expected names: ", expected_names) cloned_schedule_ids = [ schedule['id'] for schedule in extract_pages(conn.query_schedules) if schedule['name'] in expected_names ] for schedule_id in cloned_schedule_ids: response = conn.delete_schedule(schedule_id=schedule_id) print("delete response code: ", response.status_code) clones_remaining = [ schedule['name'] for schedule in extract_pages(conn.query_schedules) if schedule['name'] in expected_names ] print("clones remaining (should be none): ", clones_remaining) assert not any(clones_remaining)
def get_all_datasource_fields(conn) -> list: """ Queries all available datasource fields from Tableau Server. :param class conn: the Tableau Server connection :return: list """ all_datasources = extract_pages(conn.query_data_sources, parameter_dict={'fields': 'fields=_all_'}) return all_datasources
def get_all_workbook_fields( conn: TableauServerConnection, all_fields: Optional[bool] = True) -> List[Dict[str, Any]]: """Returns a list of JSON / dicts describing all available workbooks.""" fields_param = "_all_" if all_fields is True else "_default_" all_workbooks = extract_pages( conn.query_workbooks_for_site, parameter_dict={"fields": f"fields={fields_param}"}) return all_workbooks
def get_target_site_df(conn_target, site_names=None) -> pd.DataFrame: """ Query details for all sites on the target server, or only the sites listed in 'site_names'. :param class conn_target: the Tableau Server connection object :param list site_names: a list of the desired site names whose details will be queried :return: Pandas DataFrame """ site_df = pd.DataFrame(extract_pages(conn_target.query_sites)) if site_names: site_df = site_df[site_df['name'].isin(site_names)] site_df.fillna(value='-1', inplace=True) return site_df
def get_target_project_df(conn_target, project_names=None): """ Query details for all projects on the target site, or only the projects listed in 'project_names'. :param class conn_target: the Tableau Server connection object :param list project_names: a list of the desired project names whose details will be queried :return: Pandas DataFrame """ project_df = pd.DataFrame(extract_pages(conn_target.query_projects)) if project_names: project_df = project_df[project_df['name'].isin(project_names)] project_df['target_owner_id'] = project_df['owner'].apply( extract_project_owner_id) project_df.rename(columns={ 'id': 'target_project_id', 'name': 'target_project_name', 'description': 'target_project_description', 'parentProjectId': 'target_project_parent_id' }, inplace=True) return project_df
def get_all_workbook_fields( conn: TableauServerConnection) -> List[Dict[str, Any]]: """Returns a list of JSON / dicts describing all available workbooks.""" all_workbooks = extract_pages(conn.query_workbooks_for_site, parameter_dict={"fields": "fields=_all_"}) return all_workbooks
def get_all_view_fields(conn, site_id): all_views = extract_pages(conn.query_views_for_site, content_id=site_id, parameter_dict={'fields': 'fields=_all_'}) return all_views
def get_all_workbook_fields(conn): all_workbooks = extract_pages(conn.query_workbooks_for_site, parameter_dict={'fields': 'fields=_all_'}) return all_workbooks
def get_all_group_fields(conn): all_groups = extract_pages(conn.query_groups, parameter_dict={'fields': 'fields=_all_'}) return all_groups
def get_all_subscription_fields(conn): all_subscriptions = extract_pages( conn.query_subscriptions, parameter_dict={'fields': 'fields=_all_'}) return all_subscriptions
def get_groups_for_a_user_dataframe(conn: TableauServerConnection, user_id: str) -> pd.DataFrame: """Returns a Pandas DataFrame containing all groups a user belongs to.""" groups_for_user_df = pd.DataFrame( extract_pages(conn.get_groups_for_a_user, content_id=user_id)) return groups_for_user_df
def get_all_schedule_fields(conn): all_schedules = extract_pages(conn.query_schedules, parameter_dict={'fields': 'fields=_all_'}) return all_schedules
def get_group_users(conn, group_id): all_group_users = extract_pages(conn.get_users_in_group, content_id=group_id, parameter_dict={'fields': 'fields=_all_'}) return all_group_users
def get_all_project_fields(conn): all_projects = extract_pages(conn.query_projects, parameter_dict={'fields': 'fields=_all_'}) return all_projects