tableauserverclient 0.37__py3-none-any.whl → 0.39__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 (118) hide show
  1. tableauserverclient/bin/_version.py → _version.py +3 -3
  2. bin/__init__.py +3 -0
  3. bin/_version.py +21 -0
  4. {tableauserverclient/helpers → helpers}/strings.py +25 -1
  5. {tableauserverclient/models → models}/__init__.py +15 -1
  6. models/collection_item.py +52 -0
  7. {tableauserverclient/models → models}/connection_item.py +16 -2
  8. {tableauserverclient/models → models}/custom_view_item.py +8 -0
  9. {tableauserverclient/models → models}/data_freshness_policy_item.py +3 -3
  10. {tableauserverclient/models → models}/datasource_item.py +113 -3
  11. models/extensions_item.py +186 -0
  12. models/extract_item.py +82 -0
  13. {tableauserverclient/models → models}/favorites_item.py +21 -8
  14. {tableauserverclient/models → models}/flow_item.py +3 -3
  15. {tableauserverclient/models → models}/group_item.py +18 -1
  16. {tableauserverclient/models → models}/groupset_item.py +14 -0
  17. {tableauserverclient/models → models}/interval_item.py +42 -1
  18. models/location_item.py +53 -0
  19. models/oidc_item.py +82 -0
  20. {tableauserverclient/models → models}/permissions_item.py +2 -0
  21. {tableauserverclient/models → models}/project_item.py +141 -29
  22. {tableauserverclient/models → models}/property_decorators.py +2 -2
  23. {tableauserverclient/models → models}/reference_item.py +12 -6
  24. {tableauserverclient/models → models}/schedule_item.py +67 -1
  25. {tableauserverclient/models → models}/site_item.py +54 -0
  26. {tableauserverclient/models → models}/table_item.py +7 -3
  27. {tableauserverclient/models → models}/tableau_auth.py +13 -6
  28. {tableauserverclient/models → models}/tableau_types.py +13 -1
  29. {tableauserverclient/models → models}/user_item.py +111 -4
  30. {tableauserverclient/models → models}/view_item.py +79 -5
  31. {tableauserverclient/models → models}/workbook_item.py +153 -3
  32. {tableauserverclient/server → server}/endpoint/__init__.py +4 -0
  33. {tableauserverclient/server → server}/endpoint/databases_endpoint.py +101 -18
  34. {tableauserverclient/server → server}/endpoint/datasources_endpoint.py +155 -25
  35. {tableauserverclient/server → server}/endpoint/dqw_endpoint.py +16 -6
  36. {tableauserverclient/server → server}/endpoint/endpoint.py +39 -0
  37. server/endpoint/extensions_endpoint.py +79 -0
  38. {tableauserverclient/server → server}/endpoint/flow_task_endpoint.py +1 -1
  39. {tableauserverclient/server → server}/endpoint/flows_endpoint.py +5 -4
  40. server/endpoint/oidc_endpoint.py +157 -0
  41. {tableauserverclient/server → server}/endpoint/projects_endpoint.py +12 -0
  42. server/endpoint/schedules_endpoint.py +328 -0
  43. {tableauserverclient/server → server}/endpoint/sites_endpoint.py +18 -1
  44. {tableauserverclient/server → server}/endpoint/tables_endpoint.py +140 -17
  45. {tableauserverclient/server → server}/endpoint/users_endpoint.py +296 -10
  46. {tableauserverclient/server → server}/endpoint/views_endpoint.py +23 -0
  47. {tableauserverclient/server → server}/endpoint/workbooks_endpoint.py +124 -9
  48. {tableauserverclient/server → server}/query.py +36 -0
  49. {tableauserverclient/server → server}/request_factory.py +286 -2
  50. {tableauserverclient/server → server}/request_options.py +139 -3
  51. {tableauserverclient/server → server}/server.py +46 -0
  52. {tableauserverclient-0.37.dist-info → tableauserverclient-0.39.dist-info}/METADATA +5 -26
  53. tableauserverclient-0.39.dist-info/RECORD +107 -0
  54. {tableauserverclient-0.37.dist-info → tableauserverclient-0.39.dist-info}/WHEEL +1 -1
  55. tableauserverclient-0.39.dist-info/top_level.txt +4 -0
  56. tableauserverclient/__init__.py +0 -141
  57. tableauserverclient/config.py +0 -27
  58. tableauserverclient/datetime_helpers.py +0 -45
  59. tableauserverclient/exponential_backoff.py +0 -30
  60. tableauserverclient/filesys_helpers.py +0 -63
  61. tableauserverclient/namespace.py +0 -37
  62. tableauserverclient/py.typed +0 -0
  63. tableauserverclient/server/endpoint/schedules_endpoint.py +0 -151
  64. tableauserverclient-0.37.dist-info/RECORD +0 -106
  65. tableauserverclient-0.37.dist-info/licenses/LICENSE.versioneer +0 -7
  66. tableauserverclient-0.37.dist-info/top_level.txt +0 -1
  67. {tableauserverclient/helpers → helpers}/__init__.py +0 -0
  68. {tableauserverclient/helpers → helpers}/headers.py +0 -0
  69. {tableauserverclient/helpers → helpers}/logging.py +0 -0
  70. {tableauserverclient/models → models}/column_item.py +0 -0
  71. {tableauserverclient/models → models}/connection_credentials.py +0 -0
  72. {tableauserverclient/models → models}/data_acceleration_report_item.py +0 -0
  73. {tableauserverclient/models → models}/data_alert_item.py +0 -0
  74. {tableauserverclient/models → models}/database_item.py +0 -0
  75. {tableauserverclient/models → models}/dqw_item.py +0 -0
  76. {tableauserverclient/models → models}/exceptions.py +0 -0
  77. {tableauserverclient/models → models}/fileupload_item.py +0 -0
  78. {tableauserverclient/models → models}/flow_run_item.py +0 -0
  79. {tableauserverclient/models → models}/job_item.py +0 -0
  80. {tableauserverclient/models → models}/linked_tasks_item.py +0 -0
  81. {tableauserverclient/models → models}/metric_item.py +0 -0
  82. {tableauserverclient/models → models}/pagination_item.py +0 -0
  83. {tableauserverclient/models → models}/revision_item.py +0 -0
  84. {tableauserverclient/models → models}/server_info_item.py +0 -0
  85. {tableauserverclient/models → models}/subscription_item.py +0 -0
  86. {tableauserverclient/models → models}/tag_item.py +0 -0
  87. {tableauserverclient/models → models}/target.py +0 -0
  88. {tableauserverclient/models → models}/task_item.py +0 -0
  89. {tableauserverclient/models → models}/virtual_connection_item.py +0 -0
  90. {tableauserverclient/models → models}/webhook_item.py +0 -0
  91. {tableauserverclient/server → server}/__init__.py +0 -0
  92. {tableauserverclient/server → server}/endpoint/auth_endpoint.py +0 -0
  93. {tableauserverclient/server → server}/endpoint/custom_views_endpoint.py +0 -0
  94. {tableauserverclient/server → server}/endpoint/data_acceleration_report_endpoint.py +0 -0
  95. {tableauserverclient/server → server}/endpoint/data_alert_endpoint.py +0 -0
  96. {tableauserverclient/server → server}/endpoint/default_permissions_endpoint.py +0 -0
  97. {tableauserverclient/server → server}/endpoint/exceptions.py +0 -0
  98. {tableauserverclient/server → server}/endpoint/favorites_endpoint.py +0 -0
  99. {tableauserverclient/server → server}/endpoint/fileuploads_endpoint.py +0 -0
  100. {tableauserverclient/server → server}/endpoint/flow_runs_endpoint.py +0 -0
  101. {tableauserverclient/server → server}/endpoint/groups_endpoint.py +0 -0
  102. {tableauserverclient/server → server}/endpoint/groupsets_endpoint.py +0 -0
  103. {tableauserverclient/server → server}/endpoint/jobs_endpoint.py +0 -0
  104. {tableauserverclient/server → server}/endpoint/linked_tasks_endpoint.py +0 -0
  105. {tableauserverclient/server → server}/endpoint/metadata_endpoint.py +0 -0
  106. {tableauserverclient/server → server}/endpoint/metrics_endpoint.py +0 -0
  107. {tableauserverclient/server → server}/endpoint/permissions_endpoint.py +0 -0
  108. {tableauserverclient/server → server}/endpoint/resource_tagger.py +0 -0
  109. {tableauserverclient/server → server}/endpoint/server_info_endpoint.py +0 -0
  110. {tableauserverclient/server → server}/endpoint/subscriptions_endpoint.py +0 -0
  111. {tableauserverclient/server → server}/endpoint/tasks_endpoint.py +0 -0
  112. {tableauserverclient/server → server}/endpoint/virtual_connections_endpoint.py +0 -0
  113. {tableauserverclient/server → server}/endpoint/webhooks_endpoint.py +0 -0
  114. {tableauserverclient/server → server}/exceptions.py +0 -0
  115. {tableauserverclient/server → server}/filter.py +0 -0
  116. {tableauserverclient/server → server}/pager.py +0 -0
  117. {tableauserverclient/server → server}/sort.py +0 -0
  118. {tableauserverclient-0.37.dist-info → tableauserverclient-0.39.dist-info}/licenses/LICENSE +0 -0
