tableauserverclient 0.26__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 (361) hide show
  1. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/PKG-INFO +16 -3
  2. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/README.md +1 -1
  3. tableauserverclient-0.27.post0.dev1/pyproject.toml +53 -0
  4. tableauserverclient-0.27.post0.dev1/samples/create_extract_task.py +84 -0
  5. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/create_project.py +8 -1
  6. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/explore_workbook.py +10 -0
  7. tableauserverclient-0.27.post0.dev1/samples/getting_started/1_hello_server.py +21 -0
  8. tableauserverclient-0.27.post0.dev1/samples/getting_started/2_hello_site.py +50 -0
  9. tableauserverclient-0.27.post0.dev1/samples/getting_started/3_hello_universe.py +96 -0
  10. tableauserverclient-0.27.post0.dev1/tableauserverclient/__init__.py +58 -0
  11. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/_version.py +4 -4
  12. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/helpers/logging.py +0 -2
  13. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/__init__.py +1 -1
  14. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/column_item.py +3 -0
  15. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/connection_credentials.py +7 -0
  16. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/custom_view_item.py +5 -0
  17. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/data_acceleration_report_item.py +3 -0
  18. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/datasource_item.py +0 -9
  19. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/group_item.py +1 -4
  20. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/interval_item.py +12 -0
  21. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/job_item.py +10 -1
  22. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/metric_item.py +4 -1
  23. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/pagination_item.py +3 -0
  24. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/permissions_item.py +7 -4
  25. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/project_item.py +2 -0
  26. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/schedule_item.py +6 -7
  27. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/server_info_item.py +1 -1
  28. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/site_item.py +3 -0
  29. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/subscription_item.py +8 -0
  30. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/table_item.py +6 -0
  31. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/tableau_auth.py +41 -6
  32. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/user_item.py +4 -1
  33. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/view_item.py +4 -1
  34. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/workbook_item.py +4 -1
  35. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/auth_endpoint.py +28 -7
  36. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/favorites_endpoint.py +0 -1
  37. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/groups_endpoint.py +4 -1
  38. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/projects_endpoint.py +2 -0
  39. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/tasks_endpoint.py +11 -0
  40. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/filter.py +5 -1
  41. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/request_factory.py +28 -0
  42. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/request_options.py +1 -0
  43. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient.egg-info/PKG-INFO +16 -3
  44. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient.egg-info/SOURCES.txt +8 -0
  45. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient.egg-info/requires.txt +6 -5
  46. tableauserverclient-0.27.post0.dev1/test/assets/group_update_async.xml +10 -0
  47. tableauserverclient-0.27.post0.dev1/test/assets/request_option_filter_name_in.xml +12 -0
  48. tableauserverclient-0.27.post0.dev1/test/assets/tasks_create_extract_task.xml +12 -0
  49. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/models/_models.py +23 -26
  50. tableauserverclient-0.27.post0.dev1/test/models/test_repr.py +51 -0
  51. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_custom_view.py +2 -1
  52. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_datasource.py +4 -2
  53. tableauserverclient-0.27.post0.dev1/test/test_filter.py +22 -0
  54. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_group.py +18 -1
  55. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_group_model.py +0 -10
  56. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_request_option.py +25 -0
  57. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_task.py +26 -1
  58. tableauserverclient-0.26/pyproject.toml +0 -50
  59. tableauserverclient-0.26/tableauserverclient/__init__.py +0 -17
  60. tableauserverclient-0.26/test/models/test_repr.py +0 -40
  61. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/CHANGELOG.md +0 -0
  62. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/CONTRIBUTORS.md +0 -0
  63. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/LICENSE +0 -0
  64. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/LICENSE.versioneer +0 -0
  65. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/MANIFEST.in +0 -0
  66. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/contributing.md +0 -0
  67. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/docs/README.md +0 -0
  68. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/add_default_permission.py +0 -0
  69. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/create_group.py +0 -0
  70. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/create_schedules.py +0 -0
  71. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/explore_datasource.py +0 -0
  72. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/explore_favorites.py +0 -0
  73. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/explore_site.py +0 -0
  74. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/explore_webhooks.py +0 -0
  75. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/export.py +0 -0
  76. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/extracts.py +0 -0
  77. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/filter_sort_groups.py +0 -0
  78. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/filter_sort_projects.py +0 -0
  79. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/initialize_server.py +0 -0
  80. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/kill_all_jobs.py +0 -0
  81. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/list.py +0 -0
  82. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/login.py +0 -0
  83. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/metadata_query.py +0 -0
  84. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/move_workbook_projects.py +0 -0
  85. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/move_workbook_sites.py +0 -0
  86. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/name.txt +0 -0
  87. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/pagination_sample.py +0 -0
  88. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/publish_datasource.py +0 -0
  89. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/publish_workbook.py +0 -0
  90. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/query_permissions.py +0 -0
  91. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/refresh.py +0 -0
  92. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/refresh_tasks.py +0 -0
  93. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/set_refresh_schedule.py +0 -0
  94. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/smoke_test.py +0 -0
  95. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/update_connection.py +0 -0
  96. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/samples/update_datasource_data.py +0 -0
  97. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/setup.cfg +0 -0
  98. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/setup.py +0 -0
  99. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/config.py +0 -0
  100. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/datetime_helpers.py +0 -0
  101. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/exponential_backoff.py +0 -0
  102. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/filesys_helpers.py +0 -0
  103. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/helpers/__init__.py +0 -0
  104. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/helpers/strings.py +0 -0
  105. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/connection_item.py +0 -0
  106. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/data_alert_item.py +0 -0
  107. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/database_item.py +0 -0
  108. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/dqw_item.py +0 -0
  109. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/exceptions.py +0 -0
  110. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/favorites_item.py +0 -0
  111. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/fileupload_item.py +0 -0
  112. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/flow_item.py +0 -0
  113. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/flow_run_item.py +0 -0
  114. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/property_decorators.py +0 -0
  115. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/reference_item.py +0 -0
  116. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/revision_item.py +0 -0
  117. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/tableau_types.py +0 -0
  118. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/tag_item.py +0 -0
  119. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/target.py +0 -0
  120. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/task_item.py +0 -0
  121. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/models/webhook_item.py +0 -0
  122. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/namespace.py +0 -0
  123. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/py.typed +0 -0
  124. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/__init__.py +0 -0
  125. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/__init__.py +0 -0
  126. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/custom_views_endpoint.py +0 -0
  127. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/data_acceleration_report_endpoint.py +0 -0
  128. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/data_alert_endpoint.py +0 -0
  129. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/databases_endpoint.py +0 -0
  130. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/datasources_endpoint.py +0 -0
  131. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/default_permissions_endpoint.py +0 -0
  132. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/dqw_endpoint.py +0 -0
  133. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/endpoint.py +0 -0
  134. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/exceptions.py +0 -0
  135. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/fileuploads_endpoint.py +0 -0
  136. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/flow_runs_endpoint.py +0 -0
  137. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/flows_endpoint.py +0 -0
  138. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/jobs_endpoint.py +0 -0
  139. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/metadata_endpoint.py +0 -0
  140. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/metrics_endpoint.py +0 -0
  141. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/permissions_endpoint.py +0 -0
  142. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/resource_tagger.py +0 -0
  143. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/schedules_endpoint.py +0 -0
  144. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/server_info_endpoint.py +0 -0
  145. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/sites_endpoint.py +0 -0
  146. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/subscriptions_endpoint.py +0 -0
  147. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/tables_endpoint.py +0 -0
  148. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/users_endpoint.py +0 -0
  149. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/views_endpoint.py +0 -0
  150. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/webhooks_endpoint.py +0 -0
  151. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/endpoint/workbooks_endpoint.py +0 -0
  152. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/exceptions.py +0 -0
  153. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/pager.py +0 -0
  154. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/query.py +0 -0
  155. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/server.py +0 -0
  156. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient/server/sort.py +0 -0
  157. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient.egg-info/dependency_links.txt +0 -0
  158. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/tableauserverclient.egg-info/top_level.txt +0 -0
  159. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/__init__.py +0 -0
  160. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/_utils.py +0 -0
  161. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/Data/Tableau Samples/World Indicators.tde +0 -0
  162. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/Data/user_details.csv +0 -0
  163. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/Data/usernames.csv +0 -0
  164. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/RESTAPISample Image.png +0 -0
  165. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/Sample View Image.png +0 -0
  166. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/World Indicators.hyper +0 -0
  167. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/auth_sign_in.xml +0 -0
  168. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/auth_sign_in_error.xml +0 -0
  169. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/auth_sign_in_impersonate.xml +0 -0
  170. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/custom_view_get.xml +0 -0
  171. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/custom_view_get_id.xml +0 -0
  172. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/custom_view_update.xml +0 -0
  173. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/data_acceleration_report.xml +0 -0
  174. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/data_alerts_add_user.xml +0 -0
  175. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/data_alerts_get.xml +0 -0
  176. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/data_alerts_get_by_id.xml +0 -0
  177. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/data_alerts_update.xml +0 -0
  178. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/database_get.xml +0 -0
  179. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/database_populate_permissions.xml +0 -0
  180. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/database_update.xml +0 -0
  181. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_add_tags.xml +0 -0
  182. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_connection_update.xml +0 -0
  183. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_data_update.xml +0 -0
  184. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_get.xml +0 -0
  185. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_get_by_id.xml +0 -0
  186. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_get_empty.xml +0 -0
  187. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_populate_connections.xml +0 -0
  188. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_populate_permissions.xml +0 -0
  189. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_publish.xml +0 -0
  190. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_publish_async.xml +0 -0
  191. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_refresh.xml +0 -0
  192. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_revision.xml +0 -0
  193. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/datasource_update.xml +0 -0
  194. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/dqw_by_content_type.xml +0 -0
  195. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/favorites_add_datasource.xml +0 -0
  196. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/favorites_add_project.xml +0 -0
  197. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/favorites_add_view.xml +0 -0
  198. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/favorites_add_workbook.xml +0 -0
  199. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/favorites_get.xml +0 -0
  200. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/fileupload_append.xml +0 -0
  201. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/fileupload_initialize.xml +0 -0
  202. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_get.xml +0 -0
  203. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_get_by_id.xml +0 -0
  204. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_populate_connections.xml +0 -0
  205. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_populate_permissions.xml +0 -0
  206. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_publish.xml +0 -0
  207. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_refresh.xml +0 -0
  208. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_runs_get.xml +0 -0
  209. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_runs_get_by_id.xml +0 -0
  210. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_runs_get_by_id_failed.xml +0 -0
  211. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_runs_get_by_id_inprogress.xml +0 -0
  212. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/flow_update.xml +0 -0
  213. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/group_add_user.xml +0 -0
  214. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/group_create.xml +0 -0
  215. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/group_create_ad.xml +0 -0
  216. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/group_create_async.xml +0 -0
  217. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/group_get.xml +0 -0
  218. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/group_populate_users.xml +0 -0
  219. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/group_populate_users_empty.xml +0 -0
  220. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/group_update.xml +0 -0
  221. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/group_users_added.xml +0 -0
  222. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/job_get.xml +0 -0
  223. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/job_get_by_id.xml +0 -0
  224. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/job_get_by_id_failed.xml +0 -0
  225. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/job_get_by_id_failed_workbook.xml +0 -0
  226. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/job_get_by_id_inprogress.xml +0 -0
  227. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/metadata_paged_1.json +0 -0
  228. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/metadata_paged_2.json +0 -0
  229. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/metadata_paged_3.json +0 -0
  230. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/metadata_query_error.json +0 -0
  231. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/metadata_query_expected_dict.dict +0 -0
  232. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/metadata_query_success.json +0 -0
  233. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/metrics_get.xml +0 -0
  234. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/metrics_get_by_id.xml +0 -0
  235. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/metrics_update.xml +0 -0
  236. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/populate_csv.csv +0 -0
  237. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/populate_pdf.pdf +0 -0
  238. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/project_content_permission.xml +0 -0
  239. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/project_create.xml +0 -0
  240. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/project_get.xml +0 -0
  241. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/project_populate_permissions.xml +0 -0
  242. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/project_populate_workbook_default_permissions.xml +0 -0
  243. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/project_update.xml +0 -0
  244. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/project_update_datasource_default_permissions.xml +0 -0
  245. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/queryset_slicing_page_1.xml +0 -0
  246. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/queryset_slicing_page_2.xml +0 -0
  247. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/request_option_filter_equals.xml +0 -0
  248. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/request_option_filter_tags_in.xml +0 -0
  249. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/request_option_page_number.xml +0 -0
  250. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/request_option_page_size.xml +0 -0
  251. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/request_option_pagination.xml +0 -0
  252. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/request_option_slicing_queryset.xml +0 -0
  253. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_add_datasource.xml +0 -0
  254. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_add_flow.xml +0 -0
  255. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_add_workbook.xml +0 -0
  256. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_add_workbook_with_warnings.xml +0 -0
  257. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_create_daily.xml +0 -0
  258. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_create_hourly.xml +0 -0
  259. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_create_monthly.xml +0 -0
  260. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_create_weekly.xml +0 -0
  261. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_get.xml +0 -0
  262. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_get_by_id.xml +0 -0
  263. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_get_empty.xml +0 -0
  264. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/schedule_update.xml +0 -0
  265. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/server_info_25.xml +0 -0
  266. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/server_info_404.xml +0 -0
  267. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/server_info_auth_info.xml +0 -0
  268. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/server_info_get.xml +0 -0
  269. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/site_create.xml +0 -0
  270. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/site_get.xml +0 -0
  271. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/site_get_by_id.xml +0 -0
  272. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/site_get_by_name.xml +0 -0
  273. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/site_update.xml +0 -0
  274. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/subscription_create.xml +0 -0
  275. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/subscription_get.xml +0 -0
  276. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/subscription_get_by_id.xml +0 -0
  277. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/table_get.xml +0 -0
  278. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/table_update.xml +0 -0
  279. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/tasks_no_workbook_or_datasource.xml +0 -0
  280. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/tasks_run_now_response.xml +0 -0
  281. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/tasks_with_dataacceleration_task.xml +0 -0
  282. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/tasks_with_datasource.xml +0 -0
  283. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/tasks_with_workbook.xml +0 -0
  284. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/tasks_with_workbook_and_datasource.xml +0 -0
  285. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/user_add.xml +0 -0
  286. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/user_add_favorite.xml +0 -0
  287. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/user_get.xml +0 -0
  288. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/user_get_by_id.xml +0 -0
  289. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/user_get_empty.xml +0 -0
  290. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/user_populate_groups.xml +0 -0
  291. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/user_populate_workbooks.xml +0 -0
  292. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/user_update.xml +0 -0
  293. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/view_add_tags.xml +0 -0
  294. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/view_get.xml +0 -0
  295. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/view_get_id.xml +0 -0
  296. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/view_get_usage.xml +0 -0
  297. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/view_populate_permissions.xml +0 -0
  298. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/view_update_permissions.xml +0 -0
  299. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/webhook_create.xml +0 -0
  300. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/webhook_create_request.xml +0 -0
  301. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/webhook_get.xml +0 -0
  302. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_add_tags.xml +0 -0
  303. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get.xml +0 -0
  304. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_by_id.xml +0 -0
  305. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_by_id_personal.xml +0 -0
  306. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_empty.xml +0 -0
  307. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_invalid_date.xml +0 -0
  308. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_page_1.xml +0 -0
  309. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_page_2.xml +0 -0
  310. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_get_page_3.xml +0 -0
  311. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_populate_connections.xml +0 -0
  312. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_populate_permissions.xml +0 -0
  313. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_populate_views.xml +0 -0
  314. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_populate_views_usage.xml +0 -0
  315. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_publish.xml +0 -0
  316. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_publish_async.xml +0 -0
  317. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_refresh.xml +0 -0
  318. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_revision.xml +0 -0
  319. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_update.xml +0 -0
  320. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/assets/workbook_update_permissions.xml +0 -0
  321. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/http/test_http_requests.py +0 -0
  322. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/request_factory/__init__.py +0 -0
  323. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/request_factory/test_datasource_requests.py +0 -0
  324. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/request_factory/test_workbook_requests.py +0 -0
  325. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_auth.py +0 -0
  326. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_connection_.py +0 -0
  327. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_data_acceleration_report.py +0 -0
  328. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_dataalert.py +0 -0
  329. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_database.py +0 -0
  330. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_datasource_model.py +0 -0
  331. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_dqw.py +0 -0
  332. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_endpoint.py +0 -0
  333. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_exponential_backoff.py +0 -0
  334. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_favorites.py +0 -0
  335. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_filesys_helpers.py +0 -0
  336. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_fileuploads.py +0 -0
  337. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_flow.py +0 -0
  338. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_flowruns.py +0 -0
  339. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_job.py +0 -0
  340. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_metadata.py +0 -0
  341. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_metrics.py +0 -0
  342. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_pager.py +0 -0
  343. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_project.py +0 -0
  344. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_project_model.py +0 -0
  345. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_regression_tests.py +0 -0
  346. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_requests.py +0 -0
  347. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_schedule.py +0 -0
  348. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_server_info.py +0 -0
  349. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_site.py +0 -0
  350. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_site_model.py +0 -0
  351. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_sort.py +0 -0
  352. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_subscription.py +0 -0
  353. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_table.py +0 -0
  354. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_tableauauth_model.py +0 -0
  355. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_user.py +0 -0
  356. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_user_model.py +0 -0
  357. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_view.py +0 -0
  358. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_webhook.py +0 -0
  359. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_workbook.py +0 -0
  360. {tableauserverclient-0.26 → tableauserverclient-0.27.post0.dev1}/test/test_workbook_model.py +0 -0
  361. {tableauserverclient-0.26 → 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.26
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"
@@ -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()
@@ -57,7 +57,14 @@ def main():
57
57
  server.use_server_version()
58
58
 
59
59
  # Without parent_id specified, projects are created at the top level.
60
- 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
+ )
61
68
  top_level_project = create_project(server, top_level_project)
