tableauserverclient 0.25__tar.gz → 0.27.post0.dev1__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.
Files changed (364) hide show
  1. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/PKG-INFO +16 -3
  2. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/README.md +1 -1
  3. tableauserverclient-0.27.post0.dev1/pyproject.toml +53 -0
  4. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/add_default_permission.py +3 -7
  5. tableauserverclient-0.27.post0.dev1/samples/create_extract_task.py +84 -0
  6. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/create_group.py +3 -7
  7. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/create_project.py +11 -8
  8. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/create_schedules.py +3 -7
  9. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/explore_datasource.py +3 -7
  10. tableauserverclient-0.27.post0.dev1/samples/explore_favorites.py +85 -0
  11. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/explore_site.py +3 -7
  12. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/explore_webhooks.py +3 -7
  13. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/explore_workbook.py +13 -7
  14. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/export.py +3 -7
  15. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/extracts.py +3 -7
  16. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/filter_sort_groups.py +3 -7
  17. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/filter_sort_projects.py +3 -7
  18. tableauserverclient-0.27.post0.dev1/samples/getting_started/1_hello_server.py +21 -0
  19. tableauserverclient-0.27.post0.dev1/samples/getting_started/2_hello_site.py +50 -0
  20. tableauserverclient-0.27.post0.dev1/samples/getting_started/3_hello_universe.py +96 -0
  21. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/initialize_server.py +5 -9
  22. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/kill_all_jobs.py +3 -7
  23. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/list.py +3 -7
  24. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/login.py +15 -6
  25. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/metadata_query.py +3 -7
  26. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/move_workbook_projects.py +5 -9
  27. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/move_workbook_sites.py +5 -9
  28. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/pagination_sample.py +3 -7
  29. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/publish_datasource.py +29 -11
  30. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/publish_workbook.py +4 -8
  31. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/query_permissions.py +3 -7
  32. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/refresh.py +3 -7
  33. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/refresh_tasks.py +3 -7
  34. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/set_refresh_schedule.py +3 -7
  35. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/smoke_test.py +9 -1
  36. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/update_connection.py +3 -7
  37. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/update_datasource_data.py +3 -7
  38. tableauserverclient-0.27.post0.dev1/tableauserverclient/__init__.py +58 -0
  39. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/_version.py +4 -4
  40. tableauserverclient-0.27.post0.dev1/tableauserverclient/config.py +13 -0
  41. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/datetime_helpers.py +4 -0
  42. tableauserverclient-0.27.post0.dev1/tableauserverclient/helpers/logging.py +4 -0
  43. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/__init__.py +1 -1
  44. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/column_item.py +3 -0
  45. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/connection_credentials.py +7 -0
  46. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/connection_item.py +1 -1
  47. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/custom_view_item.py +5 -0
  48. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/data_acceleration_report_item.py +3 -0
  49. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/datasource_item.py +10 -54
  50. tableauserverclient-0.27.post0.dev1/tableauserverclient/models/favorites_item.py +90 -0
  51. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/fileupload_item.py +2 -2
  52. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/flow_item.py +30 -25
  53. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/group_item.py +1 -4
  54. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/interval_item.py +12 -0
  55. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/job_item.py +10 -1
  56. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/metric_item.py +36 -29
  57. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/pagination_item.py +3 -0
  58. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/permissions_item.py +8 -5
  59. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/project_item.py +11 -13
  60. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/schedule_item.py +6 -7
  61. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/server_info_item.py +2 -2
  62. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/site_item.py +3 -0
  63. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/subscription_item.py +8 -0
  64. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/table_item.py +6 -0
  65. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/tableau_auth.py +41 -6
  66. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/tableau_types.py +4 -2
  67. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/user_item.py +5 -1
  68. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/view_item.py +39 -36
  69. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/workbook_item.py +14 -43
  70. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/__init__.py +1 -3
  71. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/__init__.py +1 -5
  72. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/auth_endpoint.py +29 -8
  73. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/custom_views_endpoint.py +1 -1
  74. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/data_acceleration_report_endpoint.py +1 -1
  75. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/data_alert_endpoint.py +1 -1
  76. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/databases_endpoint.py +1 -1
  77. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/datasources_endpoint.py +21 -15
  78. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/default_permissions_endpoint.py +1 -1
  79. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/dqw_endpoint.py +1 -1
  80. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/endpoint.py +98 -11
  81. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/exceptions.py +1 -5
  82. tableauserverclient-0.27.post0.dev1/tableauserverclient/server/endpoint/favorites_endpoint.py +135 -0
  83. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/fileuploads_endpoint.py +11 -10
  84. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/flow_runs_endpoint.py +1 -1
  85. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/flows_endpoint.py +5 -5
  86. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/groups_endpoint.py +5 -2
  87. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/jobs_endpoint.py +1 -1
  88. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/metadata_endpoint.py +1 -1
  89. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/metrics_endpoint.py +1 -1
  90. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/permissions_endpoint.py +1 -1
  91. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/projects_endpoint.py +3 -1
  92. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/resource_tagger.py +3 -3
  93. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/schedules_endpoint.py +2 -1
  94. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/server_info_endpoint.py +2 -4
  95. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/sites_endpoint.py +1 -1
  96. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/subscriptions_endpoint.py +1 -1
  97. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/tables_endpoint.py +1 -1
  98. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/tasks_endpoint.py +12 -1
  99. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/users_endpoint.py +1 -1
  100. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/views_endpoint.py +1 -1
  101. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/webhooks_endpoint.py +1 -1
  102. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/workbooks_endpoint.py +4 -2
  103. tableauserverclient-0.27.post0.dev1/tableauserverclient/server/exceptions.py +9 -0
  104. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/filter.py +5 -1
  105. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/request_factory.py +56 -12
  106. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/request_options.py +4 -2
  107. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/server.py +12 -13
  108. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient.egg-info/PKG-INFO +16 -3
  109. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient.egg-info/SOURCES.txt +11 -0
  110. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient.egg-info/requires.txt +6 -5
  111. tableauserverclient-0.27.post0.dev1/test/assets/group_update_async.xml +10 -0
  112. tableauserverclient-0.27.post0.dev1/test/assets/request_option_filter_name_in.xml +12 -0
  113. tableauserverclient-0.27.post0.dev1/test/assets/tasks_create_extract_task.xml +12 -0
  114. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/models/_models.py +23 -26
  115. tableauserverclient-0.27.post0.dev1/test/models/test_repr.py +51 -0
  116. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_auth.py +3 -3
  117. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_custom_view.py +2 -1
  118. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_datasource.py +7 -5
  119. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_datasource_model.py +3 -5
  120. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_endpoint.py +24 -1
  121. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_favorites.py +2 -0
  122. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_fileuploads.py +2 -2
  123. tableauserverclient-0.27.post0.dev1/test/test_filter.py +22 -0
  124. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_group.py +18 -1
  125. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_group_model.py +0 -10
  126. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_project.py +1 -1
  127. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_project_model.py +4 -8
  128. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_request_option.py +28 -3
  129. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_task.py +26 -1
  130. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_view.py +16 -0
  131. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_webhook.py +2 -1
  132. tableauserverclient-0.25/pyproject.toml +0 -50
  133. tableauserverclient-0.25/tableauserverclient/__init__.py +0 -17
  134. tableauserverclient-0.25/tableauserverclient/models/favorites_item.py +0 -74
  135. tableauserverclient-0.25/tableauserverclient/server/endpoint/favorites_endpoint.py +0 -93
  136. tableauserverclient-0.25/tableauserverclient/server/exceptions.py +0 -2
  137. tableauserverclient-0.25/test/models/test_repr.py +0 -40
  138. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/CHANGELOG.md +0 -0
  139. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/CONTRIBUTORS.md +0 -0
  140. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/LICENSE +0 -0
  141. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/LICENSE.versioneer +0 -0
  142. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/MANIFEST.in +0 -0
  143. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/contributing.md +0 -0
  144. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/docs/README.md +0 -0
  145. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/samples/name.txt +0 -0
  146. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/setup.cfg +0 -0
  147. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/setup.py +0 -0
  148. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/exponential_backoff.py +0 -0
  149. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/filesys_helpers.py +0 -0
  150. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/helpers/__init__.py +0 -0
  151. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/helpers/strings.py +0 -0
  152. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/data_alert_item.py +0 -0
  153. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/database_item.py +0 -0
  154. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/dqw_item.py +0 -0
  155. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/exceptions.py +0 -0
  156. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/flow_run_item.py +0 -0
  157. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/property_decorators.py +0 -0
  158. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/reference_item.py +0 -0
  159. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/revision_item.py +0 -0
  160. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/tag_item.py +0 -0
  161. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/target.py +0 -0
  162. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/task_item.py +0 -0
  163. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/webhook_item.py +0 -0
  164. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/namespace.py +0 -0
  165. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/py.typed +0 -0
  166. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/pager.py +0 -0
  167. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/query.py +0 -0
  168. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/sort.py +0 -0
  169. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient.egg-info/dependency_links.txt +0 -0
  170. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/tableauserverclient.egg-info/top_level.txt +0 -0
  171. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/__init__.py +0 -0
  172. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/_utils.py +0 -0
  173. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/Data/Tableau Samples/World Indicators.tde +0 -0
  174. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/Data/user_details.csv +0 -0
  175. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/Data/usernames.csv +0 -0
  176. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/RESTAPISample Image.png +0 -0
  177. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/Sample View Image.png +0 -0
  178. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/World Indicators.hyper +0 -0
  179. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/auth_sign_in.xml +0 -0
  180. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/auth_sign_in_error.xml +0 -0
  181. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/auth_sign_in_impersonate.xml +0 -0
  182. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/custom_view_get.xml +0 -0
  183. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/custom_view_get_id.xml +0 -0
  184. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/custom_view_update.xml +0 -0
  185. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/data_acceleration_report.xml +0 -0
  186. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/data_alerts_add_user.xml +0 -0
  187. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/data_alerts_get.xml +0 -0
  188. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/data_alerts_get_by_id.xml +0 -0
  189. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/data_alerts_update.xml +0 -0
  190. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/database_get.xml +0 -0
  191. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/database_populate_permissions.xml +0 -0
  192. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/database_update.xml +0 -0
  193. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_add_tags.xml +0 -0
  194. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_connection_update.xml +0 -0
  195. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_data_update.xml +0 -0
  196. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_get.xml +0 -0
  197. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_get_by_id.xml +0 -0
  198. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_get_empty.xml +0 -0
  199. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_populate_connections.xml +0 -0
  200. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_populate_permissions.xml +0 -0
  201. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_publish.xml +0 -0
  202. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_publish_async.xml +0 -0
  203. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_refresh.xml +0 -0
  204. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_revision.xml +0 -0
  205. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_update.xml +0 -0
  206. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/dqw_by_content_type.xml +0 -0
  207. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/favorites_add_datasource.xml +0 -0
  208. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/favorites_add_project.xml +0 -0
  209. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/favorites_add_view.xml +0 -0
  210. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/favorites_add_workbook.xml +0 -0
  211. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/favorites_get.xml +0 -0
  212. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/fileupload_append.xml +0 -0
  213. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/fileupload_initialize.xml +0 -0
  214. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_get.xml +0 -0
  215. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_get_by_id.xml +0 -0
  216. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_populate_connections.xml +0 -0
  217. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_populate_permissions.xml +0 -0
  218. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_publish.xml +0 -0
  219. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_refresh.xml +0 -0
  220. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_runs_get.xml +0 -0
  221. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_runs_get_by_id.xml +0 -0
  222. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_runs_get_by_id_failed.xml +0 -0
  223. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_runs_get_by_id_inprogress.xml +0 -0
  224. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_update.xml +0 -0
  225. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/group_add_user.xml +0 -0
  226. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/group_create.xml +0 -0
  227. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/group_create_ad.xml +0 -0
  228. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/group_create_async.xml +0 -0
  229. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/group_get.xml +0 -0
  230. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/group_populate_users.xml +0 -0
  231. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/group_populate_users_empty.xml +0 -0
  232. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/group_update.xml +0 -0
  233. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/group_users_added.xml +0 -0
  234. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/job_get.xml +0 -0
  235. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/job_get_by_id.xml +0 -0
  236. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/job_get_by_id_failed.xml +0 -0
  237. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/job_get_by_id_failed_workbook.xml +0 -0
  238. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/job_get_by_id_inprogress.xml +0 -0
  239. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/metadata_paged_1.json +0 -0
  240. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/metadata_paged_2.json +0 -0
  241. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/metadata_paged_3.json +0 -0
  242. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/metadata_query_error.json +0 -0
  243. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/metadata_query_expected_dict.dict +0 -0
  244. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/metadata_query_success.json +0 -0
  245. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/metrics_get.xml +0 -0
  246. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/metrics_get_by_id.xml +0 -0
  247. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/metrics_update.xml +0 -0
  248. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/populate_csv.csv +0 -0
  249. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/populate_pdf.pdf +0 -0
  250. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/project_content_permission.xml +0 -0
  251. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/project_create.xml +0 -0
  252. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/project_get.xml +0 -0
  253. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/project_populate_permissions.xml +0 -0
  254. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/project_populate_workbook_default_permissions.xml +0 -0
  255. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/project_update.xml +0 -0
  256. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/project_update_datasource_default_permissions.xml +0 -0
  257. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/queryset_slicing_page_1.xml +0 -0
  258. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/queryset_slicing_page_2.xml +0 -0
  259. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/request_option_filter_equals.xml +0 -0
  260. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/request_option_filter_tags_in.xml +0 -0
  261. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/request_option_page_number.xml +0 -0
  262. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/request_option_page_size.xml +0 -0
  263. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/request_option_pagination.xml +0 -0
  264. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/request_option_slicing_queryset.xml +0 -0
  265. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_add_datasource.xml +0 -0
  266. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_add_flow.xml +0 -0
  267. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_add_workbook.xml +0 -0
  268. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_add_workbook_with_warnings.xml +0 -0
  269. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_create_daily.xml +0 -0
  270. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_create_hourly.xml +0 -0
  271. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_create_monthly.xml +0 -0
  272. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_create_weekly.xml +0 -0
  273. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_get.xml +0 -0
  274. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_get_by_id.xml +0 -0
  275. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_get_empty.xml +0 -0
  276. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_update.xml +0 -0
  277. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/server_info_25.xml +0 -0
  278. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/server_info_404.xml +0 -0
  279. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/server_info_auth_info.xml +0 -0
  280. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/server_info_get.xml +0 -0
  281. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/site_create.xml +0 -0
  282. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/site_get.xml +0 -0
  283. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/site_get_by_id.xml +0 -0
  284. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/site_get_by_name.xml +0 -0
  285. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/site_update.xml +0 -0
  286. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/subscription_create.xml +0 -0
  287. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/subscription_get.xml +0 -0
  288. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/subscription_get_by_id.xml +0 -0
  289. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/table_get.xml +0 -0
  290. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/table_update.xml +0 -0
  291. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/tasks_no_workbook_or_datasource.xml +0 -0
  292. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/tasks_run_now_response.xml +0 -0
  293. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/tasks_with_dataacceleration_task.xml +0 -0
  294. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/tasks_with_datasource.xml +0 -0
  295. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/tasks_with_workbook.xml +0 -0
  296. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/tasks_with_workbook_and_datasource.xml +0 -0
  297. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/user_add.xml +0 -0
  298. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/user_add_favorite.xml +0 -0
  299. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/user_get.xml +0 -0
  300. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/user_get_by_id.xml +0 -0
  301. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/user_get_empty.xml +0 -0
  302. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/user_populate_groups.xml +0 -0
  303. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/user_populate_workbooks.xml +0 -0
  304. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/user_update.xml +0 -0
  305. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/view_add_tags.xml +0 -0
  306. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/view_get.xml +0 -0
  307. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/view_get_id.xml +0 -0
  308. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/view_get_usage.xml +0 -0
  309. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/view_populate_permissions.xml +0 -0
  310. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/view_update_permissions.xml +0 -0
  311. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/webhook_create.xml +0 -0
  312. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/webhook_create_request.xml +0 -0
  313. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/webhook_get.xml +0 -0
  314. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_add_tags.xml +0 -0
  315. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get.xml +0 -0
  316. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_by_id.xml +0 -0
  317. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_by_id_personal.xml +0 -0
  318. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_empty.xml +0 -0
  319. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_invalid_date.xml +0 -0
  320. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_page_1.xml +0 -0
  321. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_page_2.xml +0 -0
  322. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_page_3.xml +0 -0
  323. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_populate_connections.xml +0 -0
  324. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_populate_permissions.xml +0 -0
  325. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_populate_views.xml +0 -0
  326. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_populate_views_usage.xml +0 -0
  327. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_publish.xml +0 -0
  328. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_publish_async.xml +0 -0
  329. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_refresh.xml +0 -0
  330. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_revision.xml +0 -0
  331. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_update.xml +0 -0
  332. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_update_permissions.xml +0 -0
  333. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/http/test_http_requests.py +0 -0
  334. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/request_factory/__init__.py +0 -0
  335. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/request_factory/test_datasource_requests.py +0 -0
  336. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/request_factory/test_workbook_requests.py +0 -0
  337. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_connection_.py +0 -0
  338. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_data_acceleration_report.py +0 -0
  339. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_dataalert.py +0 -0
  340. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_database.py +0 -0
  341. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_dqw.py +0 -0
  342. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_exponential_backoff.py +0 -0
  343. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_filesys_helpers.py +0 -0
  344. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_flow.py +0 -0
  345. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_flowruns.py +0 -0
  346. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_job.py +0 -0
  347. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_metadata.py +0 -0
  348. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_metrics.py +0 -0
  349. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_pager.py +0 -0
  350. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_regression_tests.py +0 -0
  351. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_requests.py +0 -0
  352. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_schedule.py +0 -0
  353. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_server_info.py +0 -0
  354. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_site.py +0 -0
  355. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_site_model.py +0 -0
  356. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_sort.py +0 -0
  357. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_subscription.py +0 -0
  358. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_table.py +0 -0
  359. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_tableauauth_model.py +0 -0
  360. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_user.py +0 -0
  361. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_user_model.py +0 -0
  362. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_workbook.py +0 -0
  363. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/test/test_workbook_model.py +0 -0
  364. {tableauserverclient-0.25 → tableauserverclient-0.27.post0.dev1}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tableauserverclient
