tableauserverclient 0.36__py3-none-any.whl → 0.37__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.
@@ -113,3 +113,7 @@ class FlowRunFailedException(TableauError):
113
113
 
114
114
  class FlowRunCancelledException(FlowRunFailedException):
115
115
  pass
116
+
117
+
118
+ class UnsupportedAttributeError(TableauError):
119
+ pass
@@ -56,6 +56,6 @@ class Fileuploads(Endpoint):
56
56
  request, content_type = RequestFactory.Fileupload.chunk_req(chunk)
57
57
  logger.debug(f"{datetime.timestamp()} created chunk request")
58
58
  fileupload_item = self.append(upload_id, request, content_type)
59
- logger.info(f"\t{datetime.timestamp()} Published {(fileupload_item.file_size / BYTES_PER_MB)}MB")
59
+ logger.info(f"\t{datetime.timestamp()} Published {fileupload_item.file_size}MB")
60
60
  logger.info(f"File upload finished (ID: {upload_id})")
61
61
  return upload_id
@@ -25,14 +25,14 @@ class GroupSets(QuerysetEndpoint[GroupSetItem]):
25
25
  @api(version="3.22")
26
26
  def get(
27
27
  self,
28
- request_options: Optional[RequestOptions] = None,
28
+ req_options: Optional[RequestOptions] = None,
29
29
  result_level: Optional[Literal["members", "local"]] = None,
30
30
  ) -> tuple[list[GroupSetItem], PaginationItem]:
31
31
  logger.info("Querying all group sets on site")
32
32
  url = self.baseurl
33
33
  if result_level:
34
34
  url += f"?resultlevel={result_level}"
35
- server_response = self.get_request(url, request_options)
35
+ server_response = self.get_request(url, req_options)
36
36
  pagination_item = PaginationItem.from_response(server_response.content, self.parent_srv.namespace)
37
37
  all_group_set_items = GroupSetItem.from_response(server_response.content, self.parent_srv.namespace)
38
38
  return all_group_set_items, pagination_item
@@ -188,7 +188,7 @@ class Jobs(QuerysetEndpoint[BackgroundJobItem]):
188
188
 
189
189
  logger.info(f"Job {job_id} Completed: Finish Code: {job.finish_code} - Notes:{job.notes}")
190
190
 
191
- if job.finish_code == JobItem.FinishCode.Success:
191
+ if job.finish_code in [JobItem.FinishCode.Success, JobItem.FinishCode.Completed]:
192
192
  return job
193
193
  elif job.finish_code == JobItem.FinishCode.Failed:
194
194
  raise JobFailedException(job)
@@ -3,7 +3,7 @@ from contextlib import closing
3
3
 
4
4
  from tableauserverclient.models.permissions_item import PermissionsRule
5
5
  from tableauserverclient.server.endpoint.endpoint import QuerysetEndpoint, api
6
- from tableauserverclient.server.endpoint.exceptions import MissingRequiredFieldError
6
+ from tableauserverclient.server.endpoint.exceptions import MissingRequiredFieldError, UnsupportedAttributeError
7
7
  from tableauserverclient.server.endpoint.permissions_endpoint import _PermissionsEndpoint
8
8
  from tableauserverclient.server.endpoint.resource_tagger import TaggingMixin
9
9
  from tableauserverclient.server.query import QuerySet
@@ -171,6 +171,10 @@ class Views(QuerysetEndpoint[ViewItem], TaggingMixin[ViewItem]):
171
171
  def image_fetcher():
172
172
  return self._get_view_image(view_item, req_options)
173
173
 
174
+ if not self.parent_srv.check_at_least_version("3.23") and req_options is not None:
175
+ if req_options.viz_height or req_options.viz_width:
176
+ raise UnsupportedAttributeError("viz_height and viz_width are only supported in 3.23+")
177
+
174
178
  view_item._set_image(image_fetcher)
175
179
  logger.info(f"Populated image for view (ID: {view_item.id})")
176
180
 
@@ -11,7 +11,11 @@ from tableauserverclient.models.permissions_item import PermissionsRule
11
11
  from tableauserverclient.server.query import QuerySet
12
12
 
13
13
  from tableauserverclient.server.endpoint.endpoint import QuerysetEndpoint, api, parameter_added_in