62
69
 
63
70
  # Specifying parent_id creates a nested projects.
@@ -36,6 +36,9 @@ def main():
36
36
  parser.add_argument(
37
37
  "--preview-image", "-i", metavar="FILENAME", help="filename (a .png file) to save the preview image"
38
38
  )
39
+ parser.add_argument(
40
+ "--powerpoint", "-ppt", metavar="FILENAME", help="filename (a .ppt file) to save the powerpoint deck"
41
+ )
39
42
 
40
43
  args = parser.parse_args()
41
44
 
@@ -145,6 +148,13 @@ def main():
145
148
  f.write(c.image)
146
149
  print("saved to " + filename)
147
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
+
148
158
  if args.delete:
149
159
  print("deleting {}".format(c.id))
150
160
  unlucky = TSC.CustomViewItem(c.id)
@@ -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()
@@ -0,0 +1,96 @@
1
+ ####
2
+ # Getting Started Part Three of Three
3
+ # This script demonstrates all the different types of 'content' a server contains
4
+ #
5
+ # To make it easy to run, it doesn't take any arguments - you need to edit the code with your info
6
+ ####
7
+
8
+ import getpass
9
+ import tableauserverclient as TSC
10
+
11
+
12
+ def main():
13
+ # 1 - replace with your server url
14
+ server_url = "https://10ax.online.tableau.com"
15
+
16
+ # 2 - change to false **for testing only** if you get a certificate error
17
+ use_ssl = True
18
+ server = TSC.Server(server_url, use_server_version=True, http_options={"verify": use_ssl})
19
+
20
+ print("Connected to {}".format(server.server_info.baseurl))
21
+
22
+ # 3 - replace with your site name exactly as it looks in a url
23
+ # e.g https://my-server/#/this-is-your-site-url-name/
24
+ site_url_name = "" # leave empty if there is no site name in the url (you are on the default site)
25
+
26
+ # 4
27
+ username = "your-username-here"
28
+ password = getpass.getpass("Your password:") # so you don't save it in this file
29
+ tableau_auth = TSC.TableauAuth(username, password, site_id=site_url_name)
30
+
31
+ # OR instead of username+password, use a Personal Access Token (PAT) (required by Tableau Cloud)
32
+ # token_name = "your-token-name"
33
+ # token_value = "your-token-value-long-random-string"
34
+ # tableau_auth = TSC.PersonalAccessTokenAuth(token_name, token_value, site_id=site_url_name)
35
+
36
+ with server.auth.sign_in(tableau_auth):
37
+ projects, pagination = server.projects.get()
38
+ if projects:
39
+ print("{} projects".format(pagination.total_available))
40
+ for project in projects:
41
+ print(project.name)
42
+
43
+ workbooks, pagination = server.datasources.get()
44
+ if workbooks:
45
+ print("{} workbooks".format(pagination.total_available))
46
+ print(workbooks[0])
47
+
48
+ views, pagination = server.views.get()
49
+ if views:
50
+ print("{} views".format(pagination.total_available))
51
+ print(views[0])
52
+
53
+ datasources, pagination = server.datasources.get()
54
+ if datasources:
55
+ print("{} datasources".format(pagination.total_available))
56
+ print(datasources[0])
57
+
58
+ # I think all these other content types can go to a hello_universe script
59
+ # data alert, dqw, flow, ... do any of these require any add-ons?
60
+ jobs, pagination = server.jobs.get()
61
+ if jobs:
62
+ print("{} jobs".format(pagination.total_available))
63
+ print(jobs[0])
64
+
65
+ metrics, pagination = server.metrics.get()
66
+ if metrics:
67
+ print("{} metrics".format(pagination.total_available))
68
+ print(metrics[0])
69
+
70
+ schedules, pagination = server.schedules.get()
71
+ if schedules:
72
+ print("{} schedules".format(pagination.total_available))
73
+ print(schedules[0])
74
+
75
+ tasks, pagination = server.tasks.get()
76
+ if tasks:
77
+ print("{} tasks".format(pagination.total_available))
78
+ print(tasks[0])
79
+
80
+ webhooks, pagination = server.webhooks.get()
81
+ if webhooks:
82
+ print("{} webhooks".format(pagination.total_available))
83
+ print(webhooks[0])
84
+
85
+ users, pagination = server.metrics.get()
86
+ if users:
87
+ print("{} users".format(pagination.total_available))
88
+ print(users[0])
89
+
90
+ groups, pagination = server.groups.get()
91
+ if groups:
92
+ print("{} groups".format(pagination.total_available))
93
+ print(groups[0])
94
+
95
+ if __name__ == "__main__":
96
+ main()
@@ -0,0 +1,58 @@
1
+ from ._version import get_versions
2
+ from .namespace import NEW_NAMESPACE as DEFAULT_NAMESPACE
3
+ from .models import (
4
+ BackgroundJobItem,
5
+ ColumnItem,
6
+ ConnectionCredentials,
7
+ ConnectionItem,
8
+ CustomViewItem,
9
+ DQWItem,
10
+ DailyInterval,
11
+ DataAlertItem,
12
+ DatabaseItem,
13
+ DatasourceItem,
14
+ FavoriteItem,
15
+ FlowItem,
16
+ FlowRunItem,
17
+ FileuploadItem,
18
+ GroupItem,
19
+ HourlyInterval,
20
+ IntervalItem,
21
+ JobItem,
22
+ JWTAuth,
23
+ MetricItem,
24
+ MonthlyInterval,
25
+ PaginationItem,
26
+ Permission,
27
+ PermissionsRule,
28
+ PersonalAccessTokenAuth,
29
+ ProjectItem,
30
+ RevisionItem,
31
+ ScheduleItem,
32
+ SiteItem,
33
+ ServerInfoItem,
34
+ SubscriptionItem,
35
+ TableItem,
36
+ TableauAuth,
37
+ Target,
38
+ TaskItem,
39
+ UserItem,
40
+ ViewItem,
41
+ WebhookItem,
42
+ WeeklyInterval,
43
+ WorkbookItem,
44
+ )
45
+ from .server import (
46
+ CSVRequestOptions,
47
+ ExcelRequestOptions,
48
+ ImageRequestOptions,
49
+ PDFRequestOptions,
50
+ RequestOptions,
51
+ MissingRequiredFieldError,
52
+ NotSignedInError,
53
+ ServerResponseError,
54
+ Filter,
55
+ Pager,
56
+ Server,
57
+ Sort,
58
+ )
@@ -1,5 +1,5 @@
1
1
 