3
- Version: 0.25
3
+ Version: 0.27.post0.dev1
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,15 +28,28 @@ 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.7
32
31
  Classifier: Programming Language :: Python :: 3.8
33
32
  Classifier: Programming Language :: Python :: 3.9
34
33
  Classifier: Programming Language :: Python :: 3.10
34
+ Classifier: Programming Language :: Python :: 3.11
35
+ Classifier: Programming Language :: Python :: 3.12
35
36
  Requires-Python: >=3.7
36
37
  Description-Content-Type: text/markdown
37
- Provides-Extra: test
38
38
  License-File: LICENSE
39
39
  License-File: LICENSE.versioneer
40
+ Requires-Dist: defusedxml>=0.7.1
41
+ Requires-Dist: packaging>=23.1
42
+ Requires-Dist: requests>=2.31
43
+ Requires-Dist: urllib3==2.0.6
44
+ Provides-Extra: test
45
+ Requires-Dist: argparse; extra == "test"
46
+ Requires-Dist: black==23.7; extra == "test"
47
+ Requires-Dist: mock; extra == "test"
48
+ Requires-Dist: mypy==1.4; extra == "test"
49
+ Requires-Dist: pytest>=7.0; extra == "test"
50
+ Requires-Dist: pytest-cov; extra == "test"
51
+ Requires-Dist: pytest-subtests; extra == "test"
52
+ Requires-Dist: requests-mock<2.0,>=1.0; extra == "test"
40
53
 
