8000 Merge pull request #1380 from jorwoods/jorwoods/deprecated_cleanup · tableau/server-client-python@6c4374b · GitHub
[go: up one dir, main page]

Skip to content

Commit 6c4374b

Browse files
authored
Merge pull request #1380 from jorwoods/jorwoods/deprecated_cleanup
Jorwoods/deprecated cleanup
2 parents e6a709a + 16262e9 commit 6c4374b

11 files changed

+19
-260
lines changed

tableauserverclient/models/tableau_auth.py

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,7 @@ def deprecate_site_attribute():
2828

2929
# The traditional auth type: username/password
3030
class TableauAuth(Credentials):
31-
def __init__(self, username, password, site=None, site_id=None, user_id_to_impersonate=None):
32-
if site is not None:
33-
deprecate_site_attribute()
34-
site_id = site
31+
def __init__(self, username, password, site_id=None, user_id_to_impersonate=None):
3532
super().__init__(site_id, user_id_to_impersonate)
3633
if password is None:
3734
raise TabError("Must provide a password when using traditional authentication")
@@ -49,16 +46,6 @@ def __repr__(self):
4946
uid = ""
5047
return f"<Credentials username={self.username} password=redacted (site={self.site_id}{uid})>"
5148

52-
@property
53-
def site(self):
54-
deprecate_site_attribute()
55-
return self.site_id
56-
57-
@site.setter
58-
def site(self, value):
59-
deprecate_site_attribute()
60-
self.site_id = value
61-
6249

6350
# A Tableau-generated Personal Access Token
6451
class PersonalAccessTokenAuth(Credentials):

tableauserverclient/server/endpoint/databases_endpoint.py

Lines changed: 0 additions & 11 deletions
< 9E88 /tr>
Original file line numberDiff line numberDiff line change
@@ -88,17 +88,6 @@ def _get_tables_for_database(self, database_item):
8888
def populate_permissions(self, item):
8989
self._permissions.populate(item)
9090

91-
@api(version="3.5")
92-
def update_permission(self, item, rules):
93-
import warnings
94-
95-
warnings.warn(
96-
"Server.databases.update_permission is deprecated, "
97-
"please use Server.databases.update_permissions instead.",
98-
DeprecationWarning,
99-
)
100-
return self._permissions.update(item, rules)
101-
10291
@api(version="3.5")
10392
def update_permissions(self, item, rules):
10493
return self._permissions.update(item, rules)

tableauserverclient/server/endpoint/datasources_endpoint.py

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,13 @@ def download(
126126
datasource_id: str,
127127
filepath: Optional[PathOrFileW] = None,
128128
include_extract: bool = True,
129-
no_extract: Optional[bool] = None,
130129
) -> str:
131-
return self.download_revision(datasource_id, None, filepath, include_extract, no_extract)
130+
return self.download_revision(
131+
datasource_id,
132+
None,
133+
filepath,
134+
include_extract,
135+
)
132136