2
- # This file was generated by 'versioneer.py' (0.28) from
2
+ # This file was generated by 'versioneer.py' (0.29) from
3
3
  # revision-control system data, or from the parent directory name of an
4
4
  # unpacked source archive. Distribution tarballs contain a pre-generated copy
5
5
  # of this file.
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2023-04-24T13:08:23-0700",
11
+ "date": "2023-10-04T00:33:03-0700",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "307d8a20a30f32c1ce615cca7c6a78b9b9bff081",
15
- "version": "0.26"
14
+ "full-revisionid": "72eb3c8500193e4f20defa20c8a6f8bbf34b2f43",
15
+ "version": "0.27.post0.dev1"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -2,5 +2,3 @@ import logging
2
2
 
3
3
  # TODO change: this defaults to logging *everything* to stdout
4
4
  logger = logging.getLogger("TSC")
5
- logger.setLevel(logging.DEBUG)
6
- logger.addHandler(logging.StreamHandler())
@@ -31,7 +31,7 @@ from .server_info_item import ServerInfoItem
31
31
  from .site_item import SiteItem
32
32
  from .subscription_item import SubscriptionItem
33
33
  from .table_item import TableItem
34
- from .tableau_auth import Credentials, TableauAuth, PersonalAccessTokenAuth
34
+ from .tableau_auth import Credentials, TableauAuth, PersonalAccessTokenAuth, JWTAuth
35
35
  from .tableau_types import Resource, TableauItem, plural_type