41
54
  # Tableau Server Client (Python)
42
55
 
@@ -19,4 +19,4 @@ For more information on installing and using TSC, see the documentation:
19
19
 
20
20
 
21
21
  ## License
22
- [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Ftableau%2Fserver-client-python.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Ftableau%2Fserver-client-python?ref=badge_large)
22
+ [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Ftableau%2Fserver-client-python.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Ftableau%2Fserver-client-python?ref=badge_large)
@@ -0,0 +1,53 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0", "versioneer>=0.29", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name="tableauserverclient"
7
+
8
+ dynamic = ["version"]
9
+ description='A Python module for working with the Tableau Server REST API.'
10
+ authors = [{name="Tableau", email="github@tableau.com"}]
11
+ license = {file = "LICENSE"}
12
+ readme = "README.md"
13
+
14
+ dependencies = [
15
+ 'defusedxml>=0.7.1', # latest as at 7/31/23
16
+ 'packaging>=23.1', # latest as at 7/31/23
17
+ 'requests>=2.31', # latest as at 7/31/23
18
+ 'urllib3==2.0.6', # latest as at 7/31/23
19
+ ]
20
+ requires-python = ">=3.7"
21
+ classifiers = [
22
+ "Programming Language :: Python",
23
+ "Programming Language :: Python :: 3",
24
+ "Programming Language :: Python :: 3.8",
25
+ "Programming Language :: Python :: 3.9",
26
+ "Programming Language :: Python :: 3.10",
27
+ "Programming Language :: Python :: 3.11",
28
+ "Programming Language :: Python :: 3.12"
29
+ ]
30
+ [project.urls]
31
+ repository = "https://github.com/tableau/server-client-python"
32
+
33
+ [project.optional-dependencies]
34
+ test = ["argparse", "black==23.7", "mock", "mypy==1.4", "pytest>=7.0", "pytest-cov", "pytest-subtests",
35
+ "requests-mock>=1.0,<2.0"]
36
+
37
+ [tool.black]
38
+ line-length = 120
39
+ target-version = ['py37', 'py38', 'py39', 'py310', 'py311', 'py312']
40
+
41
+ [tool.mypy]
42
+ check_untyped_defs = false
43
+ disable_error_code = [
44
+ 'misc',
45
+ # tableauserverclient\server\endpoint\datasources_endpoint.py:48: error: Cannot assign multiple types to name "FilePath" without an explicit "Type[...]" annotation [misc]
46
+ 'annotation-unchecked' # can be removed when check_untyped_defs = true
47
+ ]
48
+ files = ["tableauserverclient", "test"]
49
+ show_error_codes = true
50
+ ignore_missing_imports = true # defusedxml library has no types
51
+ [tool.pytest.ini_options]
52
+ testpaths = ["test"]
53
+ addopts = "--junitxml=./test.junit.xml"
@@ -18,14 +18,10 @@ import tableauserverclient as TSC
18
18
  def main():