14
- from tableauserverclient.server.endpoint.exceptions import InternalServerError, MissingRequiredFieldError
14
+ from tableauserverclient.server.endpoint.exceptions import (
15
+ InternalServerError,
16
+ MissingRequiredFieldError,
17
+ UnsupportedAttributeError,
18
+ )
15
19
  from tableauserverclient.server.endpoint.permissions_endpoint import _PermissionsEndpoint
16
20
  from tableauserverclient.server.endpoint.resource_tagger import TaggingMixin
17
21
 
@@ -34,7 +38,7 @@ from collections.abc import Iterable, Sequence
34
38
 
35
39
  if TYPE_CHECKING:
36
40
  from tableauserverclient.server import Server
37
- from tableauserverclient.server.request_options import RequestOptions
41
+ from tableauserverclient.server.request_options import RequestOptions, PDFRequestOptions, PPTXRequestOptions
38
42
  from tableauserverclient.models import DatasourceItem
39
43
  from tableauserverclient.server.endpoint.schedules_endpoint import AddResponse
40
44
 
@@ -136,7 +140,7 @@ class Workbooks(QuerysetEndpoint[WorkbookItem], TaggingMixin[WorkbookItem]):
136
140
  """
137
141
  id_ = getattr(workbook_item, "id", workbook_item)
138
142
  url = f"{self.baseurl}/{id_}/refresh"
139
- refresh_req = RequestFactory.Task.refresh_req(incremental)
143
+ refresh_req = RequestFactory.Task.refresh_req(incremental, self.parent_srv)
140
144
  server_response = self.post_request(url, refresh_req)
141
145
  new_job = JobItem.from_response(server_response.content, self.parent_srv.namespace)[0]
142
146
  return new_job
@@ -472,11 +476,12 @@ class Workbooks(QuerysetEndpoint[WorkbookItem], TaggingMixin[WorkbookItem]):
472
476
  connections = ConnectionItem.from_response(server_response.content, self.parent_srv.namespace)
473
477
  return connections
474
478
 
475
- # Get the pdf of the entire workbook if its tabs are enabled, pdf of the default view if its tabs are disabled
476
479
  @api(version="3.4")
477
- def populate_pdf(self, workbook_item: WorkbookItem, req_options: Optional["RequestOptions"] = None) -> None:
480
+ def populate_pdf(self, workbook_item: WorkbookItem, req_options: Optional["PDFRequestOptions"] = None) -> None:
478
481
  """
479
- Populates the PDF for the specified workbook item.
482
+ Populates the PDF for the specified workbook item. Get the pdf of the
483
+ entire workbook if its tabs are enabled, pdf of the default view if its
484
+ tabs are disabled.
480
485
 
481
486
  This method populates a PDF with image(s) of the workbook view(s) you
482
487
  specify.
@@ -488,7 +493,7 @@ class Workbooks(QuerysetEndpoint[WorkbookItem], TaggingMixin[WorkbookItem]):
488
493
  workbook_item : WorkbookItem
489
494
  The workbook item to populate the PDF for.
490
495
 
491
- req_options : RequestOptions, optional
496
+ req_options : PDFRequestOptions, optional
492
497
  (Optional) You can pass in request options to specify the page type
493
498
  and orientation of the PDF content, as well as the maximum age of
494
499
  the PDF rendered on the server. See PDFRequestOptions class for more
@@ -510,17 +515,26 @@ class Workbooks(QuerysetEndpoint[WorkbookItem], TaggingMixin[WorkbookItem]):
510
515
  def pdf_fetcher() -> bytes:
511
516
  return self._get_wb_pdf(workbook_item, req_options)
512
517
 
518
+ if not self.parent_srv.check_at_least_version("3.23") and req_options is not None:
519
+ if req_options.view_filters or req_options.view_parameters:
520
+ raise UnsupportedAttributeError("view_filters and view_parameters are only supported in 3.23+")
521
+
522
+ if req_options.viz_height or req_options.viz_width:
523
+ raise UnsupportedAttributeError("viz_height and viz_width are only supported in 3.23+")
524
+
513
525
  workbook_item._set_pdf(pdf_fetcher)
514
526
  logger.info(f"Populated pdf for workbook (ID: {workbook_item.id})")
515
527
 
516
- def _get_wb_pdf(self, workbook_item: WorkbookItem, req_options: Optional["RequestOptions"]) -> bytes:
528
+ def _get_wb_pdf(self, workbook_item: WorkbookItem, req_options: Optional["PDFRequestOptions"]) -> bytes:
517
529
  url = f"{self.baseurl}/{workbook_item.id}/pdf"