36
36
  from .tag_item import TagItem
37
37
  from .target import Target
@@ -9,6 +9,9 @@ class ColumnItem(object):
9
9
  self.description = description
10
10
  self.name = name
11
11
 
12
+ def __repr__(self):
13
+ return f"<{self.__class__.__name__} {self._id} {self.name} {self.description}>"
14
+
12
15
  @property
13
16
  def id(self):
14
17
  return self._id
@@ -15,6 +15,13 @@ class ConnectionCredentials(object):
15
15
  self.embed = embed
16
16
  self.oauth = oauth
17
17
 
18
+ def __repr__(self):
19
+ if self.password:
20
+ print = "redacted"
21
+ else:
22
+ print = "None"
23
+ return f"<{self.__class__.__name__} name={self.name} password={print} embed={self.embed} oauth={self.oauth} >"
24
+
18
25
  @property
19
26
  def embed(self):
20
27
  return self._embed
@@ -134,6 +134,7 @@ class CustomViewItem(object):
134
134
  cv_item._content_url = custom_view_xml.get("contentUrl", None)
135
135
  cv_item._id = custom_view_xml.get("id", None)
136
136
  cv_item._name = custom_view_xml.get("name", None)
137
+ cv_item._shared = string_to_bool(custom_view_xml.get("shared", None))
137
138
 
