smartsheet-python-sdk 3.5.5__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 (195) hide show
  1. smartsheet/__init__.py +37 -0
  2. smartsheet/attachments.py +565 -0
  3. smartsheet/cells.py +164 -0
  4. smartsheet/contacts.py +78 -0
  5. smartsheet/discussions.py +411 -0
  6. smartsheet/events.py +79 -0
  7. smartsheet/exceptions.py +130 -0
  8. smartsheet/favorites.py +116 -0
  9. smartsheet/folders.py +438 -0
  10. smartsheet/groups.py +186 -0
  11. smartsheet/home.py +180 -0
  12. smartsheet/images.py +61 -0
  13. smartsheet/models/__init__.py +126 -0
  14. smartsheet/models/access_token.py +95 -0
  15. smartsheet/models/account.py +77 -0
  16. smartsheet/models/alternate_email.py +88 -0
  17. smartsheet/models/asset_share.py +165 -0
  18. smartsheet/models/asset_shares_paginated_result.py +84 -0
  19. smartsheet/models/attachment.py +181 -0
  20. smartsheet/models/auto_number_format.py +81 -0
  21. smartsheet/models/automation_action.py +162 -0
  22. smartsheet/models/automation_rule.py +164 -0
  23. smartsheet/models/boolean_object_value.py +38 -0
  24. smartsheet/models/bulk_item_failure.py +77 -0
  25. smartsheet/models/bulk_item_result.py +111 -0
  26. smartsheet/models/cell.py +193 -0
  27. smartsheet/models/cell_data_item.py +152 -0
  28. smartsheet/models/cell_history.py +67 -0
  29. smartsheet/models/cell_link.py +91 -0
  30. smartsheet/models/cell_link_widget_content.py +101 -0
  31. smartsheet/models/chart_widget_content.py +124 -0
  32. smartsheet/models/column.py +253 -0
  33. smartsheet/models/comment.py +126 -0
  34. smartsheet/models/contact.py +88 -0
  35. smartsheet/models/contact_object_value.py +59 -0
  36. smartsheet/models/container_destination.py +74 -0
  37. smartsheet/models/copy_or_move_row_destination.py +54 -0
  38. smartsheet/models/copy_or_move_row_directive.py +64 -0
  39. smartsheet/models/copy_or_move_row_result.py +67 -0
  40. smartsheet/models/criteria.py +82 -0
  41. smartsheet/models/cross_sheet_reference.py +134 -0
  42. smartsheet/models/currency.py +64 -0
  43. smartsheet/models/date_object_value.py +56 -0
  44. smartsheet/models/datetime_object_value.py +56 -0
  45. smartsheet/models/discussion.py +183 -0
  46. smartsheet/models/downloaded_file.py +106 -0
  47. smartsheet/models/duration.py +112 -0
  48. smartsheet/models/email.py +82 -0
  49. smartsheet/models/enums/__init__.py +56 -0
  50. smartsheet/models/enums/access_level.py +26 -0
  51. smartsheet/models/enums/asset_type.py +10 -0
  52. smartsheet/models/enums/attachment_parent_type.py +23 -0
  53. smartsheet/models/enums/attachment_sub_type.py +26 -0
  54. smartsheet/models/enums/attachment_type.py +29 -0
  55. smartsheet/models/enums/automation_action_frequency.py +24 -0
  56. smartsheet/models/enums/automation_action_type.py +23 -0
  57. smartsheet/models/enums/automation_rule_disabled_reason.py +27 -0
  58. smartsheet/models/enums/cell_link_status.py +28 -0
  59. smartsheet/models/enums/column_type.py +31 -0
  60. smartsheet/models/enums/criteria_target.py +21 -0
  61. smartsheet/models/enums/cross_sheet_reference_status.py +28 -0
  62. smartsheet/models/enums/currency_code.py +43 -0
  63. smartsheet/models/enums/day_descriptors.py +30 -0
  64. smartsheet/models/enums/day_ordinal.py +25 -0
  65. smartsheet/models/enums/event_action.py +76 -0
  66. smartsheet/models/enums/event_obejct_type.py +34 -0
  67. smartsheet/models/enums/event_source.py +27 -0
  68. smartsheet/models/enums/global_template.py +23 -0
  69. smartsheet/models/enums/operator.py +62 -0
  70. smartsheet/models/enums/paper_type.py +29 -0
  71. smartsheet/models/enums/predecessor_type.py +24 -0
  72. smartsheet/models/enums/publish_accessible_by.py +22 -0
  73. smartsheet/models/enums/schedule_type.py +25 -0
  74. smartsheet/models/enums/seat_type.py +17 -0
  75. smartsheet/models/enums/share_scope.py +22 -0
  76. smartsheet/models/enums/share_type.py +22 -0
  77. smartsheet/models/enums/sheet_email_format.py +23 -0
  78. smartsheet/models/enums/sheet_filter_operator.py +22 -0
  79. smartsheet/models/enums/sheet_filter_type.py +23 -0
  80. smartsheet/models/enums/sort_direction.py +22 -0
  81. smartsheet/models/enums/symbol.py +45 -0
  82. smartsheet/models/enums/system_column_type.py +25 -0
  83. smartsheet/models/enums/update_request_status.py +23 -0
  84. smartsheet/models/enums/user_status.py +23 -0
  85. smartsheet/models/enums/widget_type.py +32 -0
  86. smartsheet/models/error.py +74 -0
  87. smartsheet/models/error_result.py +117 -0
  88. smartsheet/models/event.py +153 -0
  89. smartsheet/models/event_result.py +86 -0
  90. smartsheet/models/explicit_null.py +24 -0
  91. smartsheet/models/favorite.py +81 -0
  92. smartsheet/models/folder.py +177 -0
  93. smartsheet/models/font_family.py +63 -0
  94. smartsheet/models/format_details.py +55 -0
  95. smartsheet/models/format_tables.py +191 -0
  96. smartsheet/models/group.py +134 -0
  97. smartsheet/models/group_member.py +104 -0
  98. smartsheet/models/home.py +110 -0
  99. smartsheet/models/hyperlink.py +81 -0
  100. smartsheet/models/image.py +101 -0
  101. smartsheet/models/image_url.py +91 -0
  102. smartsheet/models/image_url_map.py +68 -0
  103. smartsheet/models/image_widget_content.py +117 -0
  104. smartsheet/models/index_result.py +118 -0
  105. smartsheet/models/json_object.py +59 -0
  106. smartsheet/models/multi_contact_object_value.py +49 -0
  107. smartsheet/models/multi_picklist_object_value.py +48 -0
  108. smartsheet/models/multi_row_email.py +60 -0
  109. smartsheet/models/number_object_value.py +38 -0
  110. smartsheet/models/o_auth_error.py +86 -0
  111. smartsheet/models/object_value.py +130 -0
  112. smartsheet/models/paginated_children_result.py +80 -0
  113. smartsheet/models/predecessor.py +102 -0
  114. smartsheet/models/predecessor_list.py +49 -0
  115. smartsheet/models/primitive_object_value.py +59 -0
  116. smartsheet/models/profile_image.py +72 -0
  117. smartsheet/models/project_settings.py +89 -0
  118. smartsheet/models/recipient.py +63 -0
  119. smartsheet/models/report.py +90 -0
  120. smartsheet/models/report_cell.py +59 -0
  121. smartsheet/models/report_column.py +67 -0
  122. smartsheet/models/report_publish.py +95 -0
  123. smartsheet/models/report_row.py +68 -0
  124. smartsheet/models/report_widget_content.py +78 -0
  125. smartsheet/models/result.py +105 -0
  126. smartsheet/models/row.py +336 -0
  127. smartsheet/models/row_email.py +83 -0
  128. smartsheet/models/row_mapping.py +77 -0
  129. smartsheet/models/schedule.py +140 -0
  130. smartsheet/models/scope.py +70 -0
  131. smartsheet/models/search_result.py +67 -0
  132. smartsheet/models/search_result_item.py +150 -0
  133. smartsheet/models/selection_range.py +86 -0
  134. smartsheet/models/sent_update_request.py +172 -0
  135. smartsheet/models/server_info.py +67 -0
  136. smartsheet/models/share.py +183 -0
  137. smartsheet/models/sheet.py +462 -0
  138. smartsheet/models/sheet_email.py +81 -0
  139. smartsheet/models/sheet_filter.py +106 -0
  140. smartsheet/models/sheet_filter_details.py +76 -0
  141. smartsheet/models/sheet_publish.py +184 -0
  142. smartsheet/models/sheet_summary.py +59 -0
  143. smartsheet/models/sheet_user_permissions.py +58 -0
  144. smartsheet/models/sheet_user_settings.py +72 -0
  145. smartsheet/models/shortcut_data_item.py +102 -0
  146. smartsheet/models/shortcut_widget_content.py +61 -0
  147. smartsheet/models/sight.py +175 -0
  148. smartsheet/models/sight_publish.py +77 -0
  149. smartsheet/models/sort_criterion.py +64 -0
  150. smartsheet/models/sort_specifier.py +55 -0
  151. smartsheet/models/source.py +83 -0
  152. smartsheet/models/string_object_value.py +38 -0
  153. smartsheet/models/summary_field.py +256 -0
  154. smartsheet/models/template.py +171 -0
  155. smartsheet/models/title_rich_text_widget_content.py +68 -0
  156. smartsheet/models/token_paginated_result.py +79 -0
  157. smartsheet/models/update_request.py +110 -0
  158. smartsheet/models/user.py +58 -0
  159. smartsheet/models/user_model.py +280 -0
  160. smartsheet/models/user_plan.py +77 -0
  161. smartsheet/models/user_profile.py +89 -0
  162. smartsheet/models/version.py +57 -0
  163. smartsheet/models/web_content_widget_content.py +60 -0
  164. smartsheet/models/webhook.py +219 -0
  165. smartsheet/models/webhook_secret.py +58 -0
  166. smartsheet/models/webhook_stats.py +76 -0
  167. smartsheet/models/webhook_subscope.py +50 -0
  168. smartsheet/models/widget.py +211 -0
  169. smartsheet/models/widget_content.py +52 -0
  170. smartsheet/models/widget_hyperlink.py +74 -0
  171. smartsheet/models/workspace.py +185 -0
  172. smartsheet/object_value.py +72 -0
  173. smartsheet/passthrough.py +127 -0
  174. smartsheet/reports.py +382 -0
  175. smartsheet/search.py +100 -0
  176. smartsheet/server.py +48 -0
  177. smartsheet/session.py +70 -0
  178. smartsheet/sharing.py +163 -0
  179. smartsheet/sheets.py +2062 -0
  180. smartsheet/sights.py +370 -0
  181. smartsheet/smartsheet.py +684 -0
  182. smartsheet/templates.py +87 -0
  183. smartsheet/token.py +128 -0
  184. smartsheet/types.py +323 -0
  185. smartsheet/users.py +490 -0
  186. smartsheet/util.py +199 -0
  187. smartsheet/version.py +34 -0
  188. smartsheet/webhooks.py +161 -0
  189. smartsheet/workspaces.py +647 -0
  190. smartsheet_python_sdk-3.5.5.dist-info/METADATA +120 -0
  191. smartsheet_python_sdk-3.5.5.dist-info/RECORD +195 -0
  192. smartsheet_python_sdk-3.5.5.dist-info/WHEEL +5 -0
  193. smartsheet_python_sdk-3.5.5.dist-info/licenses/LICENSE.md +201 -0
  194. smartsheet_python_sdk-3.5.5.dist-info/licenses/NOTICE +10 -0
  195. smartsheet_python_sdk-3.5.5.dist-info/top_level.txt +1 -0
