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,462 @@
1
+ # pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101,R1710,C0415,W0613
2
+ # Smartsheet Python SDK.
3
+ #
4
+ # Copyright 2016 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, EnumeratedList, EnumeratedValue, Number, String,
21
+ Timestamp, TypedList, TypedObject, json)
22
+ from ..util import deserialize, serialize
23
+ from .attachment import Attachment
24
+ from .column import Column
25
+ from .comment import Comment
26
+ from .contact_object_value import ContactObjectValue
27
+ from .cross_sheet_reference import CrossSheetReference
28
+ from .discussion import Discussion
29
+ from .enums import AccessLevel, AttachmentType
30
+ from .project_settings import ProjectSettings
31
+ from .row import Row
32
+ from .sheet_filter import SheetFilter
33
+ from .sheet_summary import SheetSummary
34
+ from .sheet_user_permissions import SheetUserPermissions
35
+ from .sheet_user_settings import SheetUserSettings
36
+ from .source import Source
37
+
38
+
39
+ class Sheet:
40
+
41
+ """Smartsheet Sheet data model."""
42
+
43
+ def __init__(self, props=None, base_obj=None):
44
+ """Initialize the Sheet model."""
45
+ self._base = None
46
+ if base_obj is not None:
47
+ self._base = base_obj
48
+
49
+ # Workspace creates a circular import dependency
50
+ # as much as I'm not a fan of moving the import
51
+ # into the __init__, its the most pragmatic approach for this simple problem.
52
+ from .workspace import Workspace
53
+
54
+ self._access_level = EnumeratedValue(AccessLevel)
55
+ self._attachments = TypedList(Attachment)
56
+ self._columns = TypedList(Column)
57
+ self._contact_references = TypedList(ContactObjectValue)
58
+ self._created_at = Timestamp()
59
+ self._cross_sheet_references = TypedList(CrossSheetReference)
60
+ self._dependencies_enabled = Boolean()
61
+ self._discussions = TypedList(Discussion)
62
+ self._effective_attachment_options = EnumeratedList(AttachmentType)
63
+ self._favorite = Boolean()
64
+ self._filters = TypedList(SheetFilter)
65
+ self._from_id = Number()
66
+ self._gantt_enabled = Boolean()
67
+ self._has_summary_fields = Boolean()
68
+ self._id_ = Number()
69
+ self._modified_at = Timestamp()
70
+ self._name = String()
71
+ self._owner = String()
72
+ self._owner_id = Number()
73
+ self._permalink = String()
74
+ self._project_settings = TypedObject(ProjectSettings)
75
+ self._read_only = Boolean()
76
+ self._resource_management_enabled = Boolean()
77
+ self._rows = TypedList(Row)
78
+ self._show_parent_rows_for_filters = Boolean()
79
+ self._source = TypedObject(Source)
80
+ self._summary = TypedObject(SheetSummary)
81
+ self._total_row_count = Number()
82
+ self._user_permissions = TypedObject(SheetUserPermissions)
83
+ self._user_settings = TypedObject(SheetUserSettings)
84
+ self._version = Number()
85
+ self._workspace = TypedObject(Workspace)
86
+
87
+ if props:
88
+ deserialize(self, props)
89
+
90
+ # requests package Response object
91
+ self.request_response = None
92
+ self.__initialized = True
93
+
94
+ def __getattr__(self, key):
95
+ if key == "id":
96
+ return self.id_
97
+ else:
98
+ raise AttributeError(key)
99
+
100
+ def __setattr__(self, key, value):
101
+ if key == "id":
102
+ self.id_ = value
103
+ else:
104
+ super().__setattr__(key, value)
105
+
106
+ @property
107
+ def access_level(self):
108
+ return self._access_level
109
+
110
+ @access_level.setter
111
+ def access_level(self, value):
112
+ self._access_level.set(value)
113
+
114
+ @property
115
+ def attachments(self):
116
+ return self._attachments
117
+
118
+ @attachments.setter
119
+ def attachments(self, value):
120
+ self._attachments.load(value)
121
+
122
+ @property
123
+ def columns(self):
124
+ return self._columns
125
+
126
+ @columns.setter
127
+ def columns(self, value):
128
+ self._columns.load(value)
129
+
130
+ @property
131
+ def contact_references(self):
132
+ return self._contact_references
133
+
134
+ @contact_references.setter
135
+ def contact_references(self, value):
136
+ self._contact_references.load(value)
137
+
138
+ @property
139
+ def created_at(self):
140
+ return self._created_at.value
141
+
142
+ @created_at.setter
143
+ def created_at(self, value):
144
+ self._created_at.value = value
145
+
146
+ @property
147
+ def cross_sheet_references(self):
148
+ return self._cross_sheet_references
149
+
150
+ @cross_sheet_references.setter
151
+ def cross_sheet_references(self, value):
152
+ self._cross_sheet_references.load(value)
153
+
154
+ @property
155
+ def dependencies_enabled(self):
156
+ return self._dependencies_enabled.value
157
+
158
+ @dependencies_enabled.setter
159
+ def dependencies_enabled(self, value):
160
+ self._dependencies_enabled.value = value
161
+
162
+ @property
163
+ def discussions(self):
164
+ return self._discussions
165
+
166
+ @discussions.setter
167
+ def discussions(self, value):
168
+ self._discussions.load(value)
169
+
170
+ @property
171
+ def effective_attachment_options(self):
172
+ return self._effective_attachment_options
173
+
174
+ @effective_attachment_options.setter
175
+ def effective_attachment_options(self, value):
176
+ self._effective_attachment_options.load(value)
177
+
178
+ @property
179
+ def favorite(self):
180
+ return self._favorite.value
181
+
182
+ @favorite.setter
183
+ def favorite(self, value):
184
+ self._favorite.value = value
185
+
186
+ @property
187
+ def filters(self):
188
+ return self._filters
189
+
190
+ @filters.setter
191
+ def filters(self, value):
192
+ self._filters.load(value)
193
+
194
+ @property
195
+ def from_id(self):
196
+ return self._from_id.value
197
+
198
+ @from_id.setter
199
+ def from_id(self, value):
200
+ self._from_id.value = value
201
+
202
+ @property
203
+ def gantt_enabled(self):
204
+ return self._gantt_enabled.value
205
+
206
+ @gantt_enabled.setter
207
+ def gantt_enabled(self, value):
208
+ self._gantt_enabled.value = value
209
+
210
+ @property
211
+ def has_summary_fields(self):
212
+ return self._has_summary_fields.value
213
+
214
+ @has_summary_fields.setter
215
+ def has_summary_fields(self, value):
216
+ self._has_summary_fields.value = value
217
+
218
+ @property
219
+ def id_(self):
220
+ return self._id_.value
221
+
222
+ @id_.setter
223
+ def id_(self, value):
224
+ self._id_.value = value
225
+
226
+ @property
227
+ def modified_at(self):
228
+ return self._modified_at.value
229
+
230
+ @modified_at.setter
231
+ def modified_at(self, value):
232
+ self._modified_at.value = value
233
+
234
+ @property
235
+ def name(self):
236
+ return self._name.value
237
+
238
+ @name.setter
239
+ def name(self, value):
240
+ self._name.value = value
241
+
242
+ @property
243
+ def owner(self):
244
+ return self._owner.value
245
+
246
+ @owner.setter
247
+ def owner(self, value):
248
+ self._owner.value = value
249
+
250
+ @property
251
+ def owner_id(self):
252
+ return self._owner_id.value
253
+
254
+ @owner_id.setter
255
+ def owner_id(self, value):
256
+ self._owner_id.value = value
257
+
258
+ @property
259
+ def permalink(self):
260
+ return self._permalink.value
261
+
262
+ @permalink.setter
263
+ def permalink(self, value):
264
+ self._permalink.value = value
265
+
266
+ @property
267
+ def project_settings(self):
268
+ return self._project_settings.value
269
+
270
+ @project_settings.setter
271
+ def project_settings(self, value):
272
+ self._project_settings.value = value
273
+
274
+ @property
275
+ def read_only(self):
276
+ return self._read_only.value
277
+
278
+ @read_only.setter
279
+ def read_only(self, value):
280
+ self._read_only.value = value
281
+
282
+ @property
283
+ def resource_management_enabled(self):
284
+ return self._resource_management_enabled.value
285
+
286
+ @resource_management_enabled.setter
287
+ def resource_management_enabled(self, value):
288
+ self._resource_management_enabled.value = value
289
+
290
+ @property
291
+ def rows(self):
292
+ return self._rows
293
+
294
+ @rows.setter
295
+ def rows(self, value):
296
+ self._rows.load(value)
297
+
298
+ @property
299
+ def show_parent_rows_for_filters(self):
300
+ return self._show_parent_rows_for_filters.value
301
+
302
+ @show_parent_rows_for_filters.setter
303
+ def show_parent_rows_for_filters(self, value):
304
+ self._show_parent_rows_for_filters.value = value
305
+
306
+ @property
307
+ def source(self):
308
+ return self._source.value
309
+
310
+ @source.setter
311
+ def source(self, value):
312
+ self._source.value = value
313
+
314
+ @property
315
+ def summary(self):
316
+ return self._summary.value
317
+
318
+ @summary.setter
319
+ def summary(self, value):
320
+ self._summary.value = value
321
+
322
+ @property
323
+ def total_row_count(self):
324
+ return self._total_row_count.value
325
+
326
+ @total_row_count.setter
327
+ def total_row_count(self, value):
328
+ self._total_row_count.value = value
329
+
330
+ @property
331
+ def user_permissions(self):
332
+ return self._user_permissions.value
333
+
334
+ @user_permissions.setter
335
+ def user_permissions(self, value):
336
+ self._user_permissions.value = value
337
+
338
+ @property
339
+ def user_settings(self):
340
+ return self._user_settings.value
341
+
342
+ @user_settings.setter
343
+ def user_settings(self, value):
344
+ self._user_settings.value = value
345
+
346
+ @property
347
+ def version(self):
348
+ return self._version.value
349
+
350
+ @version.setter
351
+ def version(self, value):
352
+ self._version.value = value
353
+
354
+ @property
355
+ def workspace(self):
356
+ return self._workspace.value
357
+
358
+ @workspace.setter
359
+ def workspace(self, value):
360
+ self._workspace.value = value
361
+
362
+ def add_columns(self, list_of_columns):
363
+ return self._base.Sheets.add_columns(self.id, list_of_columns)
364
+
365
+ def add_rows(self, list_of_rows):
366
+ return self._base.Sheets.add_rows(self.id, list_of_rows)
367
+
368
+ def delete_column(self, column_id):
369
+ return self._base.Sheets.delete_column(self.id, column_id)
370
+
371
+ def delete_rows(self, object_ids, ignore_rows_not_found=False):
372
+ return self._base.Sheets.delete_rows(self.id, object_ids, ignore_rows_not_found)
373
+
374
+ def get_column(self, column_id, include=None):
375
+ return self._base.Sheets.get_column(self.id, column_id, include)
376
+
377
+ def get_columns(self, include=None, page_size=100, page=1, include_all=False):
378
+ return self._base.Sheets.get_columns(
379
+ self.id, include, page_size, page, include_all
380
+ )
381
+
382
+ def get_row(self, row_id, include=None, exclude=None):
383
+ return self._base.Sheets.get_row(self.id, row_id, include, exclude)
384
+
385
+ def get_version(self):
386
+ return self._base.Sheets.get_sheet_version(self.id)
387
+
388
+ def list_shares(
389
+ self,
390
+ page_size=100,
391
+ page=1,
392
+ include_all=False,
393
+ include_workspace_shares=False,
394
+ access_api_level=0,
395
+ ):
396
+ return self._base.Sheets.list_shares(
397
+ self.id,
398
+ page_size,
399
+ page,
400
+ include_all,
401
+ include_workspace_shares,
402
+ access_api_level,
403
+ )
404
+
405
+ def share(self, share_obj, send_email=False):
406
+ return self._base.Sheets.share_sheet(self.id, share_obj, send_email)
407
+
408
+ def shares(self, page_size=100, page=1, include_all=False):
409
+ return self._base.Sheets.list_shares(
410
+ self.id, page_size=100, page=1, include_all=False
411
+ )
412
+
413
+ def update_share(self, share_id, share_obj):
414
+ return self._base.Sheets.update_share(self.id, share_id, share_obj)
415
+
416
+ def get_share(self, share_id):
417
+ return self._base.Sheets.get_share(self.id, share_id)
418
+
419
+ def delete_share(self, share_id):
420
+ return self._base.Sheets.delete_share(self.id, share_id)
421
+
422
+ def update_name(self, new_name):
423
+ return self._base.Sheets.update_sheet(self.id, Sheet({"name": new_name}))
424
+
425
+ def get_publish_status(self):
426
+ return self._base.Sheets.get_publish_status(self.id)
427
+
428
+ def set_publish_status(self, sheet_publish_obj):
429
+ return self._base.Sheets.set_publish_status(self.id, sheet_publish_obj)
430
+
431
+ def create_discussion(self, title, comment, _file=None):
432
+ dis = Discussion({"title": title, "comment": Comment({"text": comment})})
433
+ if _file is not None:
434
+ return self._base.Discussions.create_discussion_on_sheet_with_attachment(
435
+ self.id, dis, _file
436
+ )
437
+ else:
438
+ return self._base.Discussions.create_discussion_on_sheet(self.id, dis)
439
+
440
+ def get_all_discussions(
441
+ self, include=None, page_size=100, page=1, include_all=False
442
+ ):
443
+ return self._base.Discussions.get_all_discussions(
444
+ self.id, include, page_size, page, include_all
445
+ )
446
+
447
+ def attach_url(self, attachment_obj):
448
+ return self._base.Attachments.attach_url_to_sheet(self.id, attachment_obj)
449
+
450
+ def get_column_by_title(self, title):
451
+ for col in self.columns:
452
+ if col.title == title:
453
+ return col
454
+
455
+ def to_dict(self):
456
+ return serialize(self)
457
+
458
+ def to_json(self):
459
+ return json.dumps(self.to_dict())
460
+
461
+ def __str__(self):
462
+ return self.to_json()
@@ -0,0 +1,81 @@
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 EnumeratedValue, TypedObject, json
21
+ from ..util import deserialize, serialize
22
+ from .email import Email
23
+ from .enums import SheetEmailFormat
24
+ from .format_details import FormatDetails
25
+
26
+
27
+ class SheetEmail(Email):
28
+
29
+ """Smartsheet SheetEmail data model."""
30
+
31
+ def __init__(self, props=None, base_obj=None):
32
+ """Initialize the SheetEmail model."""
33
+ super().__init__(None, base_obj)
34
+ self._base = None
35
+ if base_obj is not None:
36
+ self._base = base_obj
37
+
38
+ self._format_ = EnumeratedValue(SheetEmailFormat)
39
+ self._format_details = TypedObject(FormatDetails)
40
+
41
+ if props:
42
+ deserialize(self, props)
43
+
44
+ self.__initialized = True
45
+
46
+ def __getattr__(self, key):
47
+ if key == "format":
48
+ return self.format_
49
+ else:
50
+ raise AttributeError(key)
51
+
52
+ def __setattr__(self, key, value):
53
+ if key == "format":
54
+ self.format_ = value
55
+ else:
56
+ super().__setattr__(key, value)
57
+
58
+ @property
59
+ def format_(self):
60
+ return self._format_
61
+
62
+ @format_.setter
63
+ def format_(self, value):
64
+ self._format_.set(value)
65
+
66
+ @property
67
+ def format_details(self):
68
+ return self._format_details.value
69
+
70
+ @format_details.setter
71
+ def format_details(self, value):
72
+ self._format_details.value = value
73
+
74
+ def to_dict(self):
75
+ return serialize(self)
76
+
77
+ def to_json(self):
78
+ return json.dumps(self.to_dict())
79
+
80
+ def __str__(self):
81
+ return self.to_json()
@@ -0,0 +1,106 @@
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 ..types import EnumeratedValue, Number, String, TypedObject, json
21
+ from ..util import deserialize, serialize
22
+ from .enums import SheetFilterType
23
+ from .sheet_filter_details import SheetFilterDetails
24
+
25
+
26
+ class SheetFilter:
27
+
28
+ """Smartsheet SheetFilter data model."""
29
+
30
+ def __init__(self, props=None, base_obj=None):
31
+ """Initialize the SheetFilter model."""
32
+ self._base = None
33
+ if base_obj is not None:
34
+ self._base = base_obj
35
+
36
+ self._filter_type = EnumeratedValue(SheetFilterType)
37
+ self._id_ = Number()
38
+ self._name = String()
39
+ self._query = TypedObject(SheetFilterDetails)
40
+ self._version = Number()
41
+
42
+ if props:
43
+ deserialize(self, props)
44
+
45
+ self.__initialized = True
46
+
47
+ def __getattr__(self, key):
48
+ if key == "id":
49
+ return self.id_
50
+ else:
51
+ raise AttributeError(key)
52
+
53
+ def __setattr__(self, key, value):
54
+ if key == "id":
55
+ self.id_ = value
56
+ else:
57
+ super().__setattr__(key, value)
58
+
59
+ @property
60
+ def filter_type(self):
61
+ return self._filter_type
62
+
63
+ @filter_type.setter
64
+ def filter_type(self, value):
65
+ self._filter_type.set(value)
66
+
67
+ @property
68
+ def id_(self):
69
+ return self._id_.value
70
+
71
+ @id_.setter
72
+ def id_(self, value):
73
+ self._id_.value = value
74
+
75
+ @property
76
+ def name(self):
77
+ return self._name.value
78
+
79
+ @name.setter
80
+ def name(self, value):
81
+ self._name.value = value
82
+
83
+ @property
84
+ def query(self):
85
+ return self._query.value
86
+
87
+ @query.setter
88
+ def query(self, value):
89
+ self._query.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
+ def to_dict(self):
100
+ return serialize(self)
101
+
102
+ def to_json(self):
103
+ return json.dumps(self.to_dict())
104
+
105
+ def __str__(self):
106
+ return self.to_json()