138
139
  if owner_elem is not None:
139
140
  parsed_owners = UserItem.from_response_as_owner(tostring(custom_view_xml), ns)
@@ -154,3 +155,7 @@ class CustomViewItem(object):
154
155
 
155
156
  all_view_items.append(cv_item)
156
157
  return all_view_items
158
+
159
+
160
+ def string_to_bool(s: Optional[str]) -> bool:
161
+ return (s or "").lower() == "true"
@@ -46,6 +46,9 @@ class DataAccelerationReportItem(object):
46
46
  def __init__(self, comparison_records):
47
47
  self._comparison_records = comparison_records
48
48
 
49
+ def __repr__(self):
50
+ return f"<(deprecated)DataAccelerationReportItem site={self.site} sheet={sheet_uri}>"
51
+
49
52
  @property
50
53
  def comparison_records(self):
51
54
  return self._comparison_records
@@ -326,17 +326,8 @@ class DatasourceItem(object):
326
326
  updated_at = parse_datetime(datasource_xml.get("updatedAt", None))
327
327
  certification_note = datasource_xml.get("certificationNote", None)
328
328
  certified = str(datasource_xml.get("isCertified", None)).lower() == "true"
329
- certification_note = datasource_xml.get("certificationNote", None)
330
- certified = str(datasource_xml.get("isCertified", None)).lower() == "true"
331
- content_url = datasource_xml.get("contentUrl", None)
332
- created_at = parse_datetime(datasource_xml.get("createdAt", None))
333
- datasource_type = datasource_xml.get("type", None)
334
- description = datasource_xml.get("description", None)
335
329
  encrypt_extracts = datasource_xml.get("encryptExtracts", None)