@@ -1,30 +0,0 @@
1
- import time
2
-
3
- # Polling for server-side events (such as job completion) uses exponential backoff for the sleep intervals between polls
4
- ASYNC_POLL_MIN_INTERVAL = 0.5
5
- ASYNC_POLL_MAX_INTERVAL = 30
6
- ASYNC_POLL_BACKOFF_FACTOR = 1.4
7
-
8
-
9
- class ExponentialBackoffTimer:
10
- def __init__(self, *, timeout=None):
11
- self.start_time = time.time()
12
- self.timeout = timeout
13
- self.current_sleep_interval = ASYNC_POLL_MIN_INTERVAL
14
-
15
- def sleep(self):
16
- max_sleep_time = ASYNC_POLL_MAX_INTERVAL
17
- if self.timeout is not None:
18
- elapsed = time.time() - self.start_time
19
- if elapsed >= self.timeout:
20
- raise TimeoutError(f"Timeout after {elapsed} seconds waiting for asynchronous event")
21
- remaining_time = self.timeout - elapsed
22
- # Usually, we would sleep for `ASYNC_POLL_MAX_INTERVAL`, but we don't want to sleep over the timeout
23
- max_sleep_time = min(ASYNC_POLL_MAX_INTERVAL, remaining_time)
24
- # We want to sleep at least for `ASYNC_POLL_MIN_INTERVAL`. This is important to ensure that, as we get
25
- # closer to the timeout, we don't accidentally wake up multiple times and hit the server in rapid succession
26
- # due to waking up to early from the `sleep`.
27
- max_sleep_time = max(max_sleep_time, ASYNC_POLL_MIN_INTERVAL)
28
-
29
- time.sleep(min(self.current_sleep_interval, max_sleep_time))
30
- self.current_sleep_interval *= ASYNC_POLL_BACKOFF_FACTOR
@@ -1,63 +0,0 @@
1
- import os
2
-
3
- ALLOWED_SPECIAL = (" ", ".", "_", "-")
4
-
5
-
6
- def to_filename(string_to_sanitize):
7
- sanitized = (c for c in string_to_sanitize if c.isalnum() or c in ALLOWED_SPECIAL)
8
- return "".join(sanitized)
9
-
10
-
11
- def make_download_path(filepath, filename):
12
- download_path = None
13
-
14
- if filepath is None:
15
- download_path = filename
16
-
17
- elif os.path.isdir(filepath):
18
- download_path = os.path.join(filepath, filename)
19
-
20
- else:
21
- download_path = filepath + os.path.splitext(filename)[1]
22
-
23
- return download_path
24
-
25
-
26
- def get_file_object_size(file):
27
- # Returns the size of a file object
28
- file.seek(0, os.SEEK_END)
29
- file_size = file.tell()
30
- file.seek(0)
31
- return file_size
32
-
33
-
34
- def get_file_type(file):
35
- # Tableau workbooks (twb) and data sources (tds) are both stored as xml files.
36
- # Packaged workbooks (twbx) and data sources (tdsx) are zip files
37
- # containing original files accompanied with supporting local files.
38
-
39
- # This reference lists magic file signatures: https://www.garykessler.net/library/file_sigs.html
40
- MAGIC_BYTES = {
41
- "zip": bytes.fromhex("504b0304"),
42
- "tde": bytes.fromhex("20020162"),
43
- "xml": bytes.fromhex("3c3f786d6c20"),
44
- "hyper": bytes.fromhex("487970657208000001000000"),
45
- }
46
-
47
- # Peek first bytes of a file
48
- first_bytes = file.read(32)
49
-
50
- file_type = None
51
- for ft, signature in MAGIC_BYTES.items():
52
- if first_bytes.startswith(signature):
53
- file_type = ft
54
- break
55
-
56
- # Return pointer back to start
57
- file.seek(0)
58
-
59
- if file_type is None:
60
- error = "Unknown file type!"
61
- raise ValueError(error)
62
-
63
- return file_type
@@ -1,37 +0,0 @@
1
- import re
2
-
3
- from defusedxml.ElementTree import fromstring
4
-
5
- OLD_NAMESPACE = "http://tableausoftware.com/api"
6
- NEW_NAMESPACE = "http://tableau.com/api"
7
- NAMESPACE_RE = re.compile(r"\{(.*?)\}")
8
-
9
-
10
- class UnknownNamespaceError(Exception):
11
- pass
12
-
13
-
14
- class Namespace:
15
- def __init__(self):
16
- self._namespace = {"t": NEW_NAMESPACE}
17
- self._detected = False
18
-
19
- def __call__(self):
20
- return self._namespace
21
-
22
- def detect(self, xml):
23
- if self._detected:
24
- return
25
-
26
- if not xml.startswith(b"<?xml"):
27
- return # Not an xml file, don't detect anything
28
-
29
- root = fromstring(xml)
30
- matches = NAMESPACE_RE.match(root.tag)
31
- if matches:
32
- detected_ns = matches.group(1)
33
- if detected_ns in (OLD_NAMESPACE, NEW_NAMESPACE):
34
- self._namespace = {"t": detected_ns}
35
- self._detected = True
36
- else:
37
- raise UnknownNamespaceError(detected_ns)
File without changes
@@ -1,151 +0,0 @@
1
- import copy
2
- import logging
3
- import warnings
4
- from collections import namedtuple
5
- from typing import TYPE_CHECKING, Callable, Optional, Union
6
-
7
- from .endpoint import Endpoint, api, parameter_added_in
8
- from .exceptions import MissingRequiredFieldError
9
- from tableauserverclient.server import RequestFactory
10
- from tableauserverclient.models import PaginationItem, ScheduleItem, TaskItem
11
-
12
- from tableauserverclient.helpers.logging import logger
13
-
14
- AddResponse = namedtuple("AddResponse", ("result", "error", "warnings", "task_created"))
15
- OK = AddResponse(result=True, error=None, warnings=None, task_created=None)
16
-
17
- if TYPE_CHECKING:
18
- from ..request_options import RequestOptions
19
- from ...models import DatasourceItem, WorkbookItem, FlowItem
20
-
21
-
22
- class Schedules(Endpoint):
23
- @property
24
- def baseurl(self) -> str:
25
- return f"{self.parent_srv.baseurl}/schedules"
26
-
27
- @property
28
- def siteurl(self) -> str:
29
- return f"{self.parent_srv.baseurl}/sites/{self.parent_srv.site_id}/schedules"
30
-
31
- @api(version="2.3")
32
- def get(self, req_options: Optional["RequestOptions"] = None) -> tuple[list[ScheduleItem], PaginationItem]:
33
- logger.info("Querying all schedules")
34
- url = self.baseurl
35
- server_response = self.get_request(url, req_options)
36
- pagination_item = PaginationItem.from_response(server_response.content, self.parent_srv.namespace)
37
- all_schedule_items = ScheduleItem.from_response(server_response.content, self.parent_srv.namespace)
38
- return all_schedule_items, pagination_item
39
-
40
- @api(version="3.8")
41
- def get_by_id(self, schedule_id):
42
- if not schedule_id:
43
- error = "No Schedule ID provided"
44
- raise ValueError(error)
45
- logger.info(f"Querying a single schedule by id ({schedule_id})")
46
- url = f"{self.baseurl}/{schedule_id}"
47
- server_response = self.get_request(url)
48
- return ScheduleItem.from_response(server_response.content, self.parent_srv.namespace)[0]
49
-
50
- @api(version="2.3")
51
- def delete(self, schedule_id: str) -> None:
52
- if not schedule_id:
53
- error = "Schedule ID undefined"
54
- raise ValueError(error)
55
- url = f"{self.baseurl}/{schedule_id}"
56
- self.delete_request(url)
57
- logger.info(f"Deleted single schedule (ID: {schedule_id})")
58
-
59
- @api(version="2.3")
60
- def update(self, schedule_item: ScheduleItem) -> ScheduleItem:
61
- if not schedule_item.id:
62
- error = "Schedule item missing ID."
63
- raise MissingRequiredFieldError(error)
64
-
65
- url = f"{self.baseurl}/{schedule_item.id}"
66
- update_req = RequestFactory.Schedule.update_req(schedule_item)
67
- server_response = self.put_request(url, update_req)
68
- logger.info(f"Updated schedule item (ID: {schedule_item.id})")
69
- updated_schedule = copy.copy(schedule_item)
70
- return updated_schedule._parse_common_tags(server_response.content, self.parent_srv.namespace)
71
-
72
- @api(version="2.3")
73
- def create(self, schedule_item: ScheduleItem) -> ScheduleItem:
74
- if schedule_item.interval_item is None:
75
- error = "Interval item must be defined."
76
- raise MissingRequiredFieldError(error)
77
-
78
- url = self.baseurl
79
- create_req = RequestFactory.Schedule.create_req(schedule_item)
80
- server_response = self.post_request(url, create_req)
81
- new_schedule = ScheduleItem.from_response(server_response.content, self.parent_srv.namespace)[0]
82
- logger.info(f"Created new schedule (ID: {new_schedule.id})")
83
- return new_schedule
84
-
85
- @api(version="2.8")
86
- @parameter_added_in(flow="3.3")
87
- def add_to_schedule(
88
- self,
89
- schedule_id: str,
90
- workbook: Optional["WorkbookItem"] = None,
91
- datasource: Optional["DatasourceItem"] = None,
92
- flow: Optional["FlowItem"] = None,
93
- task_type: Optional[str] = None,
94
- ) -> list[AddResponse]:
95
- # There doesn't seem to be a good reason to allow one item of each type?
96
- if workbook and datasource:
97
- warnings.warn("Passing in multiple items for add_to_schedule will be deprecated", PendingDeprecationWarning)
98
- items: list[
99
- tuple[str, Union[WorkbookItem, FlowItem, DatasourceItem], str, Callable[[Optional[str], str], bytes], str]
100
- ] = []
101
-
102
- if workbook is not None:
103
- if not task_type:
104
- task_type = TaskItem.Type.ExtractRefresh
105
- items.append((schedule_id, workbook, "workbook", RequestFactory.Schedule.add_workbook_req, task_type))
106
- if datasource is not None:
107
- if not task_type:
108
- task_type = TaskItem.Type.ExtractRefresh
109
- items.append((schedule_id, datasource, "datasource", RequestFactory.Schedule.add_datasource_req, task_type))
110
- if flow is not None and not (workbook or datasource): # Cannot pass a flow with any other type
111
- if not task_type:
112
- task_type = TaskItem.Type.RunFlow
113
- items.append(
114
- (schedule_id, flow, "flow", RequestFactory.Schedule.add_flow_req, task_type)
115
- ) # type:ignore[arg-type]
116
-
117
- results = (self._add_to(*x) for x in items)
118
- return [x for x in results if not x.result]
119
-
120
- def _add_to(
121
- self,
122
- schedule_id,
123
- resource: Union["DatasourceItem", "WorkbookItem", "FlowItem"],
124
- type_: str,
125
- req_factory: Callable[
126
- [
127
- str,
128
- str,
129
- ],
130
- bytes,
131
- ],
132
- item_task_type,
133
- ) -> AddResponse:
134
- id_ = resource.id
135
- url = f"{self.siteurl}/{schedule_id}/{type_}s"
136
- add_req = req_factory(id_, task_type=item_task_type) # type: ignore[call-arg, arg-type]
137
- response = self.put_request(url, add_req)
138
-
139
- error, warnings, task_created = ScheduleItem.parse_add_to_schedule_response(response, self.parent_srv.namespace)
140
- if task_created:
141
- logger.info(f"Added {type_} to {id_} to schedule {schedule_id}")
142
-
143
- if error is not None or warnings is not None:
144
- return AddResponse(
145
- result=False,
146
- error=error,
147
- warnings=warnings,
148
- task_created=task_created,
149
- )
150
- else:
151
- return OK
@@ -1,106 +0,0 @@
1
- tableauserverclient/__init__.py,sha256=ZtTKjguU2eckQI9_0jkH3UeQemmjVHzL_H_R2cOWjLs,2864
2
- tableauserverclient/config.py,sha256=LcWVmZjkYMh1cKCKZm3VZItgKOoSLz1ai4PnVgbAtDA,713
3
- tableauserverclient/datetime_helpers.py,sha256=_-gWz5I2_KHT5AzW_boD8meH6loTTKdK-_62h1MA6ko,884
4
- tableauserverclient/exponential_backoff.py,sha256=HtAfbbVnYtiOe2_ZzKqZmsml40EDZBaC3bttif5qeG8,1474
5
- tableauserverclient/filesys_helpers.py,sha256=hosTm9fpc9B9_VCDcAuyHA0A-f-MWs9_2utyRweuZ5I,1667
6
- tableauserverclient/namespace.py,sha256=Zh6QtxNmqPkjRMsefHHX-ycS4r-egnrJ4-hdHvldBHw,963
7
- tableauserverclient/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- tableauserverclient/bin/_version.py,sha256=HbFP26HrRF5QHyXZah-2Lx9AWzM1KlO7_InvfHE-jfs,496
9
- tableauserverclient/helpers/__init__.py,sha256=llpqF9zV5dsP5hQt8dyop33Op5OzGmxW0BZibaSlCcM,23
10
- tableauserverclient/helpers/headers.py,sha256=Pg-ZWSgV2Yp813BV1Tzo8F2Hn4P01zscla2RRM4yqNk,411
11
- tableauserverclient/helpers/logging.py,sha256=5q_oR3wERHVXFXY6XDnLYML5-HdAPJTmqhH9IZg4VfY,113
12
- tableauserverclient/helpers/strings.py,sha256=HRTP31HIdD3gFxDDHuBsmOl_8cLdh8fa3xLALgYsUAQ,1563
13
- tableauserverclient/models/__init__.py,sha256=bU4eaOQ4I9h_JYn7IbhCZhHbMVvxdSUhMJeHg80apYA,4051
14
- tableauserverclient/models/column_item.py,sha256=yUFzXNcnUPVo2imrhEBS4fMVAR5j2ZzksOk5t9XYW5s,1964
15
- tableauserverclient/models/connection_credentials.py,sha256=CQ8FkkHW9MeTw8uArNhrU5mowtryWUddgEgEliqh3ys,2066
16
- tableauserverclient/models/connection_item.py,sha256=LwZza3I5Zwx04BcLGWQXRcuZq5X_X86DDse6RMmrcr8,6002
17
- tableauserverclient/models/custom_view_item.py,sha256=JZyq7jkt9WH-24eOV4PO2uGJxaSZ-5K05jL4UoZ8kYs,7771
18
- tableauserverclient/models/data_acceleration_report_item.py,sha256=HFZROetfOWh-hMS48xBEHqYOViINHZR-EpcrP45_8AI,3386
19
- tableauserverclient/models/data_alert_item.py,sha256=VZtRR-kqojq-mkrTgvay4WkPawj3-4jbSc0wBijmJhk,6444
20
- tableauserverclient/models/data_freshness_policy_item.py,sha256=UdaEmwVL_q364Do_2dOnkCSX-oKnvjKfsYzGSaJIQFs,7618
21
- tableauserverclient/models/database_item.py,sha256=lWxmmMpPeVxzizVAsVkc6Ps2I-j-0KJAJZto8qShrYU,8223
22
- tableauserverclient/models/datasource_item.py,sha256=YjNlQcrdP26iA8g1ZWAxgUtRHS3Z9YrI1yFdaK5hg6M,15872
23
- tableauserverclient/models/dqw_item.py,sha256=87oTc7icrQst_DSaTqoVR965YEckg5dk6osa51BrCAk,3710
24
- tableauserverclient/models/exceptions.py,sha256=pQu5DS4jNMT9A0wEBWv2vANAQU1vgNpFatVr8sGE4zk,105
25
- tableauserverclient/models/favorites_item.py,sha256=JxHfy38xdRYol2KM_8_A7Ng59cZunkhTNcpxO670k08,3294
26
- tableauserverclient/models/fileupload_item.py,sha256=N5M0jtlFj_PFh3jlp2AbcYOwCwdnBCk_L64xe3Z4ves,742
27
- tableauserverclient/models/flow_item.py,sha256=df4kkKXVp4dAOblBUDShEl571BxS7hB1AZKHl4P9tss,8666
28
- tableauserverclient/models/flow_run_item.py,sha256=nf_b6KRwNevwZRsPoMh8dLzdONUMWY2wipWEMdY9SN4,3113
29
- tableauserverclient/models/group_item.py,sha256=asj0ZlA0-OAGgcYFu9sDX0t29B5A4LDsirXi0IN6i40,4896
30
- tableauserverclient/models/groupset_item.py,sha256=gxxyzviE5B8zr2sKJteIDKtYTPYKsGd-qMcrjEY2uVU,1885
31
- tableauserverclient/models/interval_item.py,sha256=_ZHQtzQWxwdd_sScziqhrK54k7W_ZgrMfP2PhlIhTRQ,9101
32
- tableauserverclient/models/job_item.py,sha256=Q7tTKXEiW-5VJsLmnAq6auP0jvmbbImmqw_nx1kiXtM,11512
33
- tableauserverclient/models/linked_tasks_item.py,sha256=TYkNvmJfKlZ30OST8w9GUobboFAH5ftFKjXdWWAtR24,3806
34
- tableauserverclient/models/metric_item.py,sha256=D3atzbr3jtQUsVsqYHfz-v3yRP3qruRN5jRsv_-yRQ0,5378
35
- tableauserverclient/models/pagination_item.py,sha256=55Ap_9pJxq8plWQO1Js3Jp6KFidN3TQsL5LM2-yZGDo,1424
36
- tableauserverclient/models/permissions_item.py,sha256=CWf1Q4x7U4QQWQ1VUWgDzaE7mhriHblG1MJAc6EKJHM,6149
37
- tableauserverclient/models/project_item.py,sha256=bzSn9IsWt69DL7rZb5B3MubpNUTCw7XMYHw6wu4inj8,8481
38
- tableauserverclient/models/property_decorators.py,sha256=v2cTqiW5iZXoOyu6RYg3X6Ly--8sozjWOcKCTLi99Nc,4645
39
- tableauserverclient/models/reference_item.py,sha256=R4Tr7qfVdnGcq_ac4hr0yhAjBOkqFZEW-4NGMUYaf9w,733
40
- tableauserverclient/models/revision_item.py,sha256=5ghmnwhUcCOWwZdApzgV_uM3sqdoG_gtsJwUQwfKITo,2773
41
- tableauserverclient/models/schedule_item.py,sha256=40Py-mpwK3GDZbfAuD6UjDz52NyVce5i8XjuneTarp4,11332
42
- tableauserverclient/models/server_info_item.py,sha256=55wTG_31o-WwqgBrbwpgMpq_by10iM6BXpmdAZ3TO90,2631
43
- tableauserverclient/models/site_item.py,sha256=Y0uWYfTzk4Utfl44V1_v0wH4VJmWg4Wq5o1EPTWVs8U,44999
44
- tableauserverclient/models/subscription_item.py,sha256=ujaQQIo_ln3pnm0Th2IdcGCp_cl6WxvEMPgeZbwZtFc,4724
45
- tableauserverclient/models/table_item.py,sha256=C_oseSV4PnkVkzIt8V_NkiT138vLmrGxzsr3Rn37png,4575
46
- tableauserverclient/models/tableau_auth.py,sha256=atmXdAsA5LrrLHEzrHJQPLYETC1iKyxFqPSwIk-vacI,8218
47
- tableauserverclient/models/tableau_types.py,sha256=ybXO_O7ni-WjKUJ5zVEoEgEnatsDtfXTeT0rpiq7Jxs,1230
48
- tableauserverclient/models/tag_item.py,sha256=K2EVEy1EDdr0yLr4wBvGr-p9gIAFVsOCv80b-AFPFLk,588
49
- tableauserverclient/models/target.py,sha256=dVc1SHwo9ZASR8250MhAPODXX_G5UqA4BnK8hykRE6E,263
50
- tableauserverclient/models/task_item.py,sha256=l4t4COw2LfdlYmJpzUSgwGven_NSZj2r3PUJZkqvCus,4555
51
- tableauserverclient/models/user_item.py,sha256=otfavMznvkqUwxRlh1wW0Y_eTw3gaVNJKlWeecKy5j0,16494
52
- tableauserverclient/models/view_item.py,sha256=AxHGrcUOv_kKDqqFWxvQ-kX9KoD0Df20MQygZIkF-9Y,9964
53
- tableauserverclient/models/virtual_connection_item.py,sha256=TvX7MId7WSg4IZE41XAMl1l3Ibu8kTUR1xr26Cqtyeo,3357
54
- tableauserverclient/models/webhook_item.py,sha256=r37fHY3_uhDhxupHfMSvB4I2aUjy3qQ2FOLQjAcNUUk,3994
55
- tableauserverclient/models/workbook_item.py,sha256=s1zSSPaXASbjOirB6EqGO_O8ev-BrsSFwEJwlbdFYFQ,17468
56
- tableauserverclient/server/__init__.py,sha256=77E-3LseLd9gHeRgKPnpZTNMQySgYiwst33AsReol-k,1940
57
- tableauserverclient/server/exceptions.py,sha256=l-O4lcoEeXJC7fLWUanIcZM_Mf8m54uK3NQuKNj3RCg,183
58
- tableauserverclient/server/filter.py,sha256=Z7O6A175bBSmcponLs0Enh5R5Gp2puVRGfOMk-V395w,1096
59
- tableauserverclient/server/pager.py,sha256=IESvCba7WZO3O9VBcKlJ6ricVDgro0gKuUQyJnOCUws,3497
60
- tableauserverclient/server/query.py,sha256=dxl0dOBd_Rx8BIS0ocMd-RhO5yb1KXnu2OacrQzQGPY,9461
61
- tableauserverclient/server/request_factory.py,sha256=5Vf0Vbhj_72-f7QlEnk1Gc2KUfzeiihzkhx78Mx07FM,72709
62
- tableauserverclient/server/request_options.py,sha256=3le-ujRiAlZVSSgnP2kF8hqavm7d7dmYFL-48MX6syo,15403
63
- tableauserverclient/server/server.py,sha256=Uk63h9Y2Ub1Iu2PWhguG5D5BpWFqNydgML6ae2yesV4,11291
64
- tableauserverclient/server/sort.py,sha256=wjnlt7rlmLvQjM_XpgD8N8Hlg0zVvLOV7k_dAs1DmHY,628
65
- tableauserverclient/server/endpoint/__init__.py,sha256=MpttkNENWAiXS2QigwZMfWG6PnsB05QSFK4-OIR3CaQ,3101
66
- tableauserverclient/server/endpoint/auth_endpoint.py,sha256=8N3_OUSwYm4KCvwDJHGmH9i2OqzH70PLP0-rT-sKYVo,7177
67
- tableauserverclient/server/endpoint/custom_views_endpoint.py,sha256=se-CZ9BF8Cf_quT_3BbrO9lwK7E8hHbCoMYq-2IZMM8,14515
68
- tableauserverclient/server/endpoint/data_acceleration_report_endpoint.py,sha256=he-MVqCvAQo8--icEKFoIV2KUP6Z1s_PJ2uZ8Xpj2f8,1130
69
- tableauserverclient/server/endpoint/data_alert_endpoint.py,sha256=ZNotgG3hBpR7fo8eDTXx_gSppF2n25GQ3udwF3MKFLk,5203
70
- tableauserverclient/server/endpoint/databases_endpoint.py,sha256=3kl7YCCJB_DY88QiJxKvtarDV7kPApGYtIcr7d7l8k0,5705
71
- tableauserverclient/server/endpoint/datasources_endpoint.py,sha256=D70xk7kWkqQBDRC0yx5gZj8AhZf-lUCzdL9Ycw3nP0c,41722
72
- tableauserverclient/server/endpoint/default_permissions_endpoint.py,sha256=bZlhDqu6jFyC4vbrdC3Nn1cWRJWRz0mhxco9hRUouJA,4327
73
- tableauserverclient/server/endpoint/dqw_endpoint.py,sha256=hN2UsyM3hrUsIK9CudSBB-WXNa0TeUU7Zjeol0njIXI,2155
74
- tableauserverclient/server/endpoint/endpoint.py,sha256=pYr-l3GLK8Fvh46U_VdaJLLerd2GBJXJk_x94RQ-ZeE,14113
75
- tableauserverclient/server/endpoint/exceptions.py,sha256=ifkRatvvqG5awY73BzwALlby3dYYKr_8leUOmpeZS0Y,2919
76
- tableauserverclient/server/endpoint/favorites_endpoint.py,sha256=ZMui0KQCSGRBlUrem519Y5_gBpngN7wtDWo_EvEUMEk,6340
77
- tableauserverclient/server/endpoint/fileuploads_endpoint.py,sha256=e3qIw6lJJG4Y8RHG26psMjjETovpfrBzmFjeYeJll8s,2410
78
- tableauserverclient/server/endpoint/flow_runs_endpoint.py,sha256=HIVuTi4pXIqog16K_3Zzu1LC96TR_pZlAjxRKoJrJ_g,4957
79
- tableauserverclient/server/endpoint/flow_task_endpoint.py,sha256=4D7tEYow7lqkCuazXUrUyIH_y_PQMTehmeIi-zSIMXo,1078
80
- tableauserverclient/server/endpoint/flows_endpoint.py,sha256=i0nc9JeBzJ7A-kymGMubV8khT-NU3oxlvB7SHd_bddA,23650
81
- tableauserverclient/server/endpoint/groups_endpoint.py,sha256=5ZhKJeKT3GoM2olqJYJggdiVYQ9BdcEJCIqkx-tZqxo,18745
82
- tableauserverclient/server/endpoint/groupsets_endpoint.py,sha256=Kcrrd0NbduwIhAtGkG-EMf38qcCM74EnCybAs24TFnM,5577
83
- tableauserverclient/server/endpoint/jobs_endpoint.py,sha256=rhR8tD89U5ha-g5QhLlGXurTF77mLQREnd7k208EHxA,10387
84
- tableauserverclient/server/endpoint/linked_tasks_endpoint.py,sha256=tMZqVPWPZvYawaXLJGVV9scmWPu1rdCxz-eWZv1WbPk,2262
85
- tableauserverclient/server/endpoint/metadata_endpoint.py,sha256=sg0Yehj2f0wlrJMkVjzNdNxNEhSeNbZIkio3eQamOVk,5228
86
- tableauserverclient/server/endpoint/metrics_endpoint.py,sha256=p9F_tbUela1sb3i9n67Tr9zsPRmsjSAigC6EqLwZHqE,3175
87
- tableauserverclient/server/endpoint/permissions_endpoint.py,sha256=tXX_KSanbxUeR-L4UdI_jphko8dD_fZsXVhQayQL3JA,3719
88
- tableauserverclient/server/endpoint/projects_endpoint.py,sha256=aIYW2NWZnWgK2PXHcBgHJwGxv6Ak915J-1wmPD1FiFY,30603
89
- tableauserverclient/server/endpoint/resource_tagger.py,sha256=eKekflXzLjx_zDOLgYkTIusRO8vsFus1LvLIf0LOwtQ,6661
90
- tableauserverclient/server/endpoint/schedules_endpoint.py,sha256=eUyNCqx7alQTPTCX-KYGk7zFd7EtAJxYatfa9D6NCc0,6242
91
- tableauserverclient/server/endpoint/server_info_endpoint.py,sha256=9UcYP3td22S_Kwabu-RWc-Pn3lFrIERVlzVpl4ErP_I,2649
92
- tableauserverclient/server/endpoint/sites_endpoint.py,sha256=H_bq6hU-zsGJ2sNr2jqQ5YGajQ310WvjJgpiDBREfiY,14001
93
- tableauserverclient/server/endpoint/subscriptions_endpoint.py,sha256=21oZ6Q14AL8p2ZHyfREpbnPU6Vj4Xh97o1K9hmKRJ-I,3187
94
- tableauserverclient/server/endpoint/tables_endpoint.py,sha256=7HCOheWJd8VAEz1TACbWnLFxfYiKcPB40XpxtT5Qbj0,5725
95
- tableauserverclient/server/endpoint/tasks_endpoint.py,sha256=5VHGe2NSgr40BKPPOm9nVrdZGrG3Sf0ri_CNqsv0CpQ,6304
96
- tableauserverclient/server/endpoint/users_endpoint.py,sha256=yLDzGy9K9ecY8uO8Tww1fp3hwrs_WMbMYtgMRRa7Hho,19788
97
- tableauserverclient/server/endpoint/views_endpoint.py,sha256=4wTqjo1MyB6kkVB0W9QSajz8eqwO7vaZCcD2y6hN4Zo,17859
98
- tableauserverclient/server/endpoint/virtual_connections_endpoint.py,sha256=K5R86aIm4hZeYw3OUOlKv-zTmsWa3np1iuV_h5iPvt0,8458
99
- tableauserverclient/server/endpoint/webhooks_endpoint.py,sha256=nmEjKdbntwBg-0XAP2TluOv2v8usqxXg7sO8ogS5rDI,4923
100
- tableauserverclient/server/endpoint/workbooks_endpoint.py,sha256=W6o64Rec7i3dBzyR8TYntgWzryXbxFAZ_xa37edyzqY,43910
101
- tableauserverclient-0.37.dist-info/licenses/LICENSE,sha256=MMkY7MguOb4L-WCmmqrVcwg2iwSGaz-RfAMFvXRXwsQ,1074
102
- tableauserverclient-0.37.dist-info/licenses/LICENSE.versioneer,sha256=OYaGozOXk7bUNSm1z577iDYpti8a40XIqqR4lyQ47D8,334
103
- tableauserverclient-0.37.dist-info/METADATA,sha256=-Z0PkJLJDJ9EG1poAqRiDH_kxLrBvjTUje1vYceCLIU,4351
104
- tableauserverclient-0.37.dist-info/WHEEL,sha256=L0N565qmK-3nM2eBoMNFszYJ_MTx03_tQ0CQu1bHLYo,91
105
- tableauserverclient-0.37.dist-info/top_level.txt,sha256=kBnL39G2RlGqxJSsShDBWG4WZ3NFcWJkv1EGiOfZh4Q,20
106
- tableauserverclient-0.37.dist-info/RECORD,,
@@ -1,7 +0,0 @@
1
- ## License
2
-
3
- To make Versioneer easier to embed, all its code is dedicated to the public
4
- domain. The `_version.py` that it creates is also in the public domain.
5
- Specifically, both are released under the Creative Commons "Public Domain
6
- Dedication" license (CC0-1.0), as described in
7
- https://creativecommons.org/publicdomain/zero/1.0/ .
@@ -1 +0,0 @@
1
- tableauserverclient
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes