tableauserverclient 0.32__tar.gz → 0.34__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tableauserverclient-0.34/CONTRIBUTORS.md +82 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/PKG-INFO +8 -8
- {tableauserverclient-0.32 → tableauserverclient-0.34}/README.md +2 -2
- tableauserverclient-0.34/contributing.md +25 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/pyproject.toml +9 -9
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/add_default_permission.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/create_group.py +6 -7
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/create_project.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/create_schedules.py +4 -4
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/explore_datasource.py +11 -11
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/explore_favorites.py +7 -9
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/explore_site.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/explore_webhooks.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/explore_workbook.py +14 -19
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/export.py +16 -7
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/extracts.py +4 -10
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/filter_sort_groups.py +25 -19
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/filter_sort_projects.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/getting_started/1_hello_server.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/getting_started/2_hello_site.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/getting_started/3_hello_universe.py +11 -11
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/initialize_server.py +5 -5
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/list.py +4 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/login.py +14 -11
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/move_workbook_sites.py +4 -4
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/pagination_sample.py +4 -4
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/publish_datasource.py +16 -9
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/publish_workbook.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/query_permissions.py +3 -5
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/refresh_tasks.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/set_refresh_schedule.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/update_connection.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/update_workbook_data_freshness_policy.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/__init__.py +34 -18
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/_version.py +3 -3
- tableauserverclient-0.34/tableauserverclient/config.py +27 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/__init__.py +12 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/column_item.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/connection_credentials.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/connection_item.py +10 -8
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/custom_view_item.py +29 -6
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/data_acceleration_report_item.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/data_alert_item.py +5 -5
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/data_freshness_policy_item.py +6 -6
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/database_item.py +8 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/datasource_item.py +10 -10
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/dqw_item.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/favorites_item.py +5 -6
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/fileupload_item.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/flow_item.py +12 -12
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/flow_run_item.py +3 -3
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/group_item.py +4 -4
- tableauserverclient-0.34/tableauserverclient/models/groupset_item.py +53 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/interval_item.py +36 -23
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/job_item.py +26 -10
- tableauserverclient-0.34/tableauserverclient/models/linked_tasks_item.py +102 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/metric_item.py +5 -5
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/pagination_item.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/permissions_item.py +19 -14
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/project_item.py +35 -19
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/property_decorators.py +12 -11
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/reference_item.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/revision_item.py +3 -3
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/schedule_item.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/server_info_item.py +26 -6
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/site_item.py +69 -3
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/subscription_item.py +3 -3
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/table_item.py +1 -1
- tableauserverclient-0.34/tableauserverclient/models/tableau_auth.py +216 -0
- tableauserverclient-0.34/tableauserverclient/models/tableau_types.py +35 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/tag_item.py +3 -4
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/task_item.py +4 -4
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/user_item.py +47 -17
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/view_item.py +11 -10
- tableauserverclient-0.34/tableauserverclient/models/virtual_connection_item.py +78 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/webhook_item.py +6 -6
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/workbook_item.py +90 -12
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/namespace.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/__init__.py +2 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/__init__.py +8 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/auth_endpoint.py +68 -11
- tableauserverclient-0.34/tableauserverclient/server/endpoint/custom_views_endpoint.py +209 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/data_acceleration_report_endpoint.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/data_alert_endpoint.py +14 -14
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/databases_endpoint.py +32 -17
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/datasources_endpoint.py +150 -59
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/default_permissions_endpoint.py +19 -18
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/dqw_endpoint.py +9 -9
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/endpoint.py +47 -31
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/exceptions.py +23 -7
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/favorites_endpoint.py +31 -31
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/fileuploads_endpoint.py +11 -13
- tableauserverclient-0.34/tableauserverclient/server/endpoint/flow_runs_endpoint.py +122 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/flow_task_endpoint.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/flows_endpoint.py +73 -35
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/groups_endpoint.py +96 -27
- tableauserverclient-0.34/tableauserverclient/server/endpoint/groupsets_endpoint.py +127 -0
- tableauserverclient-0.34/tableauserverclient/server/endpoint/jobs_endpoint.py +143 -0
- tableauserverclient-0.34/tableauserverclient/server/endpoint/linked_tasks_endpoint.py +45 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/metadata_endpoint.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/metrics_endpoint.py +10 -10
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/permissions_endpoint.py +13 -15
- tableauserverclient-0.34/tableauserverclient/server/endpoint/projects_endpoint.py +250 -0
- tableauserverclient-0.34/tableauserverclient/server/endpoint/resource_tagger.py +184 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/schedules_endpoint.py +17 -18
- tableauserverclient-0.34/tableauserverclient/server/endpoint/server_info_endpoint.py +82 -0
- tableauserverclient-0.34/tableauserverclient/server/endpoint/sites_endpoint.py +420 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/subscriptions_endpoint.py +10 -10
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/tables_endpoint.py +33 -19
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/tasks_endpoint.py +8 -8
- tableauserverclient-0.34/tableauserverclient/server/endpoint/users_endpoint.py +554 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/views_endpoint.py +111 -25
- tableauserverclient-0.34/tableauserverclient/server/endpoint/virtual_connections_endpoint.py +174 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/endpoint/webhooks_endpoint.py +11 -11
- tableauserverclient-0.34/tableauserverclient/server/endpoint/workbooks_endpoint.py +1167 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/filter.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/pager.py +8 -10
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/query.py +70 -20
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/request_factory.py +213 -41
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/request_options.py +125 -145
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/server.py +73 -9
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/sort.py +2 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient.egg-info/PKG-INFO +8 -8
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient.egg-info/SOURCES.txt +27 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient.egg-info/requires.txt +3 -3
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/_utils.py +14 -0
- tableauserverclient-0.34/test/assets/custom_view_download.json +47 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/flow_populate_permissions.xml +8 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/flow_runs_get.xml +1 -2
- tableauserverclient-0.34/test/assets/group_add_users.xml +8 -0
- tableauserverclient-0.34/test/assets/groupsets_create.xml +4 -0
- tableauserverclient-0.34/test/assets/groupsets_get.xml +15 -0
- tableauserverclient-0.34/test/assets/groupsets_get_by_id.xml +9 -0
- tableauserverclient-0.34/test/assets/groupsets_update.xml +9 -0
- tableauserverclient-0.34/test/assets/linked_tasks_get.xml +33 -0
- tableauserverclient-0.34/test/assets/linked_tasks_run_now.xml +7 -0
- tableauserverclient-0.34/test/assets/schedule_get_monthly_id_2.xml +12 -0
- tableauserverclient-0.34/test/assets/virtual_connection_add_permissions.xml +21 -0
- tableauserverclient-0.34/test/assets/virtual_connection_database_connection_update.xml +6 -0
- tableauserverclient-0.34/test/assets/virtual_connection_populate_connections.xml +6 -0
- tableauserverclient-0.34/test/assets/virtual_connections_download.xml +7 -0
- tableauserverclient-0.34/test/assets/virtual_connections_get.xml +14 -0
- tableauserverclient-0.34/test/assets/virtual_connections_publish.xml +7 -0
- tableauserverclient-0.34/test/assets/virtual_connections_revisions.xml +14 -0
- tableauserverclient-0.34/test/assets/virtual_connections_update.xml +8 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_auth.py +3 -3
- tableauserverclient-0.34/test/test_custom_view.py +320 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_dataalert.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_datasource.py +5 -5
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_endpoint.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_favorites.py +9 -9
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_filesys_helpers.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_fileuploads.py +28 -3
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_flow.py +10 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_flowruns.py +17 -6
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_flowtask.py +1 -1
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_group.py +49 -1
- tableauserverclient-0.34/test/test_groupsets.py +139 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_job.py +28 -4
- tableauserverclient-0.34/test/test_linked_tasks.py +129 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_pager.py +48 -2
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_project.py +18 -18
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_regression_tests.py +1 -5
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_request_option.py +17 -7
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_schedule.py +24 -8
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_server_info.py +10 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_site_model.py +0 -2
- tableauserverclient-0.34/test/test_tagging.py +230 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_task.py +4 -4
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_user.py +2 -5
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_user_model.py +4 -5
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_view.py +3 -3
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_view_acceleration.py +1 -1
- tableauserverclient-0.34/test/test_virtual_connection.py +242 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_workbook.py +6 -6
- {tableauserverclient-0.32 → tableauserverclient-0.34}/versioneer.py +23 -24
- tableauserverclient-0.32/CONTRIBUTORS.md +0 -62
- tableauserverclient-0.32/contributing.md +0 -86
- tableauserverclient-0.32/samples/update_workbook_data_acceleration.py +0 -109
- tableauserverclient-0.32/tableauserverclient/config.py +0 -13
- tableauserverclient-0.32/tableauserverclient/models/tableau_auth.py +0 -106
- tableauserverclient-0.32/tableauserverclient/models/tableau_types.py +0 -33
- tableauserverclient-0.32/tableauserverclient/server/endpoint/custom_views_endpoint.py +0 -104
- tableauserverclient-0.32/tableauserverclient/server/endpoint/flow_runs_endpoint.py +0 -80
- tableauserverclient-0.32/tableauserverclient/server/endpoint/jobs_endpoint.py +0 -76
- tableauserverclient-0.32/tableauserverclient/server/endpoint/projects_endpoint.py +0 -156
- tableauserverclient-0.32/tableauserverclient/server/endpoint/resource_tagger.py +0 -51
- tableauserverclient-0.32/tableauserverclient/server/endpoint/server_info_endpoint.py +0 -47
- tableauserverclient-0.32/tableauserverclient/server/endpoint/sites_endpoint.py +0 -155
- tableauserverclient-0.32/tableauserverclient/server/endpoint/users_endpoint.py +0 -168
- tableauserverclient-0.32/tableauserverclient/server/endpoint/workbooks_endpoint.py +0 -500
- tableauserverclient-0.32/test/test_custom_view.py +0 -134
- {tableauserverclient-0.32 → tableauserverclient-0.34}/CHANGELOG.md +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/LICENSE +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/LICENSE.versioneer +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/MANIFEST.in +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/docs/README.md +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/create_extract_task.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/kill_all_jobs.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/metadata_query.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/move_workbook_projects.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/name.txt +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/refresh.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/smoke_test.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/samples/update_datasource_data.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/setup.cfg +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/setup.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/datetime_helpers.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/exponential_backoff.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/filesys_helpers.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/helpers/__init__.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/helpers/headers.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/helpers/logging.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/helpers/strings.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/exceptions.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/models/target.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/py.typed +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient/server/exceptions.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient.egg-info/dependency_links.txt +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/tableauserverclient.egg-info/top_level.txt +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/__init__.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/Data/Tableau Samples/World Indicators.tde +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/Data/user_details.csv +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/Data/usernames.csv +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/RESTAPISample Image.png +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/Sample View Image.png +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/World Indicators.hyper +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/auth_sign_in.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/auth_sign_in_error.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/auth_sign_in_impersonate.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/custom_view_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/custom_view_get_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/custom_view_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/data_acceleration_report.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/data_alerts_add_user.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/data_alerts_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/data_alerts_get_by_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/data_alerts_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/database_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/database_populate_permissions.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/database_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/datasource_add_tags.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/datasource_connection_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/datasource_data_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/datasource_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/datasource_get_by_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/datasource_get_empty.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/datasource_populate_connections.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/datasource_populate_permissions.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/datasource_publish.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/datasource_publish_async.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/datasource_refresh.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/datasource_revision.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/datasource_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/dqw_by_content_type.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/favorites_add_datasource.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/favorites_add_project.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/favorites_add_view.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/favorites_add_workbook.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/favorites_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/fileupload_append.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/fileupload_initialize.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/flow_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/flow_get_by_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/flow_populate_connections.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/flow_publish.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/flow_refresh.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/flow_runs_get_by_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/flow_runs_get_by_id_failed.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/flow_runs_get_by_id_inprogress.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/flow_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/group_add_user.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/group_create.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/group_create_ad.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/group_create_async.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/group_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/group_populate_users.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/group_populate_users_empty.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/group_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/group_update_async.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/group_users_added.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/job_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/job_get_by_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/job_get_by_id_failed.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/job_get_by_id_failed_workbook.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/job_get_by_id_inprogress.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/metadata_paged_1.json +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/metadata_paged_2.json +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/metadata_paged_3.json +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/metadata_query_error.json +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/metadata_query_expected_dict.dict +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/metadata_query_success.json +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/metrics_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/metrics_get_by_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/metrics_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/odata_connection.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/populate_csv.csv +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/populate_pdf.pdf +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/project_content_permission.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/project_create.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/project_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/project_populate_permissions.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/project_populate_workbook_default_permissions.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/project_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/project_update_datasource_default_permissions.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/queryset_slicing_page_1.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/queryset_slicing_page_2.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/request_option_filter_equals.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/request_option_filter_name_in.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/request_option_filter_tags_in.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/request_option_page_number.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/request_option_page_size.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/request_option_pagination.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/request_option_slicing_queryset.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_add_datasource.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_add_flow.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_add_workbook.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_add_workbook_with_warnings.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_create_daily.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_create_hourly.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_create_monthly.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_create_weekly.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_get_by_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_get_daily_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_get_empty.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_get_hourly_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_get_monthly_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/schedule_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/server_info_25.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/server_info_404.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/server_info_auth_info.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/server_info_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/site_create.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/site_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/site_get_by_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/site_get_by_name.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/site_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/subscription_create.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/subscription_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/subscription_get_by_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/table_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/table_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/tasks_create_extract_task.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/tasks_create_flow_task.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/tasks_no_workbook_or_datasource.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/tasks_run_now_response.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/tasks_with_dataacceleration_task.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/tasks_with_datasource.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/tasks_with_interval.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/tasks_with_workbook.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/tasks_with_workbook_and_datasource.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/tasks_without_schedule.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/user_add.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/user_add_favorite.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/user_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/user_get_by_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/user_get_empty.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/user_populate_groups.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/user_populate_workbooks.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/user_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/view_add_tags.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/view_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/view_get_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/view_get_id_usage.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/view_get_usage.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/view_populate_permissions.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/view_update_permissions.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/webhook_create.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/webhook_create_request.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/webhook_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_add_tags.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_get.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_get_by_id.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_get_by_id_acceleration_status.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_get_by_id_personal.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_get_empty.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_get_invalid_date.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_get_page_1.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_get_page_2.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_get_page_3.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_populate_connections.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_populate_permissions.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_populate_views.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_populate_views_usage.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_publish.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_publish_async.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_refresh.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_revision.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_update.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_update_acceleration_status.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_update_data_freshness_policy.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_update_data_freshness_policy2.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_update_data_freshness_policy3.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_update_data_freshness_policy4.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_update_data_freshness_policy5.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_update_data_freshness_policy6.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_update_permissions.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/assets/workbook_update_views_acceleration_status.xml +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/http/test_http_requests.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/models/_models.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/models/test_repr.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/request_factory/__init__.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/request_factory/test_datasource_requests.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/request_factory/test_workbook_requests.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_connection_.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_data_acceleration_report.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_data_freshness_policy.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_database.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_datasource_model.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_dqw.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_exponential_backoff.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_filter.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_group_model.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_metadata.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_metrics.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_permissionsrule.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_project_model.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_requests.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_site.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_sort.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_subscription.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_table.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_tableauauth_model.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_webhook.py +0 -0
- {tableauserverclient-0.32 → tableauserverclient-0.34}/test/test_workbook_model.py +0 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
This project wouldn't be possible without our amazing contributors.
|
|
2
|
+
|
|
3
|
+
The following people have contributed to this project to make it possible, and we thank them for their contributions!
|
|
4
|
+
|
|
5
|
+
## Contributors
|
|
6
|
+
|
|
7
|
+
* [jacalata](https://github.com/jacalata)
|
|
8
|
+
* [jorwoods](https://github.com/jorwoods)
|
|
9
|
+
* [t8y8](https://github.com/t8y8)
|
|
10
|
+
* [bcantoni](https://github.com/bcantoni)
|
|
11
|
+
* [shinchris](https://github.com/shinchris)
|
|
12
|
+
* [vogelsgesang](https://github.com/vogelsgesang)
|
|
13
|
+
* [lbrendanl](https://github.com/lbrendanl)
|
|
14
|
+
* [LGraber](https://github.com/LGraber)
|
|
15
|
+
* [gaoang2148](https://github.com/gaoang2148)
|
|
16
|
+
* [benlower](https://github.com/benlower)
|
|
17
|
+
* [liu-rebecca](https://github.com/liu-rebecca)
|
|
18
|
+
* [guodah](https://github.com/guodah)
|
|
19
|
+
* [jdomingu](https://github.com/jdomingu)
|
|
20
|
+
* [kykrueger](https://github.com/kykrueger)
|
|
21
|
+
* [jz-huang](https://github.com/jz-huang)
|
|
22
|
+
* [opus-42](https://github.com/opus-42)
|
|
23
|
+
* [markm-io](https://github.com/markm-io)
|
|
24
|
+
* [graysonarts](https://github.com/graysonarts)
|
|
25
|
+
* [d45](https://github.com/d45)
|
|
26
|
+
* [preguraman](https://github.com/preguraman)
|
|
27
|
+
* [sotnich](https://github.com/sotnich)
|
|
28
|
+
* [mmuttreja-tableau](https://github.com/mmuttreja-tableau)
|
|
29
|
+
* [dependabot[bot]](https://github.com/apps/dependabot)
|
|
30
|
+
* [scuml](https://github.com/scuml)
|
|
31
|
+
* [ovinis](https://github.com/ovinis)
|
|
32
|
+
* [FFMMM](https://github.com/FFMMM)
|
|
33
|
+
* [martinbpeters](https://github.com/martinbpeters)
|
|
34
|
+
* [talvalin](https://github.com/talvalin)
|
|
35
|
+
* [dzucker-tab](https://github.com/dzucker-tab)
|
|
36
|
+
* [a-torres-2](https://github.com/a-torres-2)
|
|
37
|
+
* [nnevalainen](https://github.com/nnevalainen)
|
|
38
|
+
* [mbren](https://github.com/mbren)
|
|
39
|
+
* [wolkiewiczk](https://github.com/wolkiewiczk)
|
|
40
|
+
* [jacobj10](https://github.com/jacobj10)
|
|
41
|
+
* [hugoboos](https://github.com/hugoboos)
|
|
42
|
+
* [grbritz](https://github.com/grbritz)
|
|
43
|
+
* [fpagliar](https://github.com/fpagliar)
|
|
44
|
+
* [bskim45](https://github.com/bskim45)
|
|
45
|
+
* [baixin137](https://github.com/baixin137)
|
|
46
|
+
* [jessicachen79](https://github.com/jessicachen79)
|
|
47
|
+
* [gconklin](https://github.com/gconklin)
|
|
48
|
+
* [geordielad](https://github.com/geordielad)
|
|
49
|
+
* [fossabot](https://github.com/fossabot)
|
|
50
|
+
* [daniel1608](https://github.com/daniel1608)
|
|
51
|
+
* [annematronic](https://github.com/annematronic)
|
|
52
|
+
* [rshide](https://github.com/rshide)
|
|
53
|
+
* [VathsalaAchar](https://github.com/VathsalaAchar)
|
|
54
|
+
* [TrimPeachu](https://github.com/TrimPeachu)
|
|
55
|
+
* [ajbosco](https://github.com/ajbosco)
|
|
56
|
+
* [jimbodriven](https://github.com/jimbodriven)
|
|
57
|
+
* [ltiffanydev](https://github.com/ltiffanydev)
|
|
58
|
+
* [martydertz](https://github.com/martydertz)
|
|
59
|
+
* [r-richmond](https://github.com/r-richmond)
|
|
60
|
+
* [sfarr15](https://github.com/sfarr15)
|
|
61
|
+
* [tagyoureit](https://github.com/tagyoureit)
|
|
62
|
+
* [tjones-commits](https://github.com/tjones-commits)
|
|
63
|
+
* [yoshichan5](https://github.com/yoshichan5)
|
|
64
|
+
* [wlodi83](https://github.com/wlodi83)
|
|
65
|
+
* [anipmehta](https://github.com/anipmehta)
|
|
66
|
+
* [cmtoomey](https://github.com/cmtoomey)
|
|
67
|
+
* [pes-magic](https://github.com/pes-magic)
|
|
68
|
+
* [illonage](https://github.com/illonage)
|
|
69
|
+
* [jayvdb](https://github.com/jayvdb)
|
|
70
|
+
* [jorgeFons](https://github.com/jorgeFons)
|
|
71
|
+
* [Kovner](https://github.com/Kovner)
|
|
72
|
+
* [LarsBreddemann](https://github.com/LarsBreddemann)
|
|
73
|
+
* [lboynton](https://github.com/lboynton)
|
|
74
|
+
* [maddy-at-leisure](https://github.com/maddy-at-leisure)
|
|
75
|
+
* [narcolino-tableau](https://github.com/narcolino-tableau)
|
|
76
|
+
* [PatrickfBraz](https://github.com/PatrickfBraz)
|
|
77
|
+
* [paulvic](https://github.com/paulvic)
|
|
78
|
+
* [shrmnk](https://github.com/shrmnk)
|
|
79
|
+
* [TableauKyle](https://github.com/TableauKyle)
|
|
80
|
+
* [bossenti](https://github.com/bossenti)
|
|
81
|
+
* [ma7tcsp](https://github.com/ma7tcsp)
|
|
82
|
+
* [toomyem](https://github.com/toomyem)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: tableauserverclient
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.34
|
|
4
4
|
Summary: A Python module for working with the Tableau Server REST API.
|
|
5
5
|
Author-email: Tableau <github@tableau.com>
|
|
6
6
|
License: The MIT License (MIT)
|
|
@@ -28,22 +28,22 @@ License: The MIT License (MIT)
|
|
|
28
28
|
Project-URL: repository, https://github.com/tableau/server-client-python
|
|
29
29
|
Classifier: Programming Language :: Python
|
|
30
30
|
Classifier: Programming Language :: Python :: 3
|
|
31
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
32
31
|
Classifier: Programming Language :: Python :: 3.9
|
|
33
32
|
Classifier: Programming Language :: Python :: 3.10
|
|
34
33
|
Classifier: Programming Language :: Python :: 3.11
|
|
35
34
|
Classifier: Programming Language :: Python :: 3.12
|
|
36
|
-
|
|
35
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
36
|
+
Requires-Python: >=3.9
|
|
37
37
|
Description-Content-Type: text/markdown
|
|
38
38
|
License-File: LICENSE
|
|
39
39
|
License-File: LICENSE.versioneer
|
|
40
40
|
Requires-Dist: defusedxml>=0.7.1
|
|
41
41
|
Requires-Dist: packaging>=23.1
|
|
42
|
-
Requires-Dist: requests>=2.
|
|
43
|
-
Requires-Dist: urllib3
|
|
42
|
+
Requires-Dist: requests>=2.32
|
|
43
|
+
Requires-Dist: urllib3<3,>=2.2.2
|
|
44
44
|
Requires-Dist: typing_extensions>=4.0.1
|
|
45
45
|
Provides-Extra: test
|
|
46
|
-
Requires-Dist: black==
|
|
46
|
+
Requires-Dist: black==24.8; extra == "test"
|
|
47
47
|
Requires-Dist: build; extra == "test"
|
|
48
48
|
Requires-Dist: mypy==1.4; extra == "test"
|
|
49
49
|
Requires-Dist: pytest>=7.0; extra == "test"
|
|
@@ -62,14 +62,14 @@ Use the Tableau Server Client (TSC) library to increase your productivity as you
|
|
|
62
62
|
* Create users and groups.
|
|
63
63
|
* Query projects, sites, and more.
|
|
64
64
|
|
|
65
|
-
This repository contains Python source code for the library and sample files showing how to use it. As of
|
|
65
|
+
This repository contains Python source code for the library and sample files showing how to use it. As of September 2024, support for Python 3.7 and 3.8 will be dropped - support for older versions of Python aims to match https://devguide.python.org/versions/
|
|
66
66
|
|
|
67
67
|
To see sample code that works directly with the REST API (in Java, Python, or Postman), visit the [REST API Samples](https://github.com/tableau/rest-api-samples) repo.
|
|
68
68
|
|
|
69
69
|
For more information on installing and using TSC, see the documentation:
|
|
70
70
|
<https://tableau.github.io/server-client-python/docs/>
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
To contribute, see our [Developer Guide](https://tableau.github.io/server-client-python/docs/dev-guide). A list of all our contributors to date is in [CONTRIBUTORS.md].
|
|
73
73
|
|
|
74
74
|
## License
|
|
75
75
|
[](https://app.fossa.com/projects/git%2Bgithub.com%2Ftableau%2Fserver-client-python?ref=badge_large)
|
|
@@ -9,14 +9,14 @@ Use the Tableau Server Client (TSC) library to increase your productivity as you
|
|
|
9
9
|
* Create users and groups.
|
|
10
10
|
* Query projects, sites, and more.
|
|
11
11
|
|
|
12
|
-
This repository contains Python source code for the library and sample files showing how to use it. As of
|
|
12
|
+
This repository contains Python source code for the library and sample files showing how to use it. As of September 2024, support for Python 3.7 and 3.8 will be dropped - support for older versions of Python aims to match https://devguide.python.org/versions/
|
|
13
13
|
|
|
14
14
|
To see sample code that works directly with the REST API (in Java, Python, or Postman), visit the [REST API Samples](https://github.com/tableau/rest-api-samples) repo.
|
|
15
15
|
|
|
16
16
|
For more information on installing and using TSC, see the documentation:
|
|
17
17
|
<https://tableau.github.io/server-client-python/docs/>
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
To contribute, see our [Developer Guide](https://tableau.github.io/server-client-python/docs/dev-guide). A list of all our contributors to date is in [CONTRIBUTORS.md].
|
|
20
20
|
|
|
21
21
|
## License
|
|
22
22
|
[](https://app.fossa.com/projects/git%2Bgithub.com%2Ftableau%2Fserver-client-python?ref=badge_large)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
We welcome contributions to this project!
|
|
4
|
+
|
|
5
|
+
Contribution can include, but are not limited to, any of the following:
|
|
6
|
+
|
|
7
|
+
* File an Issue
|
|
8
|
+
* Request a Feature
|
|
9
|
+
* Implement a Requested Feature
|
|
10
|
+
* Fix an Issue/Bug
|
|
11
|
+
* Add/Fix documentation
|
|
12
|
+
|
|
13
|
+
## Issues and Feature Requests
|
|
14
|
+
|
|
15
|
+
To submit an issue/bug report, or to request a feature, please submit a [GitHub issue](https://github.com/tableau/server-client-python/issues) to the repo.
|
|
16
|
+
|
|
17
|
+
If you are submitting a bug report, please provide as much information as you can, including clear and concise repro steps, attaching any necessary
|
|
18
|
+
files to assist in the repro. **Be sure to scrub the files of any potentially sensitive information. Issues are public.**
|
|
19
|
+
|
|
20
|
+
For a feature request, please try to describe the scenario you are trying to accomplish that requires the feature. This will help us understand
|
|
21
|
+
the limitations that you are running into, and provide us with a use case to know if we've satisfied your request.
|
|
22
|
+
|
|
23
|
+
### Making Contributions
|
|
24
|
+
|
|
25
|
+
Refer to the [Developer Guide](https://tableau.github.io/server-client-python/docs/dev-guide) which explains how to make contributions to the TSC project.
|
|
@@ -14,42 +14,42 @@ readme = "README.md"
|
|
|
14
14
|
dependencies = [
|
|
15
15
|
'defusedxml>=0.7.1', # latest as at 7/31/23
|
|
16
16
|
'packaging>=23.1', # latest as at 7/31/23
|
|
17
|
-
'requests>=2.
|
|
18
|
-
'urllib3
|
|
17
|
+
'requests>=2.32', # latest as at 7/31/23
|
|
18
|
+
'urllib3>=2.2.2,<3',
|
|
19
19
|
'typing_extensions>=4.0.1',
|
|
20
20
|
]
|
|
21
|
-
requires-python = ">=3.
|
|
21
|
+
requires-python = ">=3.9"
|
|
22
22
|
classifiers = [
|
|
23
23
|
"Programming Language :: Python",
|
|
24
24
|
"Programming Language :: Python :: 3",
|
|
25
|
-
"Programming Language :: Python :: 3.8",
|
|
26
25
|
"Programming Language :: Python :: 3.9",
|
|
27
26
|
"Programming Language :: Python :: 3.10",
|
|
28
27
|
"Programming Language :: Python :: 3.11",
|
|
29
|
-
"Programming Language :: Python :: 3.12"
|
|
28
|
+
"Programming Language :: Python :: 3.12",
|
|
29
|
+
"Programming Language :: Python :: 3.13"
|
|
30
30
|
]
|
|
31
31
|
[project.urls]
|
|
32
32
|
repository = "https://github.com/tableau/server-client-python"
|
|
33
33
|
|
|
34
34
|
[project.optional-dependencies]
|
|
35
|
-
test = ["black==
|
|
35
|
+
test = ["black==24.8", "build", "mypy==1.4", "pytest>=7.0", "pytest-cov", "pytest-subtests",
|
|
36
36
|
"requests-mock>=1.0,<2.0"]
|
|
37
37
|
|
|
38
38
|
[tool.black]
|
|
39
39
|
line-length = 120
|
|
40
|
-
target-version = ['
|
|
40
|
+
target-version = ['py39', 'py310', 'py311', 'py312', 'py313']
|
|
41
41
|
|
|
42
42
|
[tool.mypy]
|
|
43
43
|
check_untyped_defs = false
|
|
44
44
|
disable_error_code = [
|
|
45
45
|
'misc',
|
|
46
|
-
# tableauserverclient\server\endpoint\datasources_endpoint.py:48: error: Cannot assign multiple types to name "FilePath" without an explicit "Type[...]" annotation [misc]
|
|
47
46
|
'annotation-unchecked' # can be removed when check_untyped_defs = true
|
|
48
47
|
]
|
|
49
|
-
files = ["tableauserverclient", "test"]
|
|
48
|
+
files = ["tableauserverclient", "test", "samples"]
|
|
50
49
|
show_error_codes = true
|
|
51
50
|
ignore_missing_imports = true # defusedxml library has no types
|
|
52
51
|
no_implicit_reexport = true
|
|
52
|
+
implicit_optional = true
|
|
53
53
|
|
|
54
54
|
[tool.pytest.ini_options]
|
|
55
55
|
testpaths = ["test"]
|
|
@@ -63,10 +63,10 @@ def main():
|
|
|
63
63
|
for permission in new_default_permissions:
|
|
64
64
|
grantee = permission.grantee
|
|
65
65
|
capabilities = permission.capabilities
|
|
66
|
-
print("\nCapabilities for {
|
|
66
|
+
print(f"\nCapabilities for {grantee.tag_name} {grantee.id}:")
|
|
67
67
|
|
|
68
68
|
for capability in capabilities:
|
|
69
|
-
print("\t{
|
|
69
|
+
print(f"\t{capability} - {capabilities[capability]}")
|
|
70
70
|
|
|
71
71
|
# Uncomment lines below to DELETE the new capability and the new project
|
|
72
72
|
# rules_to_delete = TSC.PermissionsRule(
|
|
@@ -11,7 +11,6 @@ import logging
|
|
|
11
11
|
import os
|
|
12
12
|
|
|
13
13
|
from datetime import time
|
|
14
|
-
from typing import List
|
|
15
14
|
|
|
16
15
|
import tableauserverclient as TSC
|
|
17
16
|
from tableauserverclient import ServerResponseError
|
|
@@ -63,23 +62,23 @@ def main():
|
|
|
63
62
|
|
|
64
63
|
if args.file:
|
|
65
64
|
filepath = os.path.abspath(args.file)
|
|
66
|
-
print("Add users to site from file {}:"
|
|
67
|
-
added:
|
|
68
|
-
failed:
|
|
65
|
+
print(f"Add users to site from file {filepath}:")
|
|
66
|
+
added: list[TSC.UserItem]
|
|
67
|
+
failed: list[TSC.UserItem, TSC.ServerResponseError]
|
|
69
68
|
added, failed = server.users.create_from_file(filepath)
|
|
70
69
|
for user, error in failed:
|
|
71
70
|
print(user, error.code)
|
|
72
71
|
if error.code == "409017":
|
|
73
72
|
user = server.users.filter(name=user.name)[0]
|
|
74
73
|
added.append(user)
|
|
75
|
-
print("Adding users to group:{}"
|
|
74
|
+
print(f"Adding users to group:{added}")
|
|
76
75
|
for user in added:
|
|
77
|
-
print("Adding user {}"
|
|
76
|
+
print(f"Adding user {user}")
|
|
78
77
|
try:
|
|
79
78
|
server.groups.add_user(group, user.id)
|
|
80
79
|
except ServerResponseError as serverError:
|
|
81
80
|
if serverError.code == "409011":
|
|
82
|
-
print("user {} is already a member of group {
|
|
81
|
+
print(f"user {user.name} is already a member of group {group.name}")
|
|
83
82
|
else:
|
|
84
83
|
raise rError
|
|
85
84
|
|
|
@@ -84,7 +84,7 @@ def main():
|
|
|
84
84
|
server.projects.populate_datasource_default_permissions(changed_project),
|
|
85
85
|
server.projects.populate_permissions(changed_project)
|
|
86
86
|
# Projects have default permissions set for the object types they contain
|
|
87
|
-
print("Permissions from project {}:"
|
|
87
|
+
print(f"Permissions from project {changed_project.id}:")
|
|
88
88
|
print(changed_project.permissions)
|
|
89
89
|
print(
|
|
90
90
|
changed_project.default_workbook_permissions,
|
|
@@ -55,7 +55,7 @@ def main():
|
|
|
55
55
|
)
|
|
56
56
|
try:
|
|
57
57
|
hourly_schedule = server.schedules.create(hourly_schedule)
|
|
58
|
-
print("Hourly schedule created (ID: {})."
|
|
58
|
+
print(f"Hourly schedule created (ID: {hourly_schedule.id}).")
|
|
59
59
|
except Exception as e:
|
|
60
60
|
print(e)
|
|
61
61
|
|
|
@@ -71,7 +71,7 @@ def main():
|
|
|
71
71
|
)
|
|
72
72
|
try:
|
|
73
73
|
daily_schedule = server.schedules.create(daily_schedule)
|
|
74
|
-
print("Daily schedule created (ID: {})."
|
|
74
|
+
print(f"Daily schedule created (ID: {daily_schedule.id}).")
|
|
75
75
|
except Exception as e:
|
|
76
76
|
print(e)
|
|
77
77
|
|
|
@@ -89,7 +89,7 @@ def main():
|
|
|
89
89
|
)
|
|
90
90
|
try:
|
|
91
91
|
weekly_schedule = server.schedules.create(weekly_schedule)
|
|
92
|
-
print("Weekly schedule created (ID: {})."
|
|
92
|
+
print(f"Weekly schedule created (ID: {weekly_schedule.id}).")
|
|
93
93
|
except Exception as e:
|
|
94
94
|
print(e)
|
|
95
95
|
options = TSC.RequestOptions()
|
|
@@ -112,7 +112,7 @@ def main():
|
|
|
112
112
|
)
|
|
113
113
|
try:
|
|
114
114
|
monthly_schedule = server.schedules.create(monthly_schedule)
|
|
115
|
-
print("Monthly schedule created (ID: {})."
|
|
115
|
+
print(f"Monthly schedule created (ID: {monthly_schedule.id}).")
|
|
116
116
|
except Exception as e:
|
|
117
117
|
print(e)
|
|
118
118
|
|
|
@@ -51,16 +51,17 @@ def main():
|
|
|
51
51
|
if args.publish:
|
|
52
52
|
if default_project is not None:
|
|
53
53
|
new_datasource = TSC.DatasourceItem(default_project.id)
|
|
54
|
+
new_datasource.description = "Published with a description"
|
|
54
55
|
new_datasource = server.datasources.publish(
|
|
55
56
|
new_datasource, args.publish, TSC.Server.PublishMode.Overwrite
|
|
56
57
|
)
|
|
57
|
-
print("Datasource published. ID: {
|
|
58
|
+
print(f"Datasource published. ID: {new_datasource.id}")
|
|
58
59
|
else:
|
|
59
60
|
print("Publish failed. Could not find the default project.")
|
|
60
61
|
|
|
61
62
|
# Gets all datasource items
|
|
62
63
|
all_datasources, pagination_item = server.datasources.get()
|
|
63
|
-
print("\nThere are {} datasources on site: "
|
|
64
|
+
print(f"\nThere are {pagination_item.total_available} datasources on site: ")
|
|
64
65
|
print([datasource.name for datasource in all_datasources])
|
|
65
66
|
|
|
66
67
|
if all_datasources:
|
|
@@ -69,20 +70,19 @@ def main():
|
|
|
69
70
|
|
|
70
71
|
# Populate connections
|
|
71
72
|
server.datasources.populate_connections(sample_datasource)
|
|
72
|
-
print("\nConnections for {}: "
|
|
73
|
-
print(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
)
|
|
73
|
+
print(f"\nConnections for {sample_datasource.name}: ")
|
|
74
|
+
print([f"{connection.id}({connection.datasource_name})" for connection in sample_datasource.connections])
|
|
75
|
+
|
|
76
|
+
# Demonstrate that description is editable
|
|
77
|
+
sample_datasource.description = "Description updated by TSC"
|
|
78
|
+
server.datasources.update(sample_datasource)
|
|
79
79
|
|
|
80
80
|
# Add some tags to the datasource
|
|
81
81
|
original_tag_set = set(sample_datasource.tags)
|
|
82
82
|
sample_datasource.tags.update("a", "b", "c", "d")
|
|
83
83
|
server.datasources.update(sample_datasource)
|
|
84
|
-
print("\nOld tag set: {}"
|
|
85
|
-
print("New tag set: {
|
|
84
|
+
print(f"\nOld tag set: {original_tag_set}")
|
|
85
|
+
print(f"New tag set: {sample_datasource.tags}")
|
|
86
86
|
|
|
87
87
|
# Delete all tags that were added by setting tags to original
|
|
88
88
|
sample_datasource.tags = original_tag_set
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import argparse
|
|
4
4
|
import logging
|
|
5
5
|
import tableauserverclient as TSC
|
|
6
|
-
from tableauserverclient import Resource
|
|
6
|
+
from tableauserverclient.models import Resource
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
def main():
|
|
@@ -39,15 +39,15 @@ def main():
|
|
|
39
39
|
# get all favorites on site for the logged on user
|
|
40
40
|
user: TSC.UserItem = TSC.UserItem()
|
|
41
41
|
user.id = server.user_id
|
|
42
|
-
print("Favorites for user: {
|
|
42
|
+
print(f"Favorites for user: {user.id}")
|
|
43
43
|
server.favorites.get(user)
|
|
44
44
|
print(user.favorites)
|
|
45
45
|
|
|
46
46
|
# get list of workbooks
|
|
47
47
|
all_workbook_items, pagination_item = server.workbooks.get()
|
|
48
48
|
if all_workbook_items is not None and len(all_workbook_items) > 0:
|
|
49
|
-
my_workbook
|
|
50
|
-
server.favorites.add_favorite(
|
|
49
|
+
my_workbook = all_workbook_items[0]
|
|
50
|
+
server.favorites.add_favorite(user, Resource.Workbook, all_workbook_items[0])
|
|
51
51
|
print(
|
|
52
52
|
"Workbook added to favorites. Workbook Name: {}, Workbook ID: {}".format(
|
|
53
53
|
my_workbook.name, my_workbook.id
|
|
@@ -57,7 +57,7 @@ def main():
|
|
|
57
57
|
if views is not None and len(views) > 0:
|
|
58
58
|
my_view = views[0]
|
|
59
59
|
server.favorites.add_favorite_view(user, my_view)
|
|
60
|
-
print("View added to favorites. View Name: {}, View ID: {
|
|
60
|
+
print(f"View added to favorites. View Name: {my_view.name}, View ID: {my_view.id}")
|
|
61
61
|
|
|
62
62
|
all_datasource_items, pagination_item = server.datasources.get()
|
|
63
63
|
if all_datasource_items:
|
|
@@ -70,12 +70,10 @@ def main():
|
|
|
70
70
|
)
|
|
71
71
|
|
|
72
72
|
server.favorites.delete_favorite_workbook(user, my_workbook)
|
|
73
|
-
print(
|
|
74
|
-
"Workbook deleted from favorites. Workbook Name: {}, Workbook ID: {}".format(my_workbook.name, my_workbook.id)
|
|
75
|
-
)
|
|
73
|
+
print(f"Workbook deleted from favorites. Workbook Name: {my_workbook.name}, Workbook ID: {my_workbook.id}")
|
|
76
74
|
|
|
77
75
|
server.favorites.delete_favorite_view(user, my_view)
|
|
78
|
-
print("View deleted from favorites. View Name: {}, View ID: {
|
|
76
|
+
print(f"View deleted from favorites. View Name: {my_view.name}, View ID: {my_view.id}")
|
|
79
77
|
|
|
80
78
|
server.favorites.delete_favorite_datasource(user, my_datasource)
|
|
81
79
|
print(
|
|
@@ -49,7 +49,7 @@ def main():
|
|
|
49
49
|
|
|
50
50
|
if args.delete:
|
|
51
51
|
print("You can only delete the site you are currently in")
|
|
52
|
-
print("Delete site `{}`?"
|
|
52
|
+
print(f"Delete site `{current_site.name}`?")
|
|
53
53
|
# server.sites.delete(server.site_id)
|
|
54
54
|
|
|
55
55
|
elif args.create:
|
|
@@ -52,11 +52,11 @@ def main():
|
|
|
52
52
|
new_webhook.event = "datasource-created"
|
|
53
53
|
print(new_webhook)
|
|
54
54
|
new_webhook = server.webhooks.create(new_webhook)
|
|
55
|
-
print("Webhook created. ID: {
|
|
55
|
+
print(f"Webhook created. ID: {new_webhook.id}")
|
|
56
56
|
|
|
57
57
|
# Gets all webhook items
|
|
58
58
|
all_webhooks, pagination_item = server.webhooks.get()
|
|
59
|
-
print("\nThere are {} webhooks on site: "
|
|
59
|
+
print(f"\nThere are {pagination_item.total_available} webhooks on site: ")
|
|
60
60
|
print([webhook.name for webhook in all_webhooks])
|
|
61
61
|
|
|
62
62
|
if all_webhooks:
|
|
@@ -59,13 +59,13 @@ def main():
|
|
|
59
59
|
if default_project is not None:
|
|
60
60
|
new_workbook = TSC.WorkbookItem(default_project.id)
|
|
61
61
|
new_workbook = server.workbooks.publish(new_workbook, args.publish, overwrite_true)
|
|
62
|
-
print("Workbook published. ID: {
|
|
62
|
+
print(f"Workbook published. ID: {new_workbook.id}")
|
|
63
63
|
else:
|
|
64
64
|
print("Publish failed. Could not find the default project.")
|
|
65
65
|
|
|
66
66
|
# Gets all workbook items
|
|
67
67
|
all_workbooks, pagination_item = server.workbooks.get()
|
|
68
|
-
print("\nThere are {} workbooks on site: "
|
|
68
|
+
print(f"\nThere are {pagination_item.total_available} workbooks on site: ")
|
|
69
69
|
print([workbook.name for workbook in all_workbooks])
|
|
70
70
|
|
|
71
71
|
if all_workbooks:
|
|
@@ -78,27 +78,22 @@ def main():
|
|
|
78
78
|
|
|
79
79
|
# Populate views
|
|
80
80
|
server.workbooks.populate_views(sample_workbook)
|
|
81
|
-
print("\nName of views in {}: "
|
|
81
|
+
print(f"\nName of views in {sample_workbook.name}: ")
|
|
82
82
|
print([view.name for view in sample_workbook.views])
|
|
83
83
|
|
|
84
84
|
# Populate connections
|
|
85
85
|
server.workbooks.populate_connections(sample_workbook)
|
|
86
|
-
print("\nConnections for {}: "
|
|
87
|
-
print(
|
|
88
|
-
[
|
|
89
|
-
"{0}({1})".format(connection.id, connection.datasource_name)
|
|
90
|
-
for connection in sample_workbook.connections
|
|
91
|
-
]
|
|
92
|
-
)
|
|
86
|
+
print(f"\nConnections for {sample_workbook.name}: ")
|
|
87
|
+
print([f"{connection.id}({connection.datasource_name})" for connection in sample_workbook.connections])
|
|
93
88
|
|
|
94
89
|
# Update tags and show_tabs flag
|
|
95
90
|
original_tag_set = set(sample_workbook.tags)
|
|
96
91
|
sample_workbook.tags.update("a", "b", "c", "d")
|
|
97
92
|
sample_workbook.show_tabs = True
|
|
98
93
|
server.workbooks.update(sample_workbook)
|
|
99
|
-
print("\nWorkbook's old tag set: {}"
|
|
100
|
-
print("Workbook's new tag set: {
|
|
101
|
-
print("Workbook tabbed: {
|
|
94
|
+
print(f"\nWorkbook's old tag set: {original_tag_set}")
|
|
95
|
+
print(f"Workbook's new tag set: {sample_workbook.tags}")
|
|
96
|
+
print(f"Workbook tabbed: {sample_workbook.show_tabs}")
|
|
102
97
|
|
|
103
98
|
# Delete all tags that were added by setting tags to original
|
|
104
99
|
sample_workbook.tags = original_tag_set
|
|
@@ -109,8 +104,8 @@ def main():
|
|
|
109
104
|
original_tag_set = set(sample_view.tags)
|
|
110
105
|
sample_view.tags.add("view_tag")
|
|
111
106
|
server.views.update(sample_view)
|
|
112
|
-
print("\nView's old tag set: {}"
|
|
113
|
-
print("View's new tag set: {
|
|
107
|
+
print(f"\nView's old tag set: {original_tag_set}")
|
|
108
|
+
print(f"View's new tag set: {sample_view.tags}")
|
|
114
109
|
|
|
115
110
|
# Delete tag from just one view
|
|
116
111
|
sample_view.tags = original_tag_set
|
|
@@ -119,14 +114,14 @@ def main():
|
|
|
119
114
|
if args.download:
|
|
120
115
|
# Download
|
|
121
116
|
path = server.workbooks.download(sample_workbook.id, args.download)
|
|
122
|
-
print("\nDownloaded workbook to {}"
|
|
117
|
+
print(f"\nDownloaded workbook to {path}")
|
|
123
118
|
|
|
124
119
|
if args.preview_image:
|
|
125
120
|
# Populate workbook preview image
|
|
126
121
|
server.workbooks.populate_preview_image(sample_workbook)
|
|
127
122
|
with open(args.preview_image, "wb") as f:
|
|
128
123
|
f.write(sample_workbook.preview_image)
|
|
129
|
-
print("\nDownloaded preview image of workbook to {
|
|
124
|
+
print(f"\nDownloaded preview image of workbook to {os.path.abspath(args.preview_image)}")
|
|
130
125
|
|
|
131
126
|
# get custom views
|
|
132
127
|
cvs, _ = server.custom_views.get()
|
|
@@ -153,10 +148,10 @@ def main():
|
|
|
153
148
|
server.workbooks.populate_powerpoint(sample_workbook)
|
|
154
149
|
with open(args.powerpoint, "wb") as f:
|
|
155
150
|
f.write(sample_workbook.powerpoint)
|
|
156
|
-
print("\nDownloaded powerpoint of workbook to {
|
|
151
|
+
print(f"\nDownloaded powerpoint of workbook to {os.path.abspath(args.powerpoint)}")
|
|
157
152
|
|
|
158
153
|
if args.delete:
|
|
159
|
-
print("deleting {
|
|
154
|
+
print(f"deleting {c.id}")
|
|
160
155
|
unlucky = TSC.CustomViewItem(c.id)
|
|
161
156
|
server.custom_views.delete(unlucky.id)
|
|
162
157
|
|
|
@@ -37,8 +37,11 @@ def main():
|
|
|
37
37
|
"--csv", dest="type", action="store_const", const=("populate_csv", "CSVRequestOptions", "csv", "csv")
|
|
38
38
|
)
|
|
39
39
|
# other options shown in explore_workbooks: workbook.download, workbook.preview_image
|
|
40
|
-
|
|
40
|
+
parser.add_argument(
|
|
41
|
+
"--language", help="Text such as 'Average' will appear in this language. Use values like fr, de, es, en"
|
|
42
|
+
)
|
|
41
43
|
parser.add_argument("--workbook", action="store_true")
|
|
44
|
+
parser.add_argument("--custom_view", action="store_true")
|
|
42
45
|
|
|
43
46
|
parser.add_argument("--file", "-f", help="filename to store the exported data")
|
|
44
47
|
parser.add_argument("--filter", "-vf", metavar="COLUMN:VALUE", help="View filter to apply to the view")
|
|
@@ -56,14 +59,16 @@ def main():
|
|
|
56
59
|
print("Connected")
|
|
57
60
|
if args.workbook:
|
|
58
61
|
item = server.workbooks.get_by_id(args.resource_id)
|
|
62
|
+
elif args.custom_view:
|
|
63
|
+
item = server.custom_views.get_by_id(args.resource_id)
|
|
59
64
|
else:
|
|
60
65
|
item = server.views.get_by_id(args.resource_id)
|
|
61
66
|
|
|
62
67
|
if not item:
|
|
63
|
-
print("No item found for id {
|
|
68
|
+
print(f"No item found for id {args.resource_id}")
|
|
64
69
|
exit(1)
|
|
65
70
|
|
|
66
|
-
print("Item found: {
|
|
71
|
+
print(f"Item found: {item.name}")
|
|
67
72
|
# We have a number of different types and functions for each different export type.
|
|
68
73
|
# We encode that information above in the const=(...) parameter to the add_argument function to make
|
|
69
74
|
# the code automatically adapt for the type of export the user is doing.
|
|
@@ -72,18 +77,22 @@ def main():
|
|
|
72
77
|
populate = getattr(server.views, populate_func_name)
|
|
73
78
|
if args.workbook:
|
|
74
79
|
populate = getattr(server.workbooks, populate_func_name)
|
|
80
|
+
elif args.custom_view:
|
|
81
|
+
populate = getattr(server.custom_views, populate_func_name)
|
|
75
82
|
|
|
76
83
|
option_factory = getattr(TSC, option_factory_name)
|
|
84
|
+
options: TSC.PDFRequestOptions = option_factory()
|
|
77
85
|
|
|
78
86
|
if args.filter:
|
|
79
|
-
options =
|
|
80
|
-
|
|
81
|
-
|
|
87
|
+
options = options.vf(*args.filter.split(":"))
|
|
88
|
+
|
|
89
|
+
if args.language:
|
|
90
|
+
options.language = args.language
|
|
82
91
|
|
|
83
92
|
if args.file:
|
|
84
93
|
filename = args.file
|
|
85
94
|
else:
|
|
86
|
-
filename = "out.{}"
|
|
95
|
+
filename = f"out-{options.language}.{extension}"
|
|
87
96
|
|
|
88
97
|
populate(item, options)
|
|
89
98
|
with open(filename, "wb") as f:
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
####
|
|
2
|
-
# This script demonstrates how to use the Tableau Server Client
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
#
|
|
6
|
-
# With no flags set, this sample will query all workbooks,
|
|
7
|
-
# pick one workbook and populate its connections/views, and update
|
|
8
|
-
# the workbook. Adding flags will demonstrate the specific feature
|
|
9
|
-
# on top of the general operations.
|
|
10
|
-
####
|
|
2
|
+
# This script demonstrates how to use the Tableau Server Client to interact with extracts.
|
|
3
|
+
# It explores the different functions that the REST API supports on extracts.
|
|
4
|
+
#####
|
|
11
5
|
|
|
12
6
|
import argparse
|
|
13
7
|
import logging
|
|
@@ -47,7 +41,7 @@ def main():
|
|
|
47
41
|
with server.auth.sign_in(tableau_auth):
|
|
48
42
|
# Gets all workbook items
|
|
49
43
|
all_workbooks, pagination_item = server.workbooks.get()
|
|
50
|
-
print("\nThere are {} workbooks on site: "
|
|
44
|
+
print(f"\nThere are {pagination_item.total_available} workbooks on site: ")
|
|
51
45
|
print([workbook.name for workbook in all_workbooks])
|
|
52
46
|
|
|
53
47
|
if all_workbooks:
|