336
330
  has_extracts = datasource_xml.get("hasExtracts", None)
337
- id_ = datasource_xml.get("id", None)
338
- name = datasource_xml.get("name", None)
339
- updated_at = parse_datetime(datasource_xml.get("updatedAt", None))
340
331
  use_remote_query_agent = datasource_xml.get("useRemoteQueryAgent", None)
341
332
  webpage_url = datasource_xml.get("webpageUrl", None)
342
333
 
@@ -26,11 +26,9 @@ class GroupItem(object):
26
26
  self.name: Optional[str] = name
27
27
  self.domain_name: Optional[str] = domain_name
28
28
 
29
- def __str__(self):
29
+ def __repr__(self):
30
30
  return "{}({!r})".format(self.__class__.__name__, self.__dict__)
31
31
 
32
- __repr__ = __str__
33
-
34
32
  @property
35
33
  def domain_name(self) -> Optional[str]:
36
34
  return self._domain_name
@@ -48,7 +46,6 @@ class GroupItem(object):
48
46
  return self._name
49
47
 
50
48
  @name.setter
51
- @property_not_empty
52
49
  def name(self, value: str) -> None:
53
50
  self._name = value
54
51
 
@@ -31,6 +31,9 @@ class HourlyInterval(object):
31
31
  self.end_time = end_time