133137
# Update datasource
134138
@api(version="2.0")
@@ -351,17 +355,6 @@ def update_hyper_data(
351355
def populate_permissions(self, item: DatasourceItem) -> None:
352356
self._permissions.populate(item)
353357

354-
@api(version="2.0")
355-
def update_permission(self, item, permission_item):
356-
import warnings
357-
358-
warnings.warn(
359-
"Server.datasources.update_permission is deprecated, "
360-
"please use Server.datasources.update_permissions instead.",
361-
DeprecationWarning,
362-
)
363-
self._permissions.update(item, permission_item)
364-
365358
@api(version="2.0")
366359
def update_permissions(self, item: DatasourceItem, permission_item: List["PermissionsRule"]) -> None:
367360
self._permissions.update(item, permission_item)
@@ -415,7 +408,6 @@ def download_revision(
415408
revision_number: str,
416409
filepath: Optional[PathOrFileW] = None,
417410
include_extract: bool = True,
418-
no_extract: Optional[bool] = None,
419411
) -> PathOrFileW:
420412
if not datasource_id:
421413
error = "Datasource ID undefined."
@@ -424,14 +416,6 @@ def download_revision(
424416
url = "{0}/{1}/content".format(self.baseurl, datasource_id)
425417
else:
426418
url = "{0}/{1}/revisions/{2}/content".format(self.baseurl, datasource_id, revision_number)
427-
if no_extract is False or no_extract is True:
428-
import warnings
429-
430-
warnings.warn(
431-
"no_extract is deprecated, use include_extract instead.",
432-
DeprecationWarning,
433-
)
434-
include_extract = not no_extract
435419

436420
if not include_extract:
437421
url += "?includeExtract=False"

tableauserverclient/server/endpoint/flows_endpoint.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -265,16 +265,6 @@ def publish(
265265
def populate_permissions(self, item: FlowItem) -> None:
266266
self._permissions.populate(item)
267267

268-
@api(version="3.3")
269-
def update_permission(self, item, permission_item):
270-
import warnings
271-
272-
warnings.warn(
273-
"Server.flows.update_permission is deprecated, " "please use Server.flows.update_permissions instead.",
274-
DeprecationWarning,
275-
)
276-
self._permissions.update(item, permission_item)
277-
278268
@api(version="3.3")
279269
def update_permissions(self, item: FlowItem, permission_item: Iterable["PermissionsRule"]) -> None:
280270
self._permissions.update(item, permission_item)

tableauserverclient/server/endpoint/groups_endpoint.py

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -67,21 +67,7 @@ def delete(self, group_id: str) -> None:
6767
logger.info("Deleted single group (ID: {0})".format(group_id))
6868

6969
@api(version="2.0")
70-
def update(
71-
self, group_item: GroupItem, default_site_role: Optional[str] = None, as_job: bool = False
72-
) -> Union[GroupItem, JobItem]:
73-
# (1/8/2021): Deprecated starting v0.15
74-
if default_site_role is not None:
75-
import warnings
76-
77-
warnings.simplefilter("always", DeprecationWarning)
78-
warnings.warn(
79-
'Groups.update(...default_site_role=""...) is deprecated, '
80-
"please set the minimum_site_role field of GroupItem",
81-
DeprecationWarning,
82-
)
83-
group_item.minimum_site_role = default_site_role
84-
70+
def update(self, group_item: GroupItem, as_job: bool = False) -> Union[GroupItem, JobItem]:
8571
url = "{0}/{1}".format(self.baseurl, group_item.id)
8672

8773
if not group_item.id:
@@ -93,7 +79,7 @@ def update(
9379
elif as_job:
9480
url = "?".join([url, "asJob=True"])
9581

96-
update_req = RequestFactory.Group.update_req(group_item, None)
82+
update_req = RequestFactory.Group.update_req(group_item)
9783
server_response = self.put_request(url, update_req)
9884
logger.info("Updated group item (ID: {0})".format(group_item.id))
9985
if as_job:

tableauserverclient/server/endpoint/projects_endpoint.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,6 @@ def create(self, project_item: ProjectItem, samples: bool = False) -> ProjectIte
7575
def populate_permissions(self, item: ProjectItem) -> None:
7676
self._permissions.populate(item)
7777

78-
@api(version="2.0")
79-
def update_permission(self, item, rules):
80-
import warnings
81-
82-
warnings.warn(
83-
"Server.projects.update_permission is deprecated, "
84-
"please use Server.projects.update_permissions instead.",
85-
DeprecationWarning,
86-
)
87-
return self._permissions.update(item, rules)
88-
8978
@api(version="2.0")
9079
def update_permissions(self, item, rules):
9180
return self._permissions.update(item, rules)

tableauserverclient/server/endpoint/tables_endpoint.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -101,16 +101,6 @@ def update_column(self, table_item, column_item):
101101
def populate_permissions(self, item):
102102
self._permissions.populate(item)
103103

104-
@api(version="3.5")
105-
def update_permission(self, item, rules):
106-
import warnings
107-
108-
warnings.warn(
109-
"Server.tables.update_permission is deprecated, " "please use Server.tables.update_permissions instead.",
110-
DeprecationWarning,
111-
)
112-
return self._permissions.update(item, rules)
113-
114104
@api(version="3.5")
115105
def update_permissions(self, item, rules):
116106
return self._permissions.update(item, rules)

tableauserverclient/server/endpoint/workbooks_endpoint.py

Lines changed: 6 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -160,13 +160,6 @@ def update(
160160
updated_workbook = copy.copy(workbook_item)
161161
return updated_workbook._parse_common_tags(server_response.content, self.parent_srv.namespace)
162162

163-
@api(version="2.3")
164-
def update_conn(self, *args, **kwargs):
165-
import warnings
166-
167-
warnings.warn("update_conn is deprecated, please use update_connection instead")
168-
return self.update_connection(*args, **kwargs)
169-
170163
# Update workbook_connection
171164
@api(version="2.3")
172165
def update_connection(self, workbook_item: WorkbookItem, connection_item: ConnectionItem) -> ConnectionItem:
@@ -189,9 +182,13 @@ def download(
189182
workbook_id: str,
190183
filepath: Optional[PathOrFileW] = None,
191184
include_extract: bool = True,
192-
no_extract: Optional[bool] = None,
193185
) -> str:
194-
return self.download_revision(workbook_id, None, filepath, include_extract, no_extract)
186+
return self.download_revision(
187+
workbook_id,
188+
None,
189+
filepath,
190+
include_extract,
191+
)
195192

196193
# Get all views of workbook
197194
@api(version="2.0")
@@ -315,21 +312,11 @@ def publish(
315312
workbook_item: WorkbookItem,
316313
file: PathOrFileR,
317314
mode: str,
318-
connection_credentials: Optional["ConnectionCredentials"] = None,
319315
connections: Optional[Sequence[ConnectionItem]] = None,
320316
as_job: bool = False,
321-
hidden_views: Optional[Sequence[str]] = None,
322317
skip_connection_check: bool = False,
323318
parameters=None,
324319
):
325-
if connection_credentials is not None:
326-
import warnings
327-
328-
warnings.warn(
329-
"connection_credentials is being deprecated. Use connections instead",
330-
DeprecationWarning,
331-
)
332-
333320
if isinstance(file, (str, os.PathLike)):
334321
if not os.path.isfile(file):
335322
error = "File path does not lead to an existing file."
@@ -391,12 +378,9 @@ def publish(
391378
logger.info("Publishing {0} to server with chunking method (workbook over 64MB)".format(workbook_item.name))
392379
upload_session_id = self.parent_srv.fileuploads.upload(file)
393380
url = "{0}&uploadSessionId={1}".format(url, upload_session_id)
394-
conn_creds = connection_credentials
395381
xml_request, content_type = RequestFactory.Workbook.publish_req_chunked(
396382
workbook_item,
397-
connection_credentials=conn_creds,
398383
connections=connections,
399-
hidden_views=hidden_views,
400384
)
401385
else:
402386
logger.info("Publishing {0} to server".format(filename))
@@ -411,14 +395,11 @@ def publish(
411395
else:
412396
raise TypeError("file should be a filepath or file object.")
413397

414-
conn_creds = connection_credentials
415398
xml_request, content_type = RequestFactory.Workbook.publish_req(
416399
workbook_item,
417400
filename,
418401
file_contents,
419-
connection_credentials=conn_creds,
420402
connections=connections,
421-
hidden_views=hidden_views,
422403
)
423404
logger.debug("Request xml: {0} ".format(redact_xml(xml_request[:1000])))
424405

@@ -468,7 +449,6 @@ def download_revision(
468449
revision_number: Optional[str],
469450
filepath: Optional[PathOrFileW] = None,
470451
include_extract: bool = True,
471-
no_extract: Optional[bool] = None,
472452
) -> PathOrFileW:
473453
if not workbook_id:
474454
error = "Workbook ID undefined."
@@ -478,15 +458,6 @@ def download_revision(
478458
else:
479459
url = "{0}/{1}/revisions/{2}/content".format(self.baseurl, workbook_id, revision_number)
480460

481-
if no_extract is False or no_extract is True:
482-
import warnings
483-
484-
warnings.warn(
485-
"no_extract is deprecated, use include_extract instead.",
486-
DeprecationWarning,
487-
)
488-
include_extract = not no_extract
489-
490461
if not include_extract:
491462
url += "?includeExtract=False"
492463

tableauserverclient/server/request_factory.py

Lines changed: 4 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -418,19 +418,10 @@ def create_ad_req(self, group_item: GroupItem) -> bytes:
418418
import_element.attrib["siteRole"] = group_item.minimum_site_role
419419
return ET.tostring(xml_request)
420420

421-
def update_req(self, group_item: GroupItem, default_site_role: Optional[str] = None) -> bytes:
422-
# (1/8/2021): Deprecated starting v0.15
423-
if default_site_role is not None:
424-
import warnings
425-
426-
warnings.simplefilter("always", DeprecationWarning)
427-
warnings.warn(
428-
'RequestFactory.Group.update_req(...default_site_role="") is deprecated, '
429-
"please set the minimum_site_role field of GroupItem",
430-
DeprecationWarning,
431-
)
432-
group_item.minimum_site_role = default_site_role
433-
421+
def update_req(
422+
self,
423+
group_item: GroupItem,
424+
) -> bytes:
434425
xml_request = ET.Element("tsRequest")
435426
group_element = ET.SubElement(xml_request, "group")
436427

@@ -893,9 +884,7 @@ class WorkbookRequest(object):
893884
def _generate_xml(
894885
self,
895886
workbook_item,
896-
connection_credentials=None,
897887
connections=None,
898-
hidden_views=None,
899888
):
900889
xml_request = ET.Element("tsRequest")
901890
workbook_element = ET.SubElement(xml_request, "workbook")
@@ -905,12 +894,6 @@ def _generate_xml(
905894
project_element = ET.SubElement(workbook_element, "project")
906895
project_element.attrib["id"] = str(workbook_item.project_id)
907896

908-
if connection_credentials is not None and connections is not None:
909-
raise RuntimeError("You cannot set both `connections` and `connection_credentials`")
910-
911-
if connection_credentials is not None and connection_credentials != False:
912-
_add_credentials_element(workbook_element, connection_credentials)
913-
914897
if connections is not None and connections != False and len(connections) > 0:
915898
connections_element = ET.SubElement(workbook_element, "connections")
916899
for connection in connections:
@@ -919,17 +902,6 @@ def _generate_xml(
919902
if workbook_item.description is not None:
920903
workbook_element.attrib["description"] = workbook_item.description
921904

922-
if hidden_views is not None:
923-
import warnings
924-
925-
warnings.simplefilter("always", DeprecationWarning)
926-
warnings.warn(
927-
"the hidden_views parameter should now be set on the workbook directly",
928-
DeprecationWarning,
929-
)
930-
if workbook_item.hidden_views is None:
931-
workbook_item.hidden_views = hidden_views
932-
933905
if workbook_item.hidden_views is not None:
934906
views_element = ET.SubElement(workbook_element, "views")
935907
for view_name in workbook_item.hidden_views:
@@ -1012,15 +984,11 @@ def publish_req(
1012984
workbook_item,
1013985
filename,
1014986
file_contents,
1015-
connection_credentials=None,
1016987
connections=None,
1017-
hidden_views=None,
1018988
):
1019989
xml_request = self._generate_xml(
1020990
workbook_item,
1021-
connection_credentials=connection_credentials,
1022991
connections=connections,
1023-
hidden_views=hidden_views,
1024992
)
1025993

1026994
parts = {
@@ -1032,15 +1000,11 @@ def publish_req(
10321000
def publish_req_chunked(
10331001
self,
10341002
workbook_item,
1035-
connection_credentials=None,
10361003
connections=None,
1037-
hidden_views=None,
10381004
):
10391005
xml_request = self._generate_xml(
10401006
workbook_item,
1041-
connection_credentials=connection_credentials,
10421007
connections=connections,
1043-
hidden_views=hidden_views,
10441008
)
10451009

10461010
parts = {"request_payload": ("", xml_request, "text/xml")}

0 commit comments

Comments
 (0)
0