tableauserverclient 0.33__py3-none-any.whl → 0.35__py3-none-any.whl

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 (94) hide show
  1. tableauserverclient/__init__.py +33 -23
  2. tableauserverclient/{_version.py → bin/_version.py} +3 -3
  3. tableauserverclient/config.py +5 -3
  4. tableauserverclient/models/column_item.py +1 -1
  5. tableauserverclient/models/connection_credentials.py +18 -2
  6. tableauserverclient/models/connection_item.py +44 -6
  7. tableauserverclient/models/custom_view_item.py +78 -11
  8. tableauserverclient/models/data_acceleration_report_item.py +2 -2
  9. tableauserverclient/models/data_alert_item.py +5 -5
  10. tableauserverclient/models/data_freshness_policy_item.py +6 -6
  11. tableauserverclient/models/database_item.py +3 -3
  12. tableauserverclient/models/datasource_item.py +10 -10
  13. tableauserverclient/models/dqw_item.py +1 -1
  14. tableauserverclient/models/favorites_item.py +5 -6
  15. tableauserverclient/models/fileupload_item.py +1 -1
  16. tableauserverclient/models/flow_item.py +54 -9
  17. tableauserverclient/models/flow_run_item.py +3 -3
  18. tableauserverclient/models/group_item.py +44 -4
  19. tableauserverclient/models/groupset_item.py +4 -4
  20. tableauserverclient/models/interval_item.py +9 -9
  21. tableauserverclient/models/job_item.py +73 -8
  22. tableauserverclient/models/linked_tasks_item.py +5 -5
  23. tableauserverclient/models/metric_item.py +5 -5
  24. tableauserverclient/models/pagination_item.py +1 -1
  25. tableauserverclient/models/permissions_item.py +12 -10
  26. tableauserverclient/models/project_item.py +73 -19
  27. tableauserverclient/models/property_decorators.py +12 -11
  28. tableauserverclient/models/reference_item.py +2 -2
  29. tableauserverclient/models/revision_item.py +3 -3
  30. tableauserverclient/models/schedule_item.py +2 -2
  31. tableauserverclient/models/server_info_item.py +26 -6
  32. tableauserverclient/models/site_item.py +69 -3
  33. tableauserverclient/models/subscription_item.py +3 -3
  34. tableauserverclient/models/table_item.py +1 -1
  35. tableauserverclient/models/tableau_auth.py +115 -5
  36. tableauserverclient/models/tableau_types.py +2 -2
  37. tableauserverclient/models/tag_item.py +3 -4
  38. tableauserverclient/models/task_item.py +34 -4
  39. tableauserverclient/models/user_item.py +47 -17
  40. tableauserverclient/models/view_item.py +66 -13
  41. tableauserverclient/models/virtual_connection_item.py +6 -5
  42. tableauserverclient/models/webhook_item.py +39 -6
  43. tableauserverclient/models/workbook_item.py +116 -13
  44. tableauserverclient/namespace.py +1 -1
  45. tableauserverclient/server/__init__.py +2 -1
  46. tableauserverclient/server/endpoint/auth_endpoint.py +69 -10
  47. tableauserverclient/server/endpoint/custom_views_endpoint.py +258 -29
  48. tableauserverclient/server/endpoint/data_acceleration_report_endpoint.py +2 -2
  49. tableauserverclient/server/endpoint/data_alert_endpoint.py +14 -14
  50. tableauserverclient/server/endpoint/databases_endpoint.py +13 -12
  51. tableauserverclient/server/endpoint/datasources_endpoint.py +61 -62
  52. tableauserverclient/server/endpoint/default_permissions_endpoint.py +19 -18
  53. tableauserverclient/server/endpoint/dqw_endpoint.py +9 -9
  54. tableauserverclient/server/endpoint/endpoint.py +19 -21
  55. tableauserverclient/server/endpoint/exceptions.py +23 -7
  56. tableauserverclient/server/endpoint/favorites_endpoint.py +31 -31
  57. tableauserverclient/server/endpoint/fileuploads_endpoint.py +9 -11
  58. tableauserverclient/server/endpoint/flow_runs_endpoint.py +15 -13
  59. tableauserverclient/server/endpoint/flow_task_endpoint.py +2 -2
  60. tableauserverclient/server/endpoint/flows_endpoint.py +344 -29
  61. tableauserverclient/server/endpoint/groups_endpoint.py +342 -27
  62. tableauserverclient/server/endpoint/groupsets_endpoint.py +2 -2
  63. tableauserverclient/server/endpoint/jobs_endpoint.py +116 -7
  64. tableauserverclient/server/endpoint/linked_tasks_endpoint.py +2 -2
  65. tableauserverclient/server/endpoint/metadata_endpoint.py +2 -2
  66. tableauserverclient/server/endpoint/metrics_endpoint.py +10 -10
  67. tableauserverclient/server/endpoint/permissions_endpoint.py +13 -15
  68. tableauserverclient/server/endpoint/projects_endpoint.py +681 -30
  69. tableauserverclient/server/endpoint/resource_tagger.py +14 -13
  70. tableauserverclient/server/endpoint/schedules_endpoint.py +17 -18
  71. tableauserverclient/server/endpoint/server_info_endpoint.py +40 -5
  72. tableauserverclient/server/endpoint/sites_endpoint.py +282 -17
  73. tableauserverclient/server/endpoint/subscriptions_endpoint.py +10 -10
  74. tableauserverclient/server/endpoint/tables_endpoint.py +15 -14
  75. tableauserverclient/server/endpoint/tasks_endpoint.py +86 -8
  76. tableauserverclient/server/endpoint/users_endpoint.py +366 -19
  77. tableauserverclient/server/endpoint/views_endpoint.py +262 -20
  78. tableauserverclient/server/endpoint/virtual_connections_endpoint.py +6 -5
  79. tableauserverclient/server/endpoint/webhooks_endpoint.py +88 -11
  80. tableauserverclient/server/endpoint/workbooks_endpoint.py +653 -65
  81. tableauserverclient/server/filter.py +2 -2
  82. tableauserverclient/server/pager.py +29 -6
  83. tableauserverclient/server/query.py +68 -19
  84. tableauserverclient/server/request_factory.py +57 -37
  85. tableauserverclient/server/request_options.py +243 -141
  86. tableauserverclient/server/server.py +76 -10
  87. tableauserverclient/server/sort.py +16 -2
  88. {tableauserverclient-0.33.dist-info → tableauserverclient-0.35.dist-info}/METADATA +7 -7
  89. tableauserverclient-0.35.dist-info/RECORD +106 -0
  90. {tableauserverclient-0.33.dist-info → tableauserverclient-0.35.dist-info}/WHEEL +1 -1
  91. tableauserverclient-0.33.dist-info/RECORD +0 -106
  92. {tableauserverclient-0.33.dist-info → tableauserverclient-0.35.dist-info}/LICENSE +0 -0
  93. {tableauserverclient-0.33.dist-info → tableauserverclient-0.35.dist-info}/LICENSE.versioneer +0 -0
  94. {tableauserverclient-0.33.dist-info → tableauserverclient-0.35.dist-info}/top_level.txt +0 -0