32
32
  self.interval = interval_value
33
33
 
34
+ def __repr__(self):
35
+ return f"<{self.__class__.__name__} start={self.start_time} end={self.end_time} interval={self.interval}>"
36
+
34
37
  @property
35
38
  def _frequency(self):
36
39
  return IntervalItem.Frequency.Hourly
@@ -86,6 +89,9 @@ class DailyInterval(object):
86
89
  self.start_time = start_time
87
90
  self.interval = interval_values
88
91
 
92
+ def __repr__(self):
93
+ return f"<{self.__class__.__name__} start={self.start_time} interval={self.interval}>"
94
+
89
95
  @property
90
96
  def _frequency(self):
91
97
  return IntervalItem.Frequency.Daily
@@ -114,6 +120,9 @@ class WeeklyInterval(object):
114
120
  self.start_time = start_time
115
121
  self.interval = interval_values
116
122
 
123
+ def __repr__(self):
124
+ return f"<{self.__class__.__name__} start={self.start_time} interval={self.interval}>"
125
+
117
126
  @property
118
127
  def _frequency(self):
119
128
  return IntervalItem.Frequency.Weekly
@@ -148,6 +157,9 @@ class MonthlyInterval(object):
148
157
  self.start_time = start_time
149
158
  self.interval = str(interval_value)
