8000 Add property decorators · williamlang/server-client-python@e9aa592 · GitHub
[go: up one dir, main page]

Skip to content

Commit e9aa592

Browse files
committed
Add property decorators
1 parent 36d63c0 commit e9aa592

File tree

6 files changed

+44
-83
lines changed

6 files changed

+44
-83
lines changed

tableauserverclient/models/datasource_item.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import xml.etree.ElementTree as ET
22
from .exceptions import UnpopulatedPropertyError
3+
from .property_not_nullable_decorator import *
34
from .tag_item import TagItem
45
from .. import NAMESPACE
56

@@ -45,12 +46,9 @@ def project_id(self):
4546
return self._project_id
4647

4748
@project_id.setter
49+
@property_not_nullable
4850
def project_id(self, value):
49-
if value is None:
50-
error = 'Project ID must be defined.'
51-
raise ValueError(error)
52-
else:
53-
self._project_id = value
51+
self._project_id = value
5452

5553
@property
5654
def project_name(self):

tableauserverclient/models/group_item.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import xml.etree.ElementTree as ET
22
from .exceptions import UnpopulatedPropertyError
3+
from .property_not_nullable_decorator import *
34
from .. import NAMESPACE
45

56

@@ -26,12 +27,9 @@ def name(self):
2627
return self._name
2728

2829
@name.setter
30+
@property_not_nullable
2931
def name(self, value):
30-
if not value:
31-
error = 'Name must be defined.'
32-
raise ValueError(error)
33-
else:
34-
self._name = value
32+
self._name = value
3533

3634
@property
3735
def users(self):

tableauserverclient/models/project_item.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import xml.etree.ElementTree as ET
2+
from .property_not_nullable_decorator import *
3+
from .property_type_decorator import *
24
from .. import NAMESPACE
35

46

@@ -26,12 +28,9 @@ def content_permissions(self):
2628
return self._content_permissions
2729

2830
@content_permissions.setter
31+
@property_type(ContentPermissions)
2932
def content_permissions(self, value):
30-
if value and not hasattr(ProjectItem.ContentPermissions, value):
31-
error = 'Invalid content permission defined.'
32-
raise ValueError(error)
33-
else:
34-
self._content_permissions = value
33+
self._content_permissions = value
3534

3635
@property
3736
def id(self):
@@ -42,12 +41,9 @@ def name(self):
4241
return self._name
4342

4443
@name.setter
44+
@property_not_nullable
4545
def name(self, value):
46-
if not value:
47-
error = 'Name must be defined.'
48-
raise ValueError(error)
49-
else:
50-
self._name = value
46+
self._name = value
5147

5248
def is_default(self):
5349
return self.name.lower() == 'default'

tableauserverclient/models/site_item.py

Lines changed: 17 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import xml.etree.ElementTree as ET
2+
from .property_type_decorator import *
3+
from .property_not_nullable_decorator import *
24
from .. import NAMESPACE
35

46

@@ -45,36 +47,27 @@ def admin_mode(self):
4547
return self._admin_mode
4648

4749
@admin_mode.setter
50+
@property_type(AdminMode)
4851
def admin_mode(self, value):
49-
if value and not hasattr(SiteItem.AdminMode, value):
50-
error = 'Invalid admin mode defined.'
51-
raise ValueError(error)
52-
else:
53-
self._admin_mode = value
52+
self._admin_mode = value
5453

5554
@property
5655
def content_url(self):
5756
return self._content_url
5857

5958
@content_url.setter
59+
@property_not_nullable
6060
def content_url(self, value):
61-
if value is None:
62-
error = 'Content URL must be defined.'
63-
raise ValueError(error)
64-
else:
65-
self._content_url = value
61+
self._content_url = value
6662

6763
@property
6864
def disable_subscriptions(self):
6965
return self._disable_subscriptions
7066

7167
@disable_subscriptions.setter
68+
@property_type_boolean
7269
def disable_subscriptions(self, value):
73-
if not isinstance(value, bool):
74-
error = 'Boolean expected for disable_subscriptions flag.'
75-
raise ValueError(error)
76-
else:
77-
self._disable_subscriptions = value
70+
self._disable_subscriptions = value
7871

7972
@property
8073
def id(self):
@@ -85,12 +78,9 @@ def name(self):
8578
return self._name
8679

8780
@name.setter
81+
@property_not_nullable
8882
def name(self, value):
89-
if not value:
90-
error = 'Name must be defined.'
91-
raise ValueError(error)
92-
else:
93-
self._name = value
83+
self._name = value
9484