@@ -50,11 +50,11 @@ def get_page_info(result):
50
50
  class Metadata(Endpoint):
51
51
  @property
52
52
  def baseurl(self):
53
- return "{0}/api/metadata/graphql".format(self.parent_srv.server_address)
53
+ return f"{self.parent_srv.server_address}/api/metadata/graphql"
54
54
 
55
55
  @property
56
56
  def control_baseurl(self):
57
- return "{0}/api/metadata/v1/control".format(self.parent_srv.server_address)
57
+ return f"{self.parent_srv.server_address}/api/metadata/v1/control"
58
58
 
59
59
  @api("3.5")
60
60
  def query(self, query, variables=None, abort_on_error=False, parameters=None):
@@ -8,7 +8,7 @@ from tableauserverclient.models import MetricItem, PaginationItem
8
8
 
9
9
  import logging
10
10
 
11
- from typing import List, Optional, TYPE_CHECKING, Tuple
11
+ from typing import Optional, TYPE_CHECKING
12
12
 
13
13
  if TYPE_CHECKING:
14
14
  from ..request_options import RequestOptions
@@ -20,18 +20,18 @@ from tableauserverclient.helpers.logging import logger
20
20
 
21
21
  class Metrics(QuerysetEndpoint[MetricItem]):
22
22
  def __init__(self, parent_srv: "Server") -> None:
23
- super(Metrics, self).__init__(parent_srv)
23
+ super().__init__(parent_srv)
24
24
  self._resource_tagger = _ResourceTagger(parent_srv)
25
25
  self._permissions = _PermissionsEndpoint(parent_srv, lambda: self.baseurl)
26
26
  self._data_quality_warnings = _DataQualityWarningEndpoint(self.parent_srv, "metric")
27
27
 
28
28
  @property
29
29
  def baseurl(self) -> str:
30
- return "{0}/sites/{1}/metrics".format(self.parent_srv.baseurl, self.parent_srv.site_id)
30
+ return f"{self.parent_srv.baseurl}/sites/{self.parent_srv.site_id}/metrics"
31
31
 
32
32
  # Get all metrics
33
33
  @api(version="3.9")
34
- def get(self, req_options: Optional["RequestOptions"] = None) -> Tuple[List[MetricItem], PaginationItem]:
34
+ def get(self, req_options: Optional["RequestOptions"] = None) -> tuple[list[MetricItem], PaginationItem]:
35
35
  logger.info("Querying all metrics on site")
36
36
  url = self.baseurl
37
37
  server_response = self.get_request(url, req_options)
@@ -45,8 +45,8 @@ class Metrics(QuerysetEndpoint[MetricItem]):
45
45
  if not metric_id:
46
46
  error = "Metric ID undefined."
47
47
  raise ValueError(error)
48
- logger.info("Querying single metric (ID: {0})".format(metric_id))
49
- url = "{0}/{1}".format(self.baseurl, metric_id)
48
+ logger.info(f"Querying single metric (ID: {metric_id})")
49
+ url = f"{self.baseurl}/{metric_id}"
50
50
  server_response = self.get_request(url)
51
51
  return MetricItem.from_response(server_response.content, self.parent_srv.namespace)[0]
52
52
 
@@ -56,9 +56,9 @@ class Metrics(QuerysetEndpoint[MetricItem]):
56
56
  if not metric_id:
57
57
  error = "Metric ID undefined."
58
58
  raise ValueError(error)
59
- url = "{0}/{1}".format(self.baseurl, metric_id)
59
+ url = f"{self.baseurl}/{metric_id}"
60
60
  self.delete_request(url)
61
- logger.info("Deleted single metric (ID: {0})".format(metric_id))
61
+ logger.info(f"Deleted single metric (ID: {metric_id})")
62
62
 
63
63
  # Update metric
64
64
  @api(version="3.9")
@@ -70,8 +70,8 @@ class Metrics(QuerysetEndpoint[MetricItem]):
70
70
  self._resource_tagger.update_tags(self.baseurl, metric_item)
71
71
 
72
72
  # Update the metric itself
73
- url = "{0}/{1}".format(self.baseurl, metric_item.id)
73
+ url = f"{self.baseurl}/{metric_item.id}"
74
74
  update_req = RequestFactory.Metric.update_req(metric_item)
75
75
  server_response = self.put_request(url, update_req)
76
- logger.info("Updated metric item (ID: {0})".format(metric_item.id))
76
+ logger.info(f"Updated metric item (ID: {metric_item.id})")
77
77
  return MetricItem.from_response(server_response.content, self.parent_srv.namespace)[0]
@@ -6,7 +6,7 @@ from tableauserverclient.models import TableauItem, PermissionsRule
6
6
  from .endpoint import Endpoint
7
7
  from .exceptions import MissingRequiredFieldError
8
8
 
9
- from typing import Callable, TYPE_CHECKING, List, Optional, Union
9
+ from typing import Callable, TYPE_CHECKING, Optional, Union
10
10
 
11
11
  from tableauserverclient.helpers.logging import logger
12
12
 