150
159
 
160
+ def __repr__(self):
161
+ return f"<{self.__class__.__name__} start={self.start_time} interval={self.interval}>"
162
+
151
163
  @property
152
164
  def _frequency(self):
153
165
  return IntervalItem.Frequency.Monthly
@@ -117,12 +117,15 @@ class JobItem(object):
117
117
  def updated_at(self) -> Optional[datetime.datetime]:
118
118
  return self._updated_at
119
119
 
120
- def __repr__(self):
120
+ def __str__(self):
121
121
  return (
122
122
  "<Job#{_id} {_type} created_at({_created_at}) started_at({_started_at}) updated_at({_updated_at}) completed_at({_completed_at})"
123
123
  " progress ({_progress}) finish_code({_finish_code})>".format(**self.__dict__)
124
124
  )
125
125
 
126
+ def __repr__(self):
127
+ return self.__str__() + " { " + ", ".join(" % s: % s" % item for item in vars(self).items()) + "}"
128
+
126
129
  @classmethod
127
130
  def from_response(cls, xml, ns) -> List["JobItem"]:
128
131
  parsed_response = fromstring(xml)
@@ -202,6 +205,12 @@ class BackgroundJobItem(object):
202
205
  self._title = title
203
206
  self._subtitle = subtitle
204
207
 
208
+ def __str__(self):
209
+ return f"<{self.__class__.name} {self._id} {self._type}>"
210
+
211
+ def __repr__(self):
212
+ return self.__str__() + " { " + ", ".join(" % s: % s" % item for item in vars(self).items()) + "}"
213
+
205
214
  @property
206
215
  def id(self) -> str:
207
216
  return self._id
@@ -115,9 +115,12 @@ class MetricItem(object):
115
115
  def _set_permissions(self, permissions):
116
116
  self._permissions = permissions
117
117
 
118
- def __repr__(self):
118
+ def __str__(self):
119
119
  return "<MetricItem# name={_name} id={_id} owner_id={_owner_id}>".format(**vars(self))
120
120
 
121
+ def __repr__(self):
122
+ return self.__str__() + " { " + ", ".join(" % s: % s" % item for item in vars(self).items()) + "}"
123
+
121
124
  @classmethod
122
125
  def from_response(
123
126
  cls,