9585
@property
9686
def num_users(self):
@@ -101,24 +91,19 @@ def revision_history_enabled(self):
10191
return self._revision_history_enabled
10292

10393
@revision_history_enabled.setter
94+
@property_type_boolean
10495
def revision_history_enabled(self, value):
105-
if not isinstance(value, bool):
106-
error = 'Boolean expected for revision_history_enabled flag.'
107-
raise ValueError(error)
108-
else:
109-
self._revision_history_enabled = value
96+
self._revision_history_enabled = value
11097

11198
@property
11299
def state(self):
113100
return self._state
114101

115102
@state.setter
103+
@property_not_nullable
104+
@property_type(State)
116105
def state(self, value):
117-
if not hasattr(SiteItem.State, value):
118-
error = 'Invalid state defined.'
119-
raise ValueError(error)
120-
else:
121-
self._state = value
106+
self._state = value
122107

123108
@property
124109
def status_reason(self):
@@ -133,12 +118,9 @@ def subscribe_others_enabled(self):
133118
return self._subscribe_others_enabled
134119

135120
@subscribe_others_enabled.setter
121+
@property_type_boolean
136122
def subscribe_others_enabled(self, value):
137-
if not isinstance(value, bool):
138-
error = 'Boolean expected for subscribe_others_enabled flag.'
139-
raise ValueError(error)
140-
else:
141-
self._subscribe_others_enabled = value
123+
self._subscribe_others_enabled = value
142124

143125
def is_default(self):
144126
return self.name.lower() == 'default'

tableauserverclient/models/user_item.py

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import xml.etree.ElementTree as ET
22
from .exceptions import UnpopulatedPropertyError
3+
from .property_type_decorator import *
4+
from .property_not_nullable_decorator import *
35
from .. import NAMESPACE
46

57

@@ -45,12 +47,9 @@ def auth_setting(self):
4547
return self._auth_setting
4648

4749
@auth_setting.setter
50+
@property_type(Auth)
4851
def auth_setting(self, value):
49-
if not hasattr(UserItem.Auth, value):
50-
error = 'Invalid auth setting defined.'
51-
raise ValueError(error)
52-
else:
53-
self._auth_setting = value
52+
self._auth_setting = value
5453

5554
@property
5655
def domain_name(self):
@@ -73,27 +72,19 @@ def name(self):
7372
return self._name
7473

7574
@name.setter
75+
@property_not_nullable
7676
def name(self, value):
77-
if not value:
78-
error = 'Name must be defined.'
79-
raise ValueError(error)
80-
else:
81-
self._name = value
77+
self._name = value
8278

8379
@property
8480
def site_role(self):
8581
return self._site_role
8682

8783
@site_role.setter
84+
@property_not_nullable
85+
@property_type(Roles)
8886
def site_role(self, value):
89-
if not value:
90-
error = 'Site role must be defined.'
91-
raise ValueError(error)
92-
elif not hasattr(UserItem.Roles, value):
93-
error = 'Invalid site role defined.'
94-
raise ValueError(error)
95-
else:
96-
self._site_role = value
87+
self._site_role = value
9788

9889
@property
9990
def workbooks(self):

tableauserverclient/models/workbook_item.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import xml.etree.ElementTree as ET
22
from .exceptions import UnpopulatedPropertyError
3+
from .property_not_nullable_decorator import *
4+
from property_type_decorator import *
35
from .tag_item import TagItem
46
from .view_item import ViewItem
57
from .. import NAMESPACE
@@ -59,12 +61,9 @@ def project_id(self):
5961
return self._project_id
6062

6163
@project_id.setter
64+
@property_not_nullable
6265
def project_id(self, value):
63-
if value is None:
64-
error = 'Project ID must be defined.'
65-
raise ValueError(error)
66-
else:
67-
self._project_id = value
66+
self._project_id = value
6867

6968
@property
7069
def project_name(self):
@@ -75,12 +74,9 @@ def show_tabs(self):
7574
return self._show_tabs
7675

7776
@show_tabs.setter
77+
@property_type_boolean
7878
def show_tabs(self, value):
79-
if not< 6448 /span> isinstance(value, bool):
80-
error = 'Boolean expected for show tabs flag.'
81-
raise ValueError(error)
82-
else:
83-
self._show_tabs = value
79+
self._show_tabs = value
8480

8581
@property
8682
def size(self):

0 commit comments

Comments
 (0)
0