66from defusedxml .ElementTree import fromstring
77
88from tableauserverclient .datetime_helpers import parse_datetime
9- from tableauserverclient .helpers .strings import nullable_str_to_bool , nullable_str_to_int
109from tableauserverclient .models .connection_item import ConnectionItem
1110from tableauserverclient .models .exceptions import UnpopulatedPropertyError
1211from tableauserverclient .models .permissions_item import PermissionsRule
13- from tableauserverclient .models .project_item import ProjectItem
1412from tableauserverclient .models .property_decorators import (
1513 property_not_nullable ,
1614 property_is_boolean ,
1715 property_is_enum ,
1816)
1917from tableauserverclient .models .revision_item import RevisionItem
2018from tableauserverclient .models .tag_item import TagItem
21- from tableauserverclient .models .user_item import UserItem
2219
2320
2421class DatasourceItem :
@@ -43,9 +40,6 @@ class DatasourceItem:
4340 specified, it will default to SiteDefault. See REST API Publish
4441 Datasource for more information about ask_data_enablement.
4542
46- connected_workbooks_count : Optional[int]
47- The number of workbooks connected to the datasource.
48-
4943 connections : list[ConnectionItem]
5044 The list of data connections (ConnectionItem) for the specified data
5145 source. You must first call the populate_connections method to access
@@ -73,12 +67,6 @@ class DatasourceItem:
7367 A Boolean value to determine if a datasource should be encrypted or not.
7468 See Extract and Encryption Methods for more information.
7569
76- favorites_total : Optional[int]
77- The number of users who have marked the data source as a favorite.
78-
79- has_alert : Optional[bool]
80- A Boolean value that indicates whether the data source has an alert.
81-
8270 has_extracts : Optional[bool]
8371 A Boolean value that indicates whether the datasource has extracts.
8472
@@ -87,32 +75,20 @@ class DatasourceItem:
8775 specific data source or to delete a data source with the get_by_id and
8876 delete methods.
8977
90- is_published : Optional[bool]
91- A Boolean value that indicates whether the data source is published.
92-
9378 name : Optional[str]
9479 The name of the data source. If not specified, the name of the published
9580 data source file is used.
9681
97- owner: Optional[UserItem]
98- The owner of the data source.
99-
10082 owner_id : Optional[str]
10183 The identifier of the owner of the data source.
10284
103- project : Optional[ProjectItem]
104- The project that the data source belongs to.
105-
10685 project_id : Optional[str]
10786 The identifier of the project associated with the data source. You must
10887 provide this identifier when you create an instance of a DatasourceItem.
10988
11089 project_name : Optional[str]
11190 The name of the project associated with the data source.
11291
113- server_name : Optional[str]
114- The name of the server where the data source is published.
115-
11692 tags : Optional[set[str]]
11793 The tags (list of strings) that have been added to the data source.
11894
@@ -167,13 +143,6 @@ def __init__(self, project_id: Optional[str] = None, name: Optional[str] = None)
167143 self .owner_id : Optional [str ] = None
168144 self .project_id : Optional [str ] = project_id
169145 self .tags : set [str ] = set ()
170- self ._connected_workbooks_count : Optional [int ] = None
171- self ._favorites_total : Optional [int ] = None
172- self ._has_alert : Optional [bool ] = None
173- self ._is_published : Optional [bool ] = None
174- self ._server_name : Optional [str ] = None
175- self ._project : Optional [ProjectItem ] = None
176- self ._owner : Optional [UserItem ] = None
177146
178147 self ._permissions = None
179148 self ._data_quality_warnings = None
@@ -305,42 +274,14 @@ def revisions(self) -> list[RevisionItem]:
305274 def size (self ) -> Optional [int ]:
306275 return self ._size
307276
308- @property
309- def connected_workbooks_count (self ) -> Optional [int ]:
310- return self ._connected_workbooks_count
311-
312- @property
313- def favorites_total (self ) -> Optional [int ]:
314- return self ._favorites_total
315-
316- @property
317- def has_alert (self ) -> Optional [bool ]:
318- return self ._has_alert
319-
320- @property
321- def is_published (self ) -> Optional [bool ]:
322- return self ._is_published
323-
324- @property
325- def server_name (self ) -> Optional [str ]:
326- return self ._server_name
327-
328- @property
329- def project (self ) -> Optional [ProjectItem ]:
330- return self ._project
331-
332- @property
333- def owner (self ) -> Optional [UserItem ]:
334- return self ._owner
335-
336277 def _set_connections (self , connections ) -> None :
337278 self ._connections = connections
338279
339280 def _set_permissions (self , permissions ):
340281 self ._permissions = permissions
341282
342- def _set_data_quality_warnings (self , dqw ):
343- self ._data_quality_warnings = dqw
283+ def _set_data_quality_warnings (self , dqws ):
284+ self ._data_quality_warnings = dqws
344285
345286 def _set_revisions (self , revisions ):
346287 self ._revisions = revisions
@@ -369,13 +310,6 @@ def _parse_common_elements(self, datasource_xml, ns):
369310 use_remote_query_agent ,
370311 webpage_url ,
371312 size ,
372- connected_workbooks_count ,
373- favorites_total ,
374- has_alert ,
375- is_published ,
376- server_name ,
377- project ,
378- owner ,
379313 ) = self ._parse_element (datasource_xml , ns )
380314 self ._set_values (
381315 ask_data_enablement ,
@@ -397,13 +331,6 @@ def _parse_common_elements(self, datasource_xml, ns):
397331 use_remote_query_agent ,
398332 webpage_url ,
399333 size ,
400- connected_workbooks_count ,
401- favorites_total ,
402- has_alert ,
403- is_published ,
404- server_name ,
405- project ,
406- owner ,
407334 )
408335 return self
409336
@@ -428,13 +355,6 @@ def _set_values(
428355 use_remote_query_agent ,
429356 webpage_url ,
430357 size ,
431- connected_workbooks_count ,
432- favorites_total ,
433- has_alert ,
434- is_published ,
435- server_name ,
436- project ,
437- owner ,
438358 ):
439359 if ask_data_enablement is not None :
440360 self ._ask_data_enablement = ask_data_enablement
@@ -474,20 +394,6 @@ def _set_values(
474394 self ._webpage_url = webpage_url
475395 if size is not None :
476396 self ._size = int (size )
477- if connected_workbooks_count is not None :
478- self ._connected_workbooks_count = connected_workbooks_count
479- if favorites_total is not None :
480- self ._favorites_total = favorites_total
481- if has_alert is not None :
482- self ._has_alert = has_alert
483- if is_published is not None :
484- self ._is_published = is_published
485- if server_name is not None :
486- self ._server_name = server_name
487- if project is not None :
488- self ._project = project
489- if owner is not None :
490- self ._owner = owner
491397
492398 @classmethod
493399 def from_response (cls , resp : str , ns : dict ) -> list ["DatasourceItem" ]:
@@ -522,11 +428,6 @@ def _parse_element(datasource_xml: ET.Element, ns: dict) -> tuple:
522428 use_remote_query_agent = datasource_xml .get ("useRemoteQueryAgent" , None )
523429 webpage_url = datasource_xml .get ("webpageUrl" , None )
524430 size = datasource_xml .get ("size" , None )
525- connected_workbooks_count = nullable_str_to_int (datasource_xml .get ("connectedWorkbooksCount" , None ))
526- favorites_total = nullable_str_to_int (datasource_xml .get ("favoritesTotal" , None ))
527- has_alert = nullable_str_to_bool (datasource_xml .get ("hasAlert" , None ))
528- is_published = nullable_str_to_bool (datasource_xml .get ("isPublished" , None ))
529- server_name = datasource_xml .get ("serverName" , None )
530431
531432 tags = None
532433 tags_elem = datasource_xml .find (".//t:tags" , namespaces = ns )
@@ -537,14 +438,12 @@ def _parse_element(datasource_xml: ET.Element, ns: dict) -> tuple:
537438 project_name = None
538439 project_elem = datasource_xml .find (".//t:project" , namespaces = ns )
539440 if project_elem is not None :
540- project = ProjectItem .from_xml (project_elem , ns )
541441 project_id = project_elem .get ("id" , None )
542442 project_name = project_elem .get ("name" , None )
543443
544444 owner_id = None
545445 owner_elem = datasource_xml .find (".//t:owner" , namespaces = ns )
546446 if owner_elem is not None :
547- owner = UserItem .from_xml (owner_elem , ns )
548447 owner_id = owner_elem .get ("id" , None )
549448
550449 ask_data_enablement = None
@@ -572,11 +471,4 @@ def _parse_element(datasource_xml: ET.Element, ns: dict) -> tuple:
572471 use_remote_query_agent ,
573472 webpage_url ,
574473 size ,
575- connected_workbooks_count ,
576- favorites_total ,
577- has_alert ,
578- is_published ,
579- server_name ,
580- project ,
581- owner ,
582474 )
0 commit comments