@@ -25,7 +25,7 @@ class _PermissionsEndpoint(Endpoint):
25
25
  """
26
26
 
27
27
  def __init__(self, parent_srv: "Server", owner_baseurl: Callable[[], str]) -> None:
28
- super(_PermissionsEndpoint, self).__init__(parent_srv)
28
+ super().__init__(parent_srv)
29
29
 
30
30
  # owner_baseurl is the baseurl of the parent. The MUST be a lambda
31
31
  # since we don't know the full site URL until we sign in. If
@@ -33,18 +33,18 @@ class _PermissionsEndpoint(Endpoint):
33
33
  self.owner_baseurl = owner_baseurl
34
34
 
35
35
  def __str__(self):
36
- return "<PermissionsEndpoint baseurl={}>".format(self.owner_baseurl)
36
+ return f"<PermissionsEndpoint baseurl={self.owner_baseurl}>"
37
37
 
38
- def update(self, resource: TableauItem, permissions: List[PermissionsRule]) -> List[PermissionsRule]:
39
- url = "{0}/{1}/permissions".format(self.owner_baseurl(), resource.id)
38
+ def update(self, resource: TableauItem, permissions: list[PermissionsRule]) -> list[PermissionsRule]:
39
+ url = f"{self.owner_baseurl()}/{resource.id}/permissions"
40
40
  update_req = RequestFactory.Permission.add_req(permissions)
41
41
  response = self.put_request(url, update_req)
42
42
  permissions = PermissionsRule.from_response(response.content, self.parent_srv.namespace)
43
- logger.info("Updated permissions for resource {0}: {1}".format(resource.id, permissions))
43
+ logger.info(f"Updated permissions for resource {resource.id}: {permissions}")
44
44
 
45
45
  return permissions
46
46
 
47
- def delete(self, resource: TableauItem, rules: Union[PermissionsRule, List[PermissionsRule]]):
47
+ def delete(self, resource: TableauItem, rules: Union[PermissionsRule, list[PermissionsRule]]):
48
48
  # Delete is the only endpoint that doesn't take a list of rules
49
49
  # so let's fake it to keep it consistent
50
50
  # TODO that means we need error handling around the call
@@ -54,7 +54,7 @@ class _PermissionsEndpoint(Endpoint):
54
54
  for rule in rules:
55
55
  for capability, mode in rule.capabilities.items():
56
56
  "/permissions/groups/group-id/capability-name/capability-mode"
57
- url = "{0}/{1}/permissions/{2}/{3}/{4}/{5}".format(
57
+ url = "{}/{}/permissions/{}/{}/{}/{}".format(
58
58
  self.owner_baseurl(),
59
59
  resource.id,
60
60
  rule.grantee.tag_name + "s",
@@ -63,13 +63,11 @@ class _PermissionsEndpoint(Endpoint):
63
63
  mode,
64
64
  )
65
65
 
66
- logger.debug("Removing {0} permission for capability {1}".format(mode, capability))
66
+ logger.debug(f"Removing {mode} permission for capability {capability}")
67
67
 
68
68
  self.delete_request(url)
69
69
 
70
- logger.info(
71
- "Deleted permission for {0} {1} item {2}".format(rule.grantee.tag_name, rule.grantee.id, resource.id)
72
- )
70
+ logger.info(f"Deleted permission for {rule.grantee.tag_name} {rule.grantee.id} item {resource.id}")
73
71
 
74
72
  def populate(self, item: TableauItem):
75
73
  if not item.id:
@@ -80,12 +78,12 @@ class _PermissionsEndpoint(Endpoint):
80
78
  return self._get_permissions(item)
81
79
 
82
80
  item._set_permissions(permission_fetcher)
83
- logger.info("Populated permissions for item (ID: {0})".format(item.id))
81
+ logger.info(f"Populated permissions for item (ID: {item.id})")
84
82
 
85
83
  def _get_permissions(self, item: TableauItem, req_options: Optional["RequestOptions"] = None):
86
- url = "{0}/{1}/permissions".format(self.owner_baseurl(), item.id)
84
+ url = f"{self.owner_baseurl()}/{item.id}/permissions"
87
85
  server_response = self.get_request(url, req_options)
88
86
  permissions = PermissionsRule.from_response(server_response.content, self.parent_srv.namespace)
89
- logger.info("Permissions for resource {0}: {1}".format(item.id, permissions))
87
+ logger.info(f"Permissions for resource {item.id}: {permissions}")
90
88
 
91
89
  return permissions