19
19
  parser = argparse.ArgumentParser(description="Add workbook default permissions for a given project.")
20
20
  # Common options; please keep those in sync across all samples
21
- parser.add_argument("--server", "-s", required=True, help="server address")
21
+ parser.add_argument("--server", "-s", help="server address")
22
22
  parser.add_argument("--site", "-S", help="site name")
23
- parser.add_argument(
24
- "--token-name", "-p", required=True, help="name of the personal access token used to sign into the server"
25
- )
26
- parser.add_argument(
27
- "--token-value", "-v", required=True, help="value of the personal access token used to sign into the server"
28
- )
23
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
24
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
29
25
  parser.add_argument(
30
26
  "--logging-level",
31
27
  "-l",
@@ -0,0 +1,84 @@
1
+ ####
2
+ # This script demonstrates how to create extract tasks in Tableau Cloud
3
+ # using the Tableau Server Client.
4
+ #
5
+ # To run the script, you must have installed Python 3.7 or later.
6
+ ####
7
+
8
+
9
+ import argparse
10
+ import logging
11
+
12
+ from datetime import time
13
+
14
+ import tableauserverclient as TSC
15
+
16
+
17
+ def main():
18
+ parser = argparse.ArgumentParser(description="Creates sample extract refresh task.")
19
+ # Common options; please keep those in sync across all samples
20
+ parser.add_argument("--server", "-s", help="server address")
21
+ parser.add_argument("--site", "-S", help="site name")
22
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
23
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
24
+ parser.add_argument(
25
+ "--logging-level",
26
+ "-l",
27
+ choices=["debug", "info", "error"],
28
+ default="error",
29
+ help="desired logging level (set to error by default)",
30
+ )
31
+ # Options specific to this sample:
32
+ # This sample has no additional options, yet. If you add some, please add them here
33
+
34
+ args = parser.parse_args()
35
+
36
+ # Set logging level based on user input, or error by default
37
+ logging_level = getattr(logging, args.logging_level.upper())
38
+ logging.basicConfig(level=logging_level)
39
+
40
+ tableau_auth = TSC.PersonalAccessTokenAuth(args.token_name, args.token_value, site_id=args.site)
41
+ server = TSC.Server(args.server, use_server_version=False)
42
+ server.add_http_options({"verify": False})
43
+ server.use_server_version()
44
+ with server.auth.sign_in(tableau_auth):
45
+ # Monthly Schedule
46
+ # This schedule will run on the 15th of every month at 11:30PM
47
+ monthly_interval = TSC.MonthlyInterval(start_time=time(23, 30), interval_value=15)
48
+ monthly_schedule = TSC.ScheduleItem(
49
+ None,
50
+ None,
51
+ None,
52
+ None,
53
+ monthly_interval,
54
+ )
55
+
56
+ # Default to using first workbook found in server
57
+ all_workbook_items, pagination_item = server.workbooks.get()
58
+ my_workbook: TSC.WorkbookItem = all_workbook_items[0]
59
+
60
+ target_item = TSC.Target(
61
+ my_workbook.id, # the id of the workbook or datasource
62
+ "workbook", # alternatively can be "datasource"
63
+ )
64
+
65
+ extract_item = TSC.TaskItem(
66
+ None,
67
+ "FullRefresh",
68
+ None,
69
+ None,
70
+ None,
71
+ monthly_schedule,
72
+ None,
73
+ target_item,
74
+ )
75
+
76
+ try:
77
+ response = server.tasks.create(extract_item)
78
+ print(response)
79
+ except Exception as e:
80
+ print(e)
81
+
82
+
83
+ if __name__ == "__main__":
84
+ main()
@@ -20,14 +20,10 @@ from tableauserverclient import ServerResponseError
20
20
  def main():
21
21
  parser = argparse.ArgumentParser(description="Creates a sample user group.")
22
22
  # Common options; please keep those in sync across all samples
23
- parser.add_argument("--server", "-s", required=True, help="server address")
23
+ parser.add_argument("--server", "-s", help="server address")
24
24
  parser.add_argument("--site", "-S", help="site name")
25
- parser.add_argument(
26
- "--token-name", "-p", required=True, help="name of the personal access token used to sign into the server"
27
- )
28
- parser.add_argument(
29
- "--token-value", "-v", required=True, help="value of the personal access token used to sign into the server"
30
- )
25
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
26
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
31
27
  parser.add_argument(
32
28
  "--logging-level",
33
29
  "-l",
@@ -28,14 +28,10 @@ def create_project(server, project_item, samples=False):
28
28
  def main():
29
29
  parser = argparse.ArgumentParser(description="Create new projects.")
30
30
  # Common options; please keep those in sync across all samples
31
- parser.add_argument("--server", "-s", required=True, help="server address")
31
+ parser.add_argument("--server", "-s", help="server address")
32
32
  parser.add_argument("--site", "-S", help="site name")
33
- parser.add_argument(
34
- "--token-name", "-p", required=True, help="name of the personal access token used to sign into the server"
35
- )
36
- parser.add_argument(
37
- "--token-value", "-v", required=True, help="value of the personal access token used to sign into the server"
38
- )
33
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
34
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
39
35
  parser.add_argument(
40
36
  "--logging-level",
41
37
  "-l",
@@ -61,7 +57,14 @@ def main():
61
57
  server.use_server_version()
62
58
 
63
59
  # Without parent_id specified, projects are created at the top level.
64
- top_level_project = TSC.ProjectItem(name="Top Level Project")
60
+ # With the publish-samples attribute, the project will be created with sample items
61
+ top_level_project = TSC.ProjectItem(
62
+ name="Top Level Project",
63
+ description="A sample tsc project",
64
+ content_permissions=None,
65
+ parent_id=None,
66
+ samples=True,
67
+ )
65
68
  top_level_project = create_project(server, top_level_project)
66
69
 
67
70
  # Specifying parent_id creates a nested projects.
@@ -17,14 +17,10 @@ import tableauserverclient as TSC
17
17
  def main():
18
18
  parser = argparse.ArgumentParser(description="Creates sample schedules for each type of frequency.")
19
19
  # Common options; please keep those in sync across all samples
20
- parser.add_argument("--server", "-s", required=True, help="server address")
20
+ parser.add_argument("--server", "-s", help="server address")
21
21
  parser.add_argument("--site", "-S", help="site name")
22
- parser.add_argument(
23
- "--token-name", "-p", required=True, help="name of the personal access token used to sign into the server"
24
- )
25
- parser.add_argument(
26
- "--token-value", "-v", required=True, help="value of the personal access token used to sign into the server"
27
- )
22
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
23
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
28
24
  parser.add_argument(
29
25
  "--logging-level",
30
26
  "-l",
@@ -18,14 +18,10 @@ import tableauserverclient as TSC
18
18
  def main():
19
19
  parser = argparse.ArgumentParser(description="Explore datasource functions supported by the Server API.")
20
20
  # Common options; please keep those in sync across all samples
21
- parser.add_argument("--server", "-s", required=True, help="server address")
21
+ parser.add_argument("--server", "-s", help="server address")
22
22
  parser.add_argument("--site", "-S", help="site name")
23
- parser.add_argument(
24
- "--token-name", "-p", required=True, help="name of the personal access token used to sign into the server"
25
- )
26
- parser.add_argument(
27
- "--token-value", "-v", required=True, help="value of the personal access token used to sign into the server"
28
- )
23
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
24
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
29
25
  parser.add_argument(
30
26
  "--logging-level",
31
27
  "-l",
@@ -0,0 +1,85 @@
1
+ # This script demonstrates how to get all favorites, or add/delete a favorite.
2
+
3
+ import argparse
4
+ import logging
5
+ import tableauserverclient as TSC
6
+ from tableauserverclient import Resource
7
+
8
+
9
+ def main():
10
+ parser = argparse.ArgumentParser(description="Explore favoriting functions supported by the Server API.")
11
+ # Common options; please keep those in sync across all samples
12
+ parser.add_argument("--server", "-s", help="server address")
13
+ parser.add_argument("--site", "-S", help="site name")
14
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
15
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
16
+ parser.add_argument(
17
+ "--logging-level",
18
+ "-l",
19
+ choices=["debug", "info", "error"],
20
+ default="error",
21
+ help="desired logging level (set to error by default)",
22
+ )
23
+
24
+ args = parser.parse_args()
25
+
26
+ # Set logging level based on user input, or error by default
27
+ logging_level = getattr(logging, args.logging_level.upper())
28
+ logging.basicConfig(level=logging_level)
29
+
30
+ # SIGN IN
31
+ tableau_auth = TSC.PersonalAccessTokenAuth(args.token_name, args.token_value, site_id=args.site)
32
+ server = TSC.Server(args.server, use_server_version=True)
33
+ with server.auth.sign_in(tableau_auth):
34
+ print(server)
35
+ my_workbook = None
36
+ my_view = None
37
+ my_datasource = None
38
+
39
+ # get all favorites on site for the logged on user
40
+ user: TSC.UserItem = TSC.UserItem()
41
+ user.id = server.user_id
42
+ print("Favorites for user: {}".format(user.id))
43
+ server.favorites.get(user)
44
+ print(user.favorites)
45
+
46
+ # get list of workbooks
47
+ all_workbook_items, pagination_item = server.workbooks.get()
48
+ if all_workbook_items is not None and len(all_workbook_items) > 0:
49
+ my_workbook: TSC.WorkbookItem = all_workbook_items[0]
50
+ server.favorites.add_favorite(server, user, Resource.Workbook.name(), all_workbook_items[0])
51
+ print(
52
+ "Workbook added to favorites. Workbook Name: {}, Workbook ID: {}".format(
53
+ my_workbook.name, my_workbook.id
54
+ )
55
+ )
56
+ views = server.workbooks.populate_views(my_workbook)
57
+ if views is not None and len(views) > 0:
58
+ my_view = views[0]
59
+ server.favorites.add_favorite_view(user, my_view)
60
+ print("View added to favorites. View Name: {}, View ID: {}".format(my_view.name, my_view.id))
61
+
62
+ all_datasource_items, pagination_item = server.datasources.get()
63
+ if all_datasource_items:
64
+ my_datasource = all_datasource_items[0]
65
+ server.favorites.add_favorite_datasource(user, my_datasource)
66
+ print(
67
+ "Datasource added to favorites. Datasource Name: {}, Datasource ID: {}".format(
68
+ my_datasource.name, my_datasource.id
69
+ )
70
+ )
71
+
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
+ )
76
+
77
+ server.favorites.delete_favorite_view(user, my_view)
78
+ print("View deleted from favorites. View Name: {}, View ID: {}".format(my_view.name, my_view.id))
79
+
80
+ server.favorites.delete_favorite_datasource(user, my_datasource)
81
+ print(
82
+ "Datasource deleted from favorites. Datasource Name: {}, Datasource ID: {}".format(
83
+ my_datasource.name, my_datasource.id
84
+ )
85
+ )
@@ -14,14 +14,10 @@ import tableauserverclient as TSC
14
14
  def main():
15
15
  parser = argparse.ArgumentParser(description="Explore site updates by the Server API.")
16
16
  # Common options; please keep those in sync across all samples
17
- parser.add_argument("--server", "-s", required=True, help="server address")
17
+ parser.add_argument("--server", "-s", help="server address")
18
18
  parser.add_argument("--site", "-S", help="site name")
19
- parser.add_argument(
20
- "--token-name", "-p", required=True, help="name of the personal access token used to sign into the server"
21
- )
22
- parser.add_argument(
23
- "--token-value", "-v", required=True, help="value of the personal access token used to sign into the server"
24
- )
19
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
20
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
25
21
  parser.add_argument(
26
22
  "--logging-level",
27
23
  "-l",
@@ -19,14 +19,10 @@ import tableauserverclient as TSC
19
19
  def main():
20
20
  parser = argparse.ArgumentParser(description="Explore webhook functions supported by the Server API.")
21
21
  # Common options; please keep those in sync across all samples
22
- parser.add_argument("--server", "-s", required=True, help="server address")
22
+ parser.add_argument("--server", "-s", help="server address")
23
23
  parser.add_argument("--site", "-S", help="site name")
24
- parser.add_argument(
25
- "--token-name", "-p", required=True, help="name of the personal access token used to sign into the server"
26
- )
27
- parser.add_argument(
28
- "--token-value", "-v", required=True, help="value of the personal access token used to sign into the server"
29
- )
24
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
25
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
30
26
  parser.add_argument(
31
27
  "--logging-level",
32
28
  "-l",
@@ -19,14 +19,10 @@ import tableauserverclient as TSC
19
19
  def main():
20
20
  parser = argparse.ArgumentParser(description="Explore workbook functions supported by the Server API.")
21
21
  # Common options; please keep those in sync across all samples
22
- parser.add_argument("--server", "-s", required=True, help="server address")
22
+ parser.add_argument("--server", "-s", help="server address")
23
23
  parser.add_argument("--site", "-S", help="site name")
24
- parser.add_argument(
25
- "--token-name", "-p", required=True, help="name of the personal access token used to sign into the server"
26
- )
27
- parser.add_argument(
28
- "--token-value", "-v", required=True, help="value of the personal access token used to sign into the server"
29
- )
24
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
25
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
30
26
  parser.add_argument(
31
27
  "--logging-level",
32
28
  "-l",
@@ -40,6 +36,9 @@ def main():
40
36
  parser.add_argument(
41
37
  "--preview-image", "-i", metavar="FILENAME", help="filename (a .png file) to save the preview image"
42
38
  )
39
+ parser.add_argument(
40
+ "--powerpoint", "-ppt", metavar="FILENAME", help="filename (a .ppt file) to save the powerpoint deck"
41
+ )
43
42
 
44
43
  args = parser.parse_args()
45
44
 
@@ -149,6 +148,13 @@ def main():
149
148
  f.write(c.image)
150
149
  print("saved to " + filename)
151
150
 
151
+ if args.powerpoint:
152
+ # Populate workbook preview image
153
+ server.workbooks.populate_powerpoint(sample_workbook)
154
+ with open(args.powerpoint, "wb") as f:
155
+ f.write(sample_workbook.powerpoint)
156
+ print("\nDownloaded powerpoint of workbook to {}".format(os.path.abspath(args.powerpoint)))
157
+
152
158
  if args.delete:
153
159
  print("deleting {}".format(c.id))
154
160
  unlucky = TSC.CustomViewItem(c.id)
@@ -14,14 +14,10 @@ import tableauserverclient as TSC
14
14
  def main():
15
15
  parser = argparse.ArgumentParser(description="Export a view as an image, PDF, or CSV")
16
16
  # Common options; please keep those in sync across all samples
17
- parser.add_argument("--server", "-s", required=True, help="server address")
17
+ parser.add_argument("--server", "-s", help="server address")
18
18
  parser.add_argument("--site", "-S", help="site name")
19
- parser.add_argument(
20
- "--token-name", "-p", required=True, help="name of the personal access token used to sign into the server"
21
- )
22
- parser.add_argument(
23
- "--token-value", "-v", required=True, help="value of the personal access token used to sign into the server"
24
- )
19
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
20
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
25
21
  parser.add_argument(
26
22
  "--logging-level",
27
23
  "-l",
@@ -19,14 +19,10 @@ import tableauserverclient as TSC
19
19
  def main():
20
20
  parser = argparse.ArgumentParser(description="Explore extract functions supported by the Server API.")
21
21
  # Common options; please keep those in sync across all samples
22
- parser.add_argument("--server", "-s", required=True, help="server address")
22
+ parser.add_argument("--server", "-s", help="server address")
23
23
  parser.add_argument("--site", help="site name")
24
- parser.add_argument(
25
- "--token-name", "-tn", required=True, help="name of the personal access token used to sign into the server"
26
- )
27
- parser.add_argument(
28
- "--token-value", "-tv", required=True, help="value of the personal access token used to sign into the server"
29
- )
24
+ parser.add_argument("--token-name", "-tn", help="name of the personal access token used to sign into the server")
25
+ parser.add_argument("--token-value", "-tv", help="value of the personal access token used to sign into the server")
30
26
  parser.add_argument(
31
27
  "--logging-level",
32
28
  "-l",
@@ -26,14 +26,10 @@ def create_example_group(group_name="Example Group", server=None):
26
26
  def main():
27
27
  parser = argparse.ArgumentParser(description="Filter and sort groups.")
28
28
  # Common options; please keep those in sync across all samples
29
- parser.add_argument("--server", "-s", required=True, help="server address")
29
+ parser.add_argument("--server", "-s", help="server address")
30
30
  parser.add_argument("--site", "-S", help="site name")
31
- parser.add_argument(
32
- "--token-name", "-p", required=True, help="name of the personal access token used to sign into the server"
33
- )
34
- parser.add_argument(
35
- "--token-value", "-v", required=True, help="value of the personal access token used to sign into the server"
36
- )
31
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
32
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
37
33
  parser.add_argument(
38
34
  "--logging-level",
39
35
  "-l",
@@ -29,14 +29,10 @@ def create_example_project(
29
29
  def main():
30
30
  parser = argparse.ArgumentParser(description="Filter and sort projects.")
31
31
  # Common options; please keep those in sync across all samples
32
- parser.add_argument("--server", "-s", required=True, help="server address")
32
+ parser.add_argument("--server", "-s", help="server address")
33
33
  parser.add_argument("--site", "-S", help="site name")
34
- parser.add_argument(
35
- "--token-name", "-p", required=True, help="name of the personal access token used to sign into the server"
36
- )
37
- parser.add_argument(
38
- "--token-value", "-v", required=True, help="value of the personal access token used to sign into the server"
39
- )
34
+ parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
35
+ parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
40
36
  parser.add_argument(
41
37
  "--logging-level",
42
38
  "-l",
@@ -0,0 +1,21 @@
1
+ ####
2
+ # Getting started Part One of Three
3
+ # This script demonstrates how to use the Tableau Server Client to connect to a server
4
+ # You don't need to have a site or any experience with Tableau to run it
5
+ #
6
+ ####
7
+
8
+ import tableauserverclient as TSC
9
+
10
+
11
+ def main():
12
+ # This is the domain for Tableau's Developer Program
13
+ server_url = "https://10ax.online.tableau.com"
14
+ server = TSC.Server(server_url)
15
+ print("Connected to {}".format(server.server_info.baseurl))
16
+ print("Server information: {}".format(server.server_info))
17
+ print("Sign up for a test site at https://www.tableau.com/developer")
18
+
19
+
20
+ if __name__ == "__main__":
21
+ main()
@@ -0,0 +1,50 @@
1
+ ####
2
+ # Getting started Part Two of Three
3
+ # This script demonstrates how to use the Tableau Server Client to
4
+ # view the content on an existing site on Tableau Server/Online
5
+ # It assumes that you have already got a site and can visit it in a browser
6
+ #
7
+ ####
8
+
9
+ import getpass
10
+ import tableauserverclient as TSC
11
+
12
+
13
+ # 0 - launch your Tableau site in a web browser and look at the url to set the values below
14
+ def main():
15
+ # 1 - replace with your server domain: stop at the slash
16
+ server_url = "https://10ax.online.tableau.com"
17
+
18
+ # 2 - optional - change to false **for testing only** if you get a certificate error
19
+ use_ssl = True
20
+
21
+ server = TSC.Server(server_url, use_server_version=True, http_options={"verify": use_ssl})
22
+ print("Connected to {}".format(server.server_info.baseurl))
23
+
24
+ # 3 - replace with your site name exactly as it looks in the url
25
+ # e.g https://my-server/#/site/this-is-your-site-url-name/not-this-part
26
+ site_url_name = "" # leave empty if there is no site name in the url (you are on the default site)
27
+
28
+ # 4 - replace with your username.
29
+ # REMEMBER: if you are using Tableau Online, your username is the entire email address
30
+ username = "your-username-here"
31
+ password = getpass.getpass("Your password:") # so you don't save it in this file
32
+ tableau_auth = TSC.TableauAuth(username, password, site_id=site_url_name)
33
+
34
+ # OR instead of username+password, uncomment this section to use a Personal Access Token
35
+ # token_name = "your-token-name"
36
+ # token_value = "your-token-value-long-random-string"
37
+ # tableau_auth = TSC.PersonalAccessTokenAuth(token_name, token_value, site_id=site_url_name)
38
+
39
+ with server.auth.sign_in(tableau_auth):
40
+ projects, pagination = server.projects.get()
41
+ if projects:
42
+ print("{} projects".format(pagination.total_available))
43
+ project = projects[0]
44
+ print(project.name)
45
+
46
+ print("Done")
47
+
48
+
49
+ if __name__ == "__main__":
50
+ main()