@@ -0,0 +1,164 @@
1
+ # pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
2
+ # Smartsheet Python SDK.
3
+ #
4
+ # Copyright 2018 Smartsheet.com, Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License"): you may
7
+ # not use this file except in compliance with the License. You may obtain
8
+ # a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
+ # License for the specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from __future__ import absolute_import
19
+
20
+ from ..types import (Boolean, EnumeratedValue, Number, String, Timestamp,
21
+ TypedObject, json)
22
+ from ..util import deserialize, serialize
23
+ from .automation_action import AutomationAction
24
+ from .enums import AutomationRuleDisabledReason
25
+ from .user import User
26
+
27
+
28
+ class AutomationRule:
29
+
30
+ """Smartsheet AutomationRule data model."""
31
+
32
+ def __init__(self, props=None, base_obj=None):
33
+ """Initialize the AutomationRule model."""
34
+ self._base = None
35
+ if base_obj is not None:
36
+ self._base = base_obj
37
+
38
+ self._action = TypedObject(AutomationAction)
39
+ self._created_at = Timestamp()
40
+ self._created_by = TypedObject(User)
41
+ self._disabled_reason = EnumeratedValue(AutomationRuleDisabledReason)
42
+ self._disabled_reason_text = String()
43
+ self._enabled = Boolean()
44
+ self._id_ = Number()
45
+ self._modified_at = Timestamp()
46
+ self._modified_by = TypedObject(User)
47
+ self._name = String()
48
+ self._user_can_modify = Boolean()
49
+
50
+ if props:
51
+ deserialize(self, props)
52
+
53
+ # requests package Response object
54
+ self.request_response = None
55
+ self.__initialized = True
56
+
57
+ def __getattr__(self, key):
58
+ if key == "id":
59
+ return self.id_
60
+ else:
61
+ raise AttributeError(key)
62
+
63
+ def __setattr__(self, key, value):
64
+ if key == "id":
65
+ self.id_ = value
66
+ else:
67
+ super().__setattr__(key, value)
68
+
69
+ @property
70
+ def action(self):
71
+ return self._action.value
72
+
73
+ @action.setter
74
+ def action(self, value):
75
+ self._action.value = value
76
+
77
+ @property
78
+ def created_at(self):
79
+ return self._created_at.value
80
+
81
+ @created_at.setter
82
+ def created_at(self, value):
83
+ self._created_at.value = value
84
+
85
+ @property
86
+ def created_by(self):
87
+ return self._created_by.value
88
+
89
+ @created_by.setter
90
+ def created_by(self, value):
91
+ self._created_by.value = value
92
+
93
+ @property
94
+ def disabled_reason(self):
95
+ return self._disabled_reason
96
+
97
+ @disabled_reason.setter
98
+ def disabled_reason(self, value):
99
+ self._disabled_reason.set(value)
100
+
101
+ @property
102
+ def disabled_reason_text(self):
103
+ return self._disabled_reason_text.value
104
+
105
+ @disabled_reason_text.setter
106
+ def disabled_reason_text(self, value):
107
+ self._disabled_reason_text.value = value
108
+
109
+ @property
110
+ def enabled(self):
111
+ return self._enabled.value
112
+
113
+ @enabled.setter
114
+ def enabled(self, value):
115
+ self._enabled.value = value
116
+
117
+ @property
118
+ def id_(self):
119
+ return self._id_.value
120
+
121
+ @id_.setter
122
+ def id_(self, value):
123
+ self._id_.value = value
124
+
125
+ @property
126
+ def modified_at(self):
127
+ return self._modified_at.value
128
+
129
+ @modified_at.setter
130
+ def modified_at(self, value):
131
+ self._modified_at.value = value
132
+
133
+ @property
134
+ def modified_by(self):
135
+ return self._modified_by.value
136
+
137
+ @modified_by.setter
138
+ def modified_by(self, value):
139
+ self._modified_by.value = value
140
+
141
+ @property
142
+ def name(self):
143
+ return self._name.value
144
+
145
+ @name.setter
146
+ def name(self, value):
147
+ self._name.value = value
148
+
149
+ @property
150
+ def user_can_modify(self):
151
+ return self._user_can_modify.value
152
+
153
+ @user_can_modify.setter
154
+ def user_can_modify(self, value):
155
+ self._user_can_modify.value = value
156
+
157
+ def to_dict(self):
158
+ return serialize(self)
159
+
160
+ def to_json(self):
161
+ return json.dumps(self.to_dict())
162
+
163
+ def __str__(self):
164
+ return self.to_json()
@@ -0,0 +1,38 @@
1
+ # pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
2
+ # Smartsheet Python SDK.
3
+ #
4
+ # Copyright 2017 Smartsheet.com, Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License"): you may
7
+ # not use this file except in compliance with the License. You may obtain
8
+ # a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
+ # License for the specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from __future__ import absolute_import
19
+
20
+ from .object_value import BOOLEAN
21
+ from .primitive_object_value import PrimitiveObjectValue
22
+
23
+
24
+ class BooleanObjectValue(PrimitiveObjectValue):
25
+ """Smartsheet BooleanObjectValue data model."""
26
+
27
+ def __init__(self, value=None, base_obj=None):
28
+ """Initialize the BooleanObjectValue model."""
29
+ super().__init__(value, base_obj)
30
+ self._base = None
31
+ if base_obj is not None:
32
+ self._base = base_obj
33
+
34
+ self.__initialized = True
35
+
36
+ @property
37
+ def object_type(self):
38
+ return BOOLEAN
@@ -0,0 +1,77 @@
1
+ # pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101,W0613
2
+ # Smartsheet Python SDK.
3
+ #
4
+ # Copyright 2018 Smartsheet.com, Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License"): you may
7
+ # not use this file except in compliance with the License. You may obtain
8
+ # a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
+ # License for the specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from __future__ import absolute_import
19
+
20
+ from ..types import Number, TypedObject, json
21
+ from ..util import deserialize, serialize
22
+ from .error_result import ErrorResult
23
+
24
+
25
+ class BulkItemFailure:
26
+
27
+ """Smartsheet BulkItemFailure data model."""
28
+
29
+ def __init__(self, props=None, dynamic_result_type=None, base_obj=None):
30
+ """Initialize the BulkItemFailure model."""
31
+ self._base = None
32
+ if base_obj is not None:
33
+ self._base = base_obj
34
+
35
+ self._error = TypedObject(ErrorResult)
36
+ self._index = Number()
37
+ self._row_id = Number()
38
+
39
+ if props:
40
+ deserialize(self, props)
41
+
42
+ # requests package Response object
43
+ self.request_response = None
44
+ self.__initialized = True
45
+
46
+ @property
47
+ def error(self):
48
+ return self._error.value
49
+
50
+ @error.setter
51
+ def error(self, value):
52
+ self._error.value = value
53
+
54
+ @property
55
+ def index(self):
56
+ return self._index.value
57
+
58
+ @index.setter
59
+ def index(self, value):
60
+ self._index.value = value
61
+
62
+ @property
63
+ def row_id(self):
64
+ return self._row_id.value
65
+
66
+ @row_id.setter
67
+ def row_id(self, value):
68
+ self._row_id.value = value
69
+
70
+ def to_dict(self):
71
+ return serialize(self)
72
+
73
+ def to_json(self):
74
+ return json.dumps(self.to_dict())
75
+
76
+ def __str__(self):
77
+ return self.to_json()
@@ -0,0 +1,111 @@
1
+ # pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
2
+ # Smartsheet Python SDK.
3
+ #
4
+ # Copyright 2018 Smartsheet.com, Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License"): you may
7
+ # not use this file except in compliance with the License. You may obtain
8
+ # a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
+ # License for the specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from __future__ import absolute_import
19
+
20
+ from ..types import Number, String, TypedList, importlib, json
21
+ from ..util import deserialize, serialize
22
+ from .bulk_item_failure import BulkItemFailure
23
+
24
+
25
+ class BulkItemResult:
26
+
27
+ """Smartsheet BulkItemResult data model."""
28
+
29
+ def __init__(self, props=None, dynamic_result_type=None, base_obj=None):
30
+ """Initialize the BulkItemResult model."""
31
+ self._base = None
32
+ if base_obj is not None:
33
+ self._base = base_obj
34
+
35
+ self._dynamic_result_type = None
36
+ if dynamic_result_type is not None:
37
+ self._dynamic_result_type = dynamic_result_type
38
+
39
+ self._failed_items = TypedList(BulkItemFailure)
40
+ self._message = String()
41
+ self._result = TypedList(object)
42
+ self._result_code = Number()
43
+ self._version = Number()
44
+
45
+ if props:
46
+ deserialize(self, props)
47
+
48
+ self.__initialized = True
49
+
50
+ @property
51
+ def failed_items(self):
52
+ return self._failed_items
53
+
54
+ @failed_items.setter
55
+ def failed_items(self, value):
56
+ if isinstance(value, list):
57
+ self._failed_items = [BulkItemFailure(x, self._base) for x in value]
58
+ else:
59
+ self._failed_items = BulkItemFailure(value, self._base)
60
+
61
+ @property
62
+ def message(self):
63
+ return self._message.value
64
+
65
+ @message.setter
66
+ def message(self, value):
67
+ self._message.value = value
68
+
69
+ @property
70
+ def result(self):
71
+ return self._result
72
+
73
+ @result.setter
74
+ def result(self, value):
75
+ class_ = getattr(
76
+ importlib.import_module("smartsheet.models"), self._dynamic_result_type
77
+ )
78
+ if isinstance(value, list):
79
+ self._result = [class_(x, self._base) for x in value]
80
+ else:
81
+ self._result = class_(value, self._base)
82
+
83
+ @property
84
+ def result_code(self):
85
+ return self._result_code.value
86
+
87
+ @result_code.setter
88
+ def result_code(self, value):
89
+ self._result_code.value = value
90
+
91
+ @property
92
+ def version(self):
93
+ return self._version.value
94
+
95
+ @version.setter
96
+ def version(self, value):
97
+ self._version.value = value
98
+
99
+ @property
100
+ def data(self):
101
+ """Simplify difference between Result and IndexResult"""
102
+ return self._result
103
+
104
+ def to_dict(self):
105
+ return serialize(self)
106
+
107
+ def to_json(self):
108
+ return json.dumps(self.to_dict())
109
+
110
+ def __str__(self):
111
+ return self.to_json()
@@ -0,0 +1,193 @@
1
+ # pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
2
+ # Smartsheet Python SDK.
3
+ #
4
+ # Copyright 2018 Smartsheet.com, Inc.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License"): you may
7
+ # not use this file except in compliance with the License. You may obtain
8
+ # a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
+ # License for the specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ from __future__ import absolute_import
19
+
20
+ from ..object_value import assign_to_object_value
21
+ from ..types import Boolean, Number, String, TypedList, TypedObject, json, six
22
+ from ..util import deserialize, serialize
23
+ from .cell_link import CellLink
24
+ from .explicit_null import ExplicitNull
25
+ from .hyperlink import Hyperlink
26
+ from .image import Image
27
+
28
+
29
+ class Cell:
30
+
31
+ """Smartsheet Cell data model."""
32
+
33
+ def __init__(self, props=None, base_obj=None):
34
+ """Initialize the Cell model."""
35
+ self._base = None
36
+ if base_obj is not None:
37
+ self._base = base_obj
38
+
39
+ self._column_id = Number()
40
+ self._column_type = String()
41
+ self._conditional_format = String()
42
+ self._display_value = String()
43
+ self._format_ = String()
44
+ self._formula = String()
45
+ self._hyperlink = TypedObject(Hyperlink)
46
+ self._image = TypedObject(Image)
47
+ self._link_in_from_cell = TypedObject(CellLink)
48
+ self._links_out_to_cells = TypedList(CellLink)
49
+ self._object_value = None
50
+ self._override_validation = Boolean()
51
+ self._strict = Boolean()
52
+ self._value = None
53
+
54
+ if props:
55
+ deserialize(self, props)
56
+
57
+ self.__initialized = True
58
+
59
+ def __getattr__(self, key):
60
+ if key == "format":
61
+ return self.format_
62
+ else:
63
+ raise AttributeError(key)
64
+
65
+ def __setattr__(self, key, value):
66
+ if key == "format":
67
+ self.format_ = value
68
+ else:
69
+ super().__setattr__(key, value)
70
+
71
+ @property
72
+ def column_id(self):
73
+ return self._column_id.value
74
+
75
+ @column_id.setter
76
+ def column_id(self, value):
77
+ self._column_id.value = value
78
+
79
+ @property
80
+ def column_type(self):
81
+ return self._column_type.value
82
+
83
+ @column_type.setter
84
+ def column_type(self, value):
85
+ self._column_type.value = value
86
+
87
+ @property
88
+ def conditional_format(self):
89
+ return self._conditional_format.value
90
+
91
+ @conditional_format.setter
92
+ def conditional_format(self, value):
93
+ self._conditional_format.value = value
94
+
95
+ @property
96
+ def display_value(self):
97
+ return self._display_value.value
98
+
99
+ @display_value.setter
100
+ def display_value(self, value):
101
+ self._display_value.value = value
102
+
103
+ @property
104
+ def format_(self):
105
+ return self._format_.value
106
+
107
+ @format_.setter
108
+ def format_(self, value):
109
+ self._format_.value = value
110
+
111
+ @property
112
+ def formula(self):
113
+ return self._formula.value
114
+
115
+ @formula.setter
116
+ def formula(self, value):
117
+ self._formula.value = value
118
+
119
+ @property
120
+ def hyperlink(self):
121
+ return self._hyperlink.value
122
+
123
+ @hyperlink.setter
124
+ def hyperlink(self, value):
125
+ self._hyperlink.value = value
126
+
127
+ @property
128
+ def image(self):
129
+ return self._image.value
130
+
131
+ @image.setter
132
+ def image(self, value):
133
+ self._image.value = value
134
+
135
+ @property
136
+ def link_in_from_cell(self):
137
+ return self._link_in_from_cell.value
138
+
139
+ @link_in_from_cell.setter
140
+ def link_in_from_cell(self, value):
141
+ self._link_in_from_cell.value = value
142
+
143
+ @property
144
+ def links_out_to_cells(self):
145
+ return self._links_out_to_cells
146
+
147
+ @links_out_to_cells.setter
148
+ def links_out_to_cells(self, value):
149
+ self._links_out_to_cells.load(value)
150
+
151
+ @property
152
+ def object_value(self):
153
+ return self._object_value
154
+
155
+ @object_value.setter
156
+ def object_value(self, value):
157
+ self._object_value = assign_to_object_value(value)
158
+
159
+ @property
160
+ def override_validation(self):
161
+ return self._override_validation.value
162
+
163
+ @override_validation.setter
164
+ def override_validation(self, value):
165
+ self._override_validation.value = value
166
+
167
+ @property
168
+ def strict(self):
169
+ return self._strict.value
170
+
171
+ @strict.setter
172
+ def strict(self, value):
173
+ self._strict.value = value
174
+
175
+ @property
176
+ def value(self):
177
+ return self._value
178
+
179
+ @value.setter
180
+ def value(self, value):
181
+ if isinstance(
182
+ value, (six.string_types, six.integer_types, float, bool, ExplicitNull)
183
+ ):
184
+ self._value = value
185
+
186
+ def to_dict(self):
187
+ return serialize(self)
188
+
189
+ def to_json(self):
190
+ return json.dumps(self.to_dict())
191
+
192
+ def __str__(self):
193
+ return self.to_json()