518
530
  server_response = self.get_request(url, req_options)
519
531
  pdf = server_response.content
520
532
  return pdf
521
533
 
522
534
  @api(version="3.8")
523
- def populate_powerpoint(self, workbook_item: WorkbookItem, req_options: Optional["RequestOptions"] = None) -> None:
535
+ def populate_powerpoint(
536
+ self, workbook_item: WorkbookItem, req_options: Optional["PPTXRequestOptions"] = None
537
+ ) -> None:
524
538
  """
525
539
  Populates the PowerPoint for the specified workbook item.
526
540
 
@@ -561,7 +575,7 @@ class Workbooks(QuerysetEndpoint[WorkbookItem], TaggingMixin[WorkbookItem]):
561
575
  workbook_item._set_powerpoint(pptx_fetcher)
562
576
  logger.info(f"Populated powerpoint for workbook (ID: {workbook_item.id})")
563
577
 
564
- def _get_wb_pptx(self, workbook_item: WorkbookItem, req_options: Optional["RequestOptions"]) -> bytes:
578
+ def _get_wb_pptx(self, workbook_item: WorkbookItem, req_options: Optional["PPTXRequestOptions"]) -> bytes:
565
579
  url = f"{self.baseurl}/{workbook_item.id}/powerpoint"
566
580
  server_response = self.get_request(url, req_options)
567
581
  pptx = server_response.content
@@ -1118,11 +1118,17 @@ class TaskRequest:
1118
1118
  pass
1119
1119
 
1120
1120
  @_tsrequest_wrapped
1121
- def refresh_req(self, xml_request: ET.Element, incremental: bool = False) -> bytes:
1122
- task_element = ET.SubElement(xml_request, "extractRefresh")
1123
- if incremental:
1124
- task_element.attrib["incremental"] = "true"
1125
- return ET.tostring(xml_request)
1121
+ def refresh_req(
1122
+ self, xml_request: ET.Element, incremental: bool = False, parent_srv: Optional["Server"] = None
1123
+ ) -> Optional[bytes]:
1124
+ if parent_srv is not None and parent_srv.check_at_least_version("3.25"):
1125
+ task_element = ET.SubElement(xml_request, "extractRefresh")
1126
+ if incremental:
1127
+ task_element.attrib["incremental"] = "true"
1128
+ return ET.tostring(xml_request)
1129
+ elif incremental:
1130
+ raise ValueError("Incremental refresh is only supported in 3.25+")
1131
+ return None
1126
1132
 
1127
1133
  @_tsrequest_wrapped
1128
1134
  def create_extract_req(self, xml_request: ET.Element, extract_item: "TaskItem") -> bytes:
@@ -385,6 +385,8 @@ class PDFRequestOptions(_ImagePDFCommonExportOptions):
385
385
  Options that can be used when exporting a view to PDF. Set the maxage to control the age of the data exported.
386
386
  Filters to the underlying data can be applied using the `vf` and `parameter` methods.
387
387
 
388
+ vf and parameter filters are only supported in API version 3.23 and later.
389
+
388
390
  Parameters
389
391
  ----------
390
392
  page_type: str, optional
@@ -438,3 +440,35 @@ class PDFRequestOptions(_ImagePDFCommonExportOptions):
438
440
  params["orientation"] = self.orientation
439
441
 
440
442
  return params
443
+
444
+
445
+ class PPTXRequestOptions(RequestOptionsBase):
446
+ """
447
+ Options that can be used when exporting a view to PPTX. Set the maxage to control the age of the data exported.
448
+
449
+ Parameters
450
+ ----------
451
+ maxage: int, optional
452
+ The maximum age of the data to export. Shortest possible duration is 1
453
+ minute. No upper limit. Default is -1, which means no limit.
454
+ """
455
+
456
+ def __init__(self, maxage=-1):
457
+ super().__init__()
458
+ self.max_age = maxage
459
+
460
+ @property
461
+ def max_age(self) -> int:
462
+ return self._max_age
463
+
464
+ @max_age.setter
465
+ @property_is_int(range=(0, 240), allowed=[-1])
466
+ def max_age(self, value):
467
+ self._max_age = value
468
+
469
+ def get_query_params(self):
470
+ params = {}
471
+ if self.max_age != -1:
472
+ params["maxAge"] = self.max_age
473
+
474
+ return params
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: tableauserverclient
3
- Version: 0.36
3
+ Version: 0.37
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)
@@ -50,6 +50,7 @@ Requires-Dist: pytest>=7.0; extra == "test"
50
50
  Requires-Dist: pytest-cov; extra == "test"
51
51
  Requires-Dist: pytest-subtests; extra == "test"
52
52
  Requires-Dist: requests-mock<2.0,>=1.0; extra == "test"
53
+ Dynamic: license-file
53
54
 
54
55
  # Tableau Server Client (Python)
55
56
 
@@ -1,11 +1,11 @@
1
- tableauserverclient/__init__.py,sha256=cklsANSkzOpxzwTw-w7__Wzjs5yAp9M9KG427GOm9Ho,2814
1
+ tableauserverclient/__init__.py,sha256=ZtTKjguU2eckQI9_0jkH3UeQemmjVHzL_H_R2cOWjLs,2864
2
2
  tableauserverclient/config.py,sha256=LcWVmZjkYMh1cKCKZm3VZItgKOoSLz1ai4PnVgbAtDA,713
3
3
  tableauserverclient/datetime_helpers.py,sha256=_-gWz5I2_KHT5AzW_boD8meH6loTTKdK-_62h1MA6ko,884
4
4
  tableauserverclient/exponential_backoff.py,sha256=HtAfbbVnYtiOe2_ZzKqZmsml40EDZBaC3bttif5qeG8,1474
5
5
  tableauserverclient/filesys_helpers.py,sha256=hosTm9fpc9B9_VCDcAuyHA0A-f-MWs9_2utyRweuZ5I,1667
6
6
  tableauserverclient/namespace.py,sha256=Zh6QtxNmqPkjRMsefHHX-ycS4r-egnrJ4-hdHvldBHw,963
7
7
  tableauserverclient/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- tableauserverclient/bin/_version.py,sha256=n2vnkG6Mcbg53P1Q_NeRRfwUEMacVFSMXaM0G0afS-U,496
8
+ tableauserverclient/bin/_version.py,sha256=HbFP26HrRF5QHyXZah-2Lx9AWzM1KlO7_InvfHE-jfs,496
9
9
  tableauserverclient/helpers/__init__.py,sha256=llpqF9zV5dsP5hQt8dyop33Op5OzGmxW0BZibaSlCcM,23
10
10
  tableauserverclient/helpers/headers.py,sha256=Pg-ZWSgV2Yp813BV1Tzo8F2Hn4P01zscla2RRM4yqNk,411
11
11
  tableauserverclient/helpers/logging.py,sha256=5q_oR3wERHVXFXY6XDnLYML5-HdAPJTmqhH9IZg4VfY,113
@@ -13,13 +13,13 @@ tableauserverclient/helpers/strings.py,sha256=HRTP31HIdD3gFxDDHuBsmOl_8cLdh8fa3x
13
13
  tableauserverclient/models/__init__.py,sha256=bU4eaOQ4I9h_JYn7IbhCZhHbMVvxdSUhMJeHg80apYA,4051
14
14
  tableauserverclient/models/column_item.py,sha256=yUFzXNcnUPVo2imrhEBS4fMVAR5j2ZzksOk5t9XYW5s,1964
15
15
  tableauserverclient/models/connection_credentials.py,sha256=CQ8FkkHW9MeTw8uArNhrU5mowtryWUddgEgEliqh3ys,2066
16
- tableauserverclient/models/connection_item.py,sha256=0fmYXfrBccTnRm_3AtEJKaz4jkM1_TvdBTfI7pZVe-U,5908
16
+ tableauserverclient/models/connection_item.py,sha256=LwZza3I5Zwx04BcLGWQXRcuZq5X_X86DDse6RMmrcr8,6002
17
17
  tableauserverclient/models/custom_view_item.py,sha256=JZyq7jkt9WH-24eOV4PO2uGJxaSZ-5K05jL4UoZ8kYs,7771
18
18
  tableauserverclient/models/data_acceleration_report_item.py,sha256=HFZROetfOWh-hMS48xBEHqYOViINHZR-EpcrP45_8AI,3386
19
19
  tableauserverclient/models/data_alert_item.py,sha256=VZtRR-kqojq-mkrTgvay4WkPawj3-4jbSc0wBijmJhk,6444
20
20
  tableauserverclient/models/data_freshness_policy_item.py,sha256=UdaEmwVL_q364Do_2dOnkCSX-oKnvjKfsYzGSaJIQFs,7618
21
21
  tableauserverclient/models/database_item.py,sha256=lWxmmMpPeVxzizVAsVkc6Ps2I-j-0KJAJZto8qShrYU,8223
22
- tableauserverclient/models/datasource_item.py,sha256=PVXcopBZFunLc3SAtti0HQd5xJ93ANc8dZYJihvtyzA,12371
22
+ tableauserverclient/models/datasource_item.py,sha256=YjNlQcrdP26iA8g1ZWAxgUtRHS3Z9YrI1yFdaK5hg6M,15872
23
23
  tableauserverclient/models/dqw_item.py,sha256=87oTc7icrQst_DSaTqoVR965YEckg5dk6osa51BrCAk,3710
24
24
  tableauserverclient/models/exceptions.py,sha256=pQu5DS4jNMT9A0wEBWv2vANAQU1vgNpFatVr8sGE4zk,105
25
25
  tableauserverclient/models/favorites_item.py,sha256=JxHfy38xdRYol2KM_8_A7Ng59cZunkhTNcpxO670k08,3294
@@ -29,7 +29,7 @@ tableauserverclient/models/flow_run_item.py,sha256=nf_b6KRwNevwZRsPoMh8dLzdONUMW
29
29
  tableauserverclient/models/group_item.py,sha256=asj0ZlA0-OAGgcYFu9sDX0t29B5A4LDsirXi0IN6i40,4896
30
30
  tableauserverclient/models/groupset_item.py,sha256=gxxyzviE5B8zr2sKJteIDKtYTPYKsGd-qMcrjEY2uVU,1885
31
31
  tableauserverclient/models/interval_item.py,sha256=_ZHQtzQWxwdd_sScziqhrK54k7W_ZgrMfP2PhlIhTRQ,9101
32
- tableauserverclient/models/job_item.py,sha256=TJBGqWWYYolcqPAwUSb8gLoXDb0Vsu3LGFk05UpFe0s,11485
32
+ tableauserverclient/models/job_item.py,sha256=Q7tTKXEiW-5VJsLmnAq6auP0jvmbbImmqw_nx1kiXtM,11512
33
33
  tableauserverclient/models/linked_tasks_item.py,sha256=TYkNvmJfKlZ30OST8w9GUobboFAH5ftFKjXdWWAtR24,3806
34
34
  tableauserverclient/models/metric_item.py,sha256=D3atzbr3jtQUsVsqYHfz-v3yRP3qruRN5jRsv_-yRQ0,5378
35
35
  tableauserverclient/models/pagination_item.py,sha256=55Ap_9pJxq8plWQO1Js3Jp6KFidN3TQsL5LM2-yZGDo,1424
@@ -53,13 +53,13 @@ tableauserverclient/models/view_item.py,sha256=AxHGrcUOv_kKDqqFWxvQ-kX9KoD0Df20M
53
53
  tableauserverclient/models/virtual_connection_item.py,sha256=TvX7MId7WSg4IZE41XAMl1l3Ibu8kTUR1xr26Cqtyeo,3357
54
54
  tableauserverclient/models/webhook_item.py,sha256=r37fHY3_uhDhxupHfMSvB4I2aUjy3qQ2FOLQjAcNUUk,3994
55
55
  tableauserverclient/models/workbook_item.py,sha256=s1zSSPaXASbjOirB6EqGO_O8ev-BrsSFwEJwlbdFYFQ,17468
56
- tableauserverclient/server/__init__.py,sha256=Ahk3Zh1F2e-rNPtlC7k51Lp8R_2q2obIuolln7bllTM,1890
56
+ tableauserverclient/server/__init__.py,sha256=77E-3LseLd9gHeRgKPnpZTNMQySgYiwst33AsReol-k,1940
57
57
  tableauserverclient/server/exceptions.py,sha256=l-O4lcoEeXJC7fLWUanIcZM_Mf8m54uK3NQuKNj3RCg,183
58
58
  tableauserverclient/server/filter.py,sha256=Z7O6A175bBSmcponLs0Enh5R5Gp2puVRGfOMk-V395w,1096
59
59
  tableauserverclient/server/pager.py,sha256=IESvCba7WZO3O9VBcKlJ6ricVDgro0gKuUQyJnOCUws,3497
60
60
  tableauserverclient/server/query.py,sha256=dxl0dOBd_Rx8BIS0ocMd-RhO5yb1KXnu2OacrQzQGPY,9461
61
- tableauserverclient/server/request_factory.py,sha256=GIOJjJQBnijxY4Z7s7RJf_5c9RvvyEIuEIJsE7epmo4,72424
62
- tableauserverclient/server/request_options.py,sha256=xuu7Pf_9kG4liUwioC9zWhe3p8s50pwXQhNvUarzlso,14488
61
+ tableauserverclient/server/request_factory.py,sha256=5Vf0Vbhj_72-f7QlEnk1Gc2KUfzeiihzkhx78Mx07FM,72709
62
+ tableauserverclient/server/request_options.py,sha256=3le-ujRiAlZVSSgnP2kF8hqavm7d7dmYFL-48MX6syo,15403
63
63
  tableauserverclient/server/server.py,sha256=Uk63h9Y2Ub1Iu2PWhguG5D5BpWFqNydgML6ae2yesV4,11291
64
64
  tableauserverclient/server/sort.py,sha256=wjnlt7rlmLvQjM_XpgD8N8Hlg0zVvLOV7k_dAs1DmHY,628
65
65
  tableauserverclient/server/endpoint/__init__.py,sha256=MpttkNENWAiXS2QigwZMfWG6PnsB05QSFK4-OIR3CaQ,3101
@@ -68,19 +68,19 @@ tableauserverclient/server/endpoint/custom_views_endpoint.py,sha256=se-CZ9BF8Cf_
68
68
  tableauserverclient/server/endpoint/data_acceleration_report_endpoint.py,sha256=he-MVqCvAQo8--icEKFoIV2KUP6Z1s_PJ2uZ8Xpj2f8,1130
69
69
  tableauserverclient/server/endpoint/data_alert_endpoint.py,sha256=ZNotgG3hBpR7fo8eDTXx_gSppF2n25GQ3udwF3MKFLk,5203
70
70
  tableauserverclient/server/endpoint/databases_endpoint.py,sha256=3kl7YCCJB_DY88QiJxKvtarDV7kPApGYtIcr7d7l8k0,5705
71
- tableauserverclient/server/endpoint/datasources_endpoint.py,sha256=_hkXw8v0leK-XMeOYzWEQg8n3QTRCvFxE6TSama2a3Q,22936
71
+ tableauserverclient/server/endpoint/datasources_endpoint.py,sha256=D70xk7kWkqQBDRC0yx5gZj8AhZf-lUCzdL9Ycw3nP0c,41722
72
72
  tableauserverclient/server/endpoint/default_permissions_endpoint.py,sha256=bZlhDqu6jFyC4vbrdC3Nn1cWRJWRz0mhxco9hRUouJA,4327
73
73
  tableauserverclient/server/endpoint/dqw_endpoint.py,sha256=hN2UsyM3hrUsIK9CudSBB-WXNa0TeUU7Zjeol0njIXI,2155
74
74
  tableauserverclient/server/endpoint/endpoint.py,sha256=pYr-l3GLK8Fvh46U_VdaJLLerd2GBJXJk_x94RQ-ZeE,14113
75
- tableauserverclient/server/endpoint/exceptions.py,sha256=4fN-kI9Hg3QaSOAJ1xLN56sCjTH9d470jWkYurZvTrM,2861
75
+ tableauserverclient/server/endpoint/exceptions.py,sha256=ifkRatvvqG5awY73BzwALlby3dYYKr_8leUOmpeZS0Y,2919
76
76
  tableauserverclient/server/endpoint/favorites_endpoint.py,sha256=ZMui0KQCSGRBlUrem519Y5_gBpngN7wtDWo_EvEUMEk,6340
77
- tableauserverclient/server/endpoint/fileuploads_endpoint.py,sha256=OnjAoHJyMsOnCVauAyOnKEdUqw9elpQ5O5cBnM0T1bQ,2427
77
+ tableauserverclient/server/endpoint/fileuploads_endpoint.py,sha256=e3qIw6lJJG4Y8RHG26psMjjETovpfrBzmFjeYeJll8s,2410
78
78
  tableauserverclient/server/endpoint/flow_runs_endpoint.py,sha256=HIVuTi4pXIqog16K_3Zzu1LC96TR_pZlAjxRKoJrJ_g,4957
79
79
  tableauserverclient/server/endpoint/flow_task_endpoint.py,sha256=4D7tEYow7lqkCuazXUrUyIH_y_PQMTehmeIi-zSIMXo,1078
80
80
  tableauserverclient/server/endpoint/flows_endpoint.py,sha256=i0nc9JeBzJ7A-kymGMubV8khT-NU3oxlvB7SHd_bddA,23650
81
81
  tableauserverclient/server/endpoint/groups_endpoint.py,sha256=5ZhKJeKT3GoM2olqJYJggdiVYQ9BdcEJCIqkx-tZqxo,18745
82
- tableauserverclient/server/endpoint/groupsets_endpoint.py,sha256=-nsl2LCixvMhho3KKSWDpHLfNahTBue76L3i8RjTqyc,5585
83
- tableauserverclient/server/endpoint/jobs_endpoint.py,sha256=bwNxLq4t2AUq6xtyv41FkhekeEE3SitNs8VpibakWOE,10355
82
+ tableauserverclient/server/endpoint/groupsets_endpoint.py,sha256=Kcrrd0NbduwIhAtGkG-EMf38qcCM74EnCybAs24TFnM,5577
83
+ tableauserverclient/server/endpoint/jobs_endpoint.py,sha256=rhR8tD89U5ha-g5QhLlGXurTF77mLQREnd7k208EHxA,10387
84
84
  tableauserverclient/server/endpoint/linked_tasks_endpoint.py,sha256=tMZqVPWPZvYawaXLJGVV9scmWPu1rdCxz-eWZv1WbPk,2262
85
85
  tableauserverclient/server/endpoint/metadata_endpoint.py,sha256=sg0Yehj2f0wlrJMkVjzNdNxNEhSeNbZIkio3eQamOVk,5228
86
86
  tableauserverclient/server/endpoint/metrics_endpoint.py,sha256=p9F_tbUela1sb3i9n67Tr9zsPRmsjSAigC6EqLwZHqE,3175
@@ -94,13 +94,13 @@ tableauserverclient/server/endpoint/subscriptions_endpoint.py,sha256=21oZ6Q14AL8
94
94
  tableauserverclient/server/endpoint/tables_endpoint.py,sha256=7HCOheWJd8VAEz1TACbWnLFxfYiKcPB40XpxtT5Qbj0,5725
95
95
  tableauserverclient/server/endpoint/tasks_endpoint.py,sha256=5VHGe2NSgr40BKPPOm9nVrdZGrG3Sf0ri_CNqsv0CpQ,6304
96
96
  tableauserverclient/server/endpoint/users_endpoint.py,sha256=yLDzGy9K9ecY8uO8Tww1fp3hwrs_WMbMYtgMRRa7Hho,19788
97
- tableauserverclient/server/endpoint/views_endpoint.py,sha256=d_vy0PJGyeOqQPtLflSKKRyiVaqgRcQ9oMD4vGKr5hE,17572
97
+ tableauserverclient/server/endpoint/views_endpoint.py,sha256=4wTqjo1MyB6kkVB0W9QSajz8eqwO7vaZCcD2y6hN4Zo,17859
98
98
  tableauserverclient/server/endpoint/virtual_connections_endpoint.py,sha256=K5R86aIm4hZeYw3OUOlKv-zTmsWa3np1iuV_h5iPvt0,8458
99
99
  tableauserverclient/server/endpoint/webhooks_endpoint.py,sha256=nmEjKdbntwBg-0XAP2TluOv2v8usqxXg7sO8ogS5rDI,4923
100
- tableauserverclient/server/endpoint/workbooks_endpoint.py,sha256=WaECiTbWl5yL2S4qUcMgiwYzkth2ZQieQs_0HD57Omg,43323
101
- tableauserverclient-0.36.dist-info/LICENSE,sha256=MMkY7MguOb4L-WCmmqrVcwg2iwSGaz-RfAMFvXRXwsQ,1074
102
- tableauserverclient-0.36.dist-info/LICENSE.versioneer,sha256=OYaGozOXk7bUNSm1z577iDYpti8a40XIqqR4lyQ47D8,334
103
- tableauserverclient-0.36.dist-info/METADATA,sha256=QBYg21JlbEA93kGx7FFN_mDrReOe-TB_0Cqc_F2AhGs,4329
104
- tableauserverclient-0.36.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
105
- tableauserverclient-0.36.dist-info/top_level.txt,sha256=kBnL39G2RlGqxJSsShDBWG4WZ3NFcWJkv1EGiOfZh4Q,20
106
- tableauserverclient-0.36.dist-info/RECORD,,
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,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (78.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5