smartsheet-python-sdk 3.0.4__tar.gz → 3.1.0__tar.gz

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 (259) hide show
  1. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/.github/ISSUE_TEMPLATE/bug_report.md +1 -0
  2. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/.github/ISSUE_TEMPLATE/feature_request.md +6 -0
  3. smartsheet-python-sdk-3.1.0/.github/pull_request_template.md +43 -0
  4. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/.github/workflows/publish-distribution.yaml +3 -3
  5. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/.github/workflows/publish-documentation.yaml +3 -3
  6. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/.github/workflows/test-build.yaml +19 -11
  7. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/.gitignore +1 -0
  8. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/ADVANCED.md +3 -3
  9. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/CHANGELOG.md +32 -1
  10. smartsheet-python-sdk-3.1.0/CONTRIBUTING.md +63 -0
  11. {smartsheet-python-sdk-3.0.4/smartsheet_python_sdk.egg-info → smartsheet-python-sdk-3.1.0}/PKG-INFO +1 -1
  12. smartsheet-python-sdk-3.1.0/pylintrc +14 -0
  13. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/setup.py +1 -1
  14. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/cells.py +1 -0
  15. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/folders.py +62 -0
  16. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/home.py +6 -0
  17. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/__init__.py +2 -0
  18. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/datetime_object_value.py +2 -2
  19. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/folder.py +29 -1
  20. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/index_result.py +10 -1
  21. smartsheet-python-sdk-3.1.0/smartsheet/models/paginated_children_result.py +80 -0
  22. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/source.py +1 -1
  23. smartsheet-python-sdk-3.1.0/smartsheet/models/token_paginated_result.py +68 -0
  24. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/workspace.py +29 -1
  25. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/reports.py +1 -0
  26. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/sheets.py +2 -0
  27. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/smartsheet.py +19 -3
  28. smartsheet-python-sdk-3.1.0/smartsheet/version.py +4 -0
  29. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/workspaces.py +125 -11
  30. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0/smartsheet_python_sdk.egg-info}/PKG-INFO +1 -1
  31. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet_python_sdk.egg-info/SOURCES.txt +6 -0
  32. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_folders.py +49 -0
  33. smartsheet-python-sdk-3.1.0/tests/integration/test_workspaces.py +271 -0
  34. smartsheet-python-sdk-3.1.0/tests/mock_api/test_mock_api_folders.py +184 -0
  35. smartsheet-python-sdk-3.1.0/tests/mock_api/test_mock_api_workspaces.py +241 -0
  36. smartsheet-python-sdk-3.0.4/pylintrc +0 -14
  37. smartsheet-python-sdk-3.0.4/smartsheet/version.py +0 -16
  38. smartsheet-python-sdk-3.0.4/tests/integration/test_workspaces.py +0 -154
  39. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/.gitchangelog.rc +0 -0
  40. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/.gitchangelog.tpl +0 -0
  41. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/.markdownlint.json +0 -0
  42. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/LICENSE.md +0 -0
  43. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/Makefile +0 -0
  44. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/NOTICE +0 -0
  45. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/README.md +0 -0
  46. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/docs-source/Makefile +0 -0
  47. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/docs-source/conf.py +0 -0
  48. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/docs-source/index.rst +0 -0
  49. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/setup.cfg +0 -0
  50. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/__init__.py +0 -0
  51. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/attachments.py +0 -0
  52. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/contacts.py +0 -0
  53. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/discussions.py +0 -0
  54. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/events.py +0 -0
  55. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/exceptions.py +0 -0
  56. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/favorites.py +0 -0
  57. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/groups.py +0 -0
  58. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/images.py +0 -0
  59. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/access_token.py +0 -0
  60. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/account.py +0 -0
  61. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/alternate_email.py +0 -0
  62. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/attachment.py +0 -0
  63. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/auto_number_format.py +0 -0
  64. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/automation_action.py +0 -0
  65. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/automation_rule.py +0 -0
  66. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/boolean_object_value.py +0 -0
  67. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/bulk_item_failure.py +0 -0
  68. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/bulk_item_result.py +0 -0
  69. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/cell.py +0 -0
  70. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/cell_data_item.py +0 -0
  71. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/cell_history.py +0 -0
  72. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/cell_link.py +0 -0
  73. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/cell_link_widget_content.py +0 -0
  74. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/chart_widget_content.py +0 -0
  75. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/column.py +0 -0
  76. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/comment.py +0 -0
  77. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/contact.py +0 -0
  78. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/contact_object_value.py +0 -0
  79. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/container_destination.py +0 -0
  80. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/copy_or_move_row_destination.py +0 -0
  81. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/copy_or_move_row_directive.py +0 -0
  82. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/copy_or_move_row_result.py +0 -0
  83. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/criteria.py +0 -0
  84. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/cross_sheet_reference.py +0 -0
  85. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/currency.py +0 -0
  86. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/date_object_value.py +0 -0
  87. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/discussion.py +0 -0
  88. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/downloaded_file.py +0 -0
  89. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/duration.py +0 -0
  90. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/email.py +0 -0
  91. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/__init__.py +0 -0
  92. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/access_level.py +0 -0
  93. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/attachment_parent_type.py +0 -0
  94. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/attachment_sub_type.py +0 -0
  95. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/attachment_type.py +0 -0
  96. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/automation_action_frequency.py +0 -0
  97. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/automation_action_type.py +0 -0
  98. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/automation_rule_disabled_reason.py +0 -0
  99. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/cell_link_status.py +0 -0
  100. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/column_type.py +0 -0
  101. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/criteria_target.py +0 -0
  102. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/cross_sheet_reference_status.py +0 -0
  103. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/currency_code.py +0 -0
  104. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/day_descriptors.py +0 -0
  105. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/day_ordinal.py +0 -0
  106. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/event_action.py +0 -0
  107. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/event_obejct_type.py +0 -0
  108. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/event_source.py +0 -0
  109. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/global_template.py +0 -0
  110. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/operator.py +0 -0
  111. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/paper_type.py +0 -0
  112. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/predecessor_type.py +0 -0
  113. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/publish_accessible_by.py +0 -0
  114. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/schedule_type.py +0 -0
  115. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/share_scope.py +0 -0
  116. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/share_type.py +0 -0
  117. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/sheet_email_format.py +0 -0
  118. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/sheet_filter_operator.py +0 -0
  119. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/sheet_filter_type.py +0 -0
  120. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/sort_direction.py +0 -0
  121. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/symbol.py +0 -0
  122. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/system_column_type.py +0 -0
  123. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/update_request_status.py +0 -0
  124. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/user_status.py +0 -0
  125. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/enums/widget_type.py +0 -0
  126. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/error.py +0 -0
  127. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/error_result.py +0 -0
  128. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/event.py +0 -0
  129. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/event_result.py +0 -0
  130. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/explicit_null.py +0 -0
  131. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/favorite.py +0 -0
  132. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/font_family.py +0 -0
  133. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/format_details.py +0 -0
  134. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/format_tables.py +0 -0
  135. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/group.py +0 -0
  136. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/group_member.py +0 -0
  137. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/home.py +0 -0
  138. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/hyperlink.py +0 -0
  139. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/image.py +0 -0
  140. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/image_url.py +0 -0
  141. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/image_url_map.py +0 -0
  142. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/image_widget_content.py +0 -0
  143. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/json_object.py +0 -0
  144. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/multi_contact_object_value.py +0 -0
  145. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/multi_picklist_object_value.py +0 -0
  146. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/multi_row_email.py +0 -0
  147. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/number_object_value.py +0 -0
  148. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/o_auth_error.py +0 -0
  149. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/object_value.py +0 -0
  150. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/predecessor.py +0 -0
  151. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/predecessor_list.py +0 -0
  152. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/primitive_object_value.py +0 -0
  153. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/profile_image.py +0 -0
  154. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/project_settings.py +0 -0
  155. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/recipient.py +0 -0
  156. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/report.py +0 -0
  157. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/report_cell.py +0 -0
  158. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/report_column.py +0 -0
  159. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/report_publish.py +0 -0
  160. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/report_row.py +0 -0
  161. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/report_widget_content.py +0 -0
  162. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/result.py +0 -0
  163. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/row.py +0 -0
  164. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/row_email.py +0 -0
  165. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/row_mapping.py +0 -0
  166. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/schedule.py +0 -0
  167. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/scope.py +0 -0
  168. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/search_result.py +0 -0
  169. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/search_result_item.py +0 -0
  170. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/selection_range.py +0 -0
  171. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/sent_update_request.py +0 -0
  172. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/server_info.py +0 -0
  173. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/share.py +0 -0
  174. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/sheet.py +0 -0
  175. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/sheet_email.py +0 -0
  176. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/sheet_filter.py +0 -0
  177. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/sheet_filter_details.py +0 -0
  178. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/sheet_publish.py +0 -0
  179. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/sheet_summary.py +0 -0
  180. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/sheet_user_permissions.py +0 -0
  181. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/sheet_user_settings.py +0 -0
  182. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/shortcut_data_item.py +0 -0
  183. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/shortcut_widget_content.py +0 -0
  184. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/sight.py +0 -0
  185. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/sight_publish.py +0 -0
  186. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/sort_criterion.py +0 -0
  187. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/sort_specifier.py +0 -0
  188. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/string_object_value.py +0 -0
  189. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/summary_field.py +0 -0
  190. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/template.py +0 -0
  191. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/title_rich_text_widget_content.py +0 -0
  192. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/update_request.py +0 -0
  193. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/user.py +0 -0
  194. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/user_model.py +0 -0
  195. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/user_profile.py +0 -0
  196. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/version.py +0 -0
  197. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/web_content_widget_content.py +0 -0
  198. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/webhook.py +0 -0
  199. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/webhook_secret.py +0 -0
  200. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/webhook_stats.py +0 -0
  201. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/webhook_subscope.py +0 -0
  202. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/widget.py +0 -0
  203. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/widget_content.py +0 -0
  204. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/models/widget_hyperlink.py +0 -0
  205. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/object_value.py +0 -0
  206. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/passthrough.py +0 -0
  207. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/search.py +0 -0
  208. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/server.py +0 -0
  209. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/session.py +0 -0
  210. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/sights.py +0 -0
  211. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/templates.py +0 -0
  212. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/token.py +0 -0
  213. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/types.py +0 -0
  214. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/users.py +0 -0
  215. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/util.py +0 -0
  216. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet/webhooks.py +0 -0
  217. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet_python_sdk.egg-info/dependency_links.txt +0 -0
  218. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet_python_sdk.egg-info/requires.txt +0 -0
  219. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/smartsheet_python_sdk.egg-info/top_level.txt +0 -0
  220. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/README.md +0 -0
  221. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/conftest.py +0 -0
  222. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/fixtures/calling_all_curs.txt +0 -0
  223. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/fixtures/curly.jpg +0 -0
  224. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/fixtures/moe-curly.jpg +0 -0
  225. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/fixtures/quote.txt +0 -0
  226. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/fixtures/stooges_v1.jpg +0 -0
  227. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/fixtures/stooges_v2.jpg +0 -0
  228. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_attachments.py +0 -0
  229. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_columns.py +0 -0
  230. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_contacts.py +0 -0
  231. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_cross_sheet_references.py +0 -0
  232. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_discussions.py +0 -0
  233. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_events.py +0 -0
  234. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_favorites.py +0 -0
  235. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_groups.py +0 -0
  236. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_home.py +0 -0
  237. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_model_attributes.py +0 -0
  238. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_multi_picklist.py +0 -0
  239. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_object_value.py +0 -0
  240. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_passthrough.py +0 -0
  241. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_regression.py +0 -0
  242. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_reports.py +0 -0
  243. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_rows.py +0 -0
  244. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_server_info.py +0 -0
  245. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_sheet_summary.py +0 -0
  246. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_sheets.py +0 -0
  247. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_templates.py +0 -0
  248. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_update_requests.py +0 -0
  249. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_users.py +0 -0
  250. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_webhooks.py +0 -0
  251. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/integration/test_zsearch.py +0 -0
  252. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/mock_api/mock_api_test_helper.py +0 -0
  253. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/mock_api/test_mock_api_automation_rules.py +0 -0
  254. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/mock_api/test_mock_api_columns.py +0 -0
  255. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/mock_api/test_mock_api_rows.py +0 -0
  256. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/mock_api/test_mock_api_sheets.py +0 -0
  257. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/mock_api/test_mock_api_sights.py +0 -0
  258. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/mock_api/test_mock_change_agent.py +0 -0
  259. {smartsheet-python-sdk-3.0.4 → smartsheet-python-sdk-3.1.0}/tests/mock_api/test_mock_serialization.py +0 -0
@@ -27,5 +27,6 @@ If applicable, add screenshots to help explain your problem.
27
27
 
28
28
  **Environment (please complete the following information):**
29
29
  - OS: [e.g. Windows 10]
30
+ - Smartsheet API Version [e.g. 2.0]
30
31
  - Smartsheet Python SDK Version [e.g. 3.0.0]
31
32
  - Python Version [e.g. 3.10]
@@ -15,3 +15,9 @@ A clear and concise description of what you want to happen.
15
15
 
16
16
  **Additional context**
17
17
  Add any other context or screenshots about the feature request here.
18
+
19
+ **Environment (please complete the following information):**
20
+ - OS: [e.g. Windows 10]
21
+ - Smartsheet API Version [e.g. 2.0]
22
+ - Smartsheet Python SDK Version [e.g. 3.0.0]
23
+ - Python Version [e.g. 3.10]
@@ -0,0 +1,43 @@
1
+ # Pull Request
2
+
3
+ ## Description
4
+ <!-- Provide a brief description of the changes in this PR -->
5
+
6
+ ## Related Issue
7
+ <!-- Link to the related issue (if applicable) -->
8
+
9
+ ## Type of Change
10
+ <!-- Check the relevant option by putting an x in the brackets -->
11
+ - [ ] Bug fix
12
+ - [ ] New feature
13
+ - [ ] Documentation update
14
+ - [ ] Code refactoring
15
+ - [ ] Other (please describe):
16
+
17
+ ## Environment Information
18
+ <!-- Please complete the following information -->
19
+ - Smartsheet API Version: [e.g. 2.0]
20
+ - Smartsheet Python SDK Version: [e.g. 3.0.0]
21
+ - Python Version: [e.g. 3.10]
22
+
23
+ ## What Changes Were Made
24
+ <!-- Describe the changes you've made in detail -->
25
+
26
+ ## Why These Changes Were Made
27
+ <!-- Explain the reasoning behind these changes -->
28
+
29
+ ## Testing
30
+ <!-- Describe the testing you've done to validate your changes -->
31
+
32
+ ## Checklist
33
+ <!-- Check all that apply -->
34
+ - [ ] My code follows the [style guidelines](../../../CONTRIBUTING.md#code-style-and-quality) of this project
35
+ - [ ] I have performed a self-review of my own code
36
+ - [ ] I have commented my code, particularly in hard-to-understand areas
37
+ - [ ] I have made corresponding changes to the documentation
38
+ - [ ] My changes generate no new warnings
39
+ - [ ] I have added tests that prove my fix is effective or that my feature works
40
+ - [ ] New and existing unit tests pass locally with my changes
41
+
42
+ ## Additional Notes
43
+ <!-- Add any other context about the PR here -->
@@ -9,19 +9,19 @@ jobs:
9
9
  runs-on: ubuntu-latest
10
10
 
11
11
  steps:
12
- - uses: actions/checkout@v3
12
+ - uses: actions/checkout@v4
13
13
  - name: Set up Python 3.10
14
14
  uses: actions/setup-python@v4
15
15
  with:
16
16
  python-version: '3.10'
17
17
  - name: Install build packages
18
18
  run: |
19
- pip install enum34 requests six python-dateutil setuptools-scm gitchangelog mako wheel twine sphinx sphinx_rtd_theme
19
+ pip install enum34 requests six python-dateutil setuptools-scm==7.1.0 gitchangelog mako wheel twine sphinx sphinx_rtd_theme
20
20
  - name: Build distribution
21
21
  run: |
22
22
  python setup.py sdist bdist_wheel
23
23
  - name: Archive distribution artifacts
24
- uses: actions/upload-artifact@v3
24
+ uses: actions/upload-artifact@v4
25
25
  with:
26
26
  name: distribution
27
27
  path: dist
@@ -9,14 +9,14 @@ jobs:
9
9
  runs-on: ubuntu-latest
10
10
 
11
11
  steps:
12
- - uses: actions/checkout@v3
12
+ - uses: actions/checkout@v4
13
13
  - name: Set up Python 3.10
14
14
  uses: actions/setup-python@v4
15
15
  with:
16
16
  python-version: '3.10'
17
17
  - name: Install build packages
18
18
  run: |
19
- pip install enum34 requests six python-dateutil setuptools-scm gitchangelog mako wheel twine sphinx sphinx_rtd_theme
19
+ pip install enum34 requests six python-dateutil setuptools-scm==7.1.0 gitchangelog mako wheel twine sphinx sphinx_rtd_theme
20
20
  - name: Generate documentation
21
21
  run: |
22
22
  sphinx-apidoc -o docs-source smartsheet
@@ -40,4 +40,4 @@ jobs:
40
40
  steps:
41
41
  - name: Deploy to GitHub Pages
42
42
  id: deployment
43
- uses: actions/deploy-pages@v1
43
+ uses: actions/deploy-pages@v4
@@ -6,7 +6,7 @@ jobs:
6
6
  lint:
7
7
  runs-on: ubuntu-latest
8
8
  steps:
9
- - uses: actions/checkout@v3
9
+ - uses: actions/checkout@v4
10
10
  - name: Set up Python
11
11
  uses: actions/setup-python@v4
12
12
  with:
@@ -24,17 +24,27 @@ jobs:
24
24
 
25
25
  mock-api-test:
26
26
  needs: lint
27
- runs-on: ubuntu-latest
27
+ runs-on: ${{ matrix.os }}
28
28
  strategy:
29
29
  matrix:
30
30
  python-version: ["3.7", "3.8", "3.9", "3.10"]
31
+ include:
32
+ - python-version: "3.7"
33
+ os: ubuntu-22.04
34
+ - python-version: "3.8"
35
+ os: ubuntu-latest
36
+ - python-version: "3.9"
37
+ os: ubuntu-latest
38
+ - python-version: "3.10"
39
+ os: ubuntu-latest
31
40
 
32
41
  steps:
33
- - uses: actions/checkout@v3
42
+ - uses: actions/checkout@v4
34
43
  - name: Set up Python ${{ matrix.python-version }}
35
44
  uses: actions/setup-python@v4
36
45
  with:
37
46
  python-version: ${{ matrix.python-version }}
47
+ os: ${{ matrix.os }}
38
48
  - name: Install Python dependencies
39
49
  run: |
40
50
  python -m pip install --upgrade pip
@@ -65,19 +75,17 @@ jobs:
65
75
  runs-on: ubuntu-latest
66
76
  needs: [mock-api-test]
67
77
  steps:
68
- - uses: actions/checkout@v3
69
- - name: Set up Python ${{ matrix.python-version }}
78
+ - uses: actions/checkout@v4
79
+ - name: Set up Python
70
80
  uses: actions/setup-python@v4
71
- with:
72
- python-version: ${{ matrix.python-version }}
73
81
  - name: Install build packages
74
82
  run: |
75
- pip install enum34 requests six python-dateutil setuptools-scm gitchangelog mako wheel twine
83
+ pip install enum34 requests six python-dateutil setuptools-scm==7.1.0 gitchangelog mako wheel twine
76
84
  - name: Build distribution
77
85
  run: |
78
86
  python setup.py sdist bdist_wheel
79
87
  - name: Archive distribution artifacts
80
- uses: actions/upload-artifact@v3
88
+ uses: actions/upload-artifact@v4
81
89
  with:
82
90
  name: distribution
83
91
  path: dist
@@ -87,7 +95,7 @@ jobs:
87
95
  runs-on: ubuntu-latest
88
96
  needs: [build-packages-test]
89
97
  steps:
90
- - uses: actions/checkout@v3
98
+ - uses: actions/checkout@v4
91
99
  - name: Install documentation tools
92
100
  run: |
93
101
  pip install sphinx sphinx_rtd_theme setuptools-scm
@@ -96,7 +104,7 @@ jobs:
96
104
  - name: Generate HTML
97
105
  run: sphinx-build -b html -d docs-source/_build/doctrees docs-source/. docs-source/_build/html
98
106
  - name: Upload artifacts
99
- uses: actions/upload-artifact@v3
107
+ uses: actions/upload-artifact@v4
100
108
  with:
101
109
  name: html-docs
102
110
  path: docs/build/html/
@@ -1,6 +1,7 @@
1
1
  .sw[op]
2
2
  .*.sw[op]
3
3
  *.pyc
4
+ *.iml
4
5
 
5
6
  # Ignore setup.py artifacts
6
7
  build/
@@ -80,7 +80,7 @@ response = client.Passthrough.post('/sheets', payload)
80
80
 
81
81
  ### Integration Tests
82
82
 
83
- 1. Follow the instructions [here](tests/integration/README.md)
83
+ 1. Follow the [Integration test instructions](tests/integration/README.md)
84
84
  2. Run `pytest tests/integration`
85
85
 
86
86
  ### Mock API Tests
@@ -134,7 +134,7 @@ using the same `stream_position` value until the next list of events is retrieve
134
134
  Many events have additional information available as a part of the event. That information can be accessed using
135
135
  the Python dictionary stored in the `additional_details` property (Note that values of the `additional_details`
136
136
  dictionary use camelCase/JSON names, e.g. `sheetName` not `sheet_name`). Information about the additional details
137
- provided can be found [here.](https://smartsheet.redoc.ly/tag/eventsDescription)
137
+ provided can be found on the [Events Description](https://smartsheet.redoc.ly/tag/eventsDescription) page of the API Documentation.
138
138
 
139
139
  ```python
140
140
  # this example is looking specifically for new sheet events
@@ -157,7 +157,7 @@ last_week = datetime.now() - timedelta(days=7)
157
157
  events_list = smartsheet_client.Events.list_events(since=last_week.isoformat(), max_count=1000)
158
158
  print_new_sheet_events_in_list(events_list)
159
159
 
160
- # continue listing events in the stream by using the stream_position, if the previous response indicates that more
160
+ # continue listing events in the stream by using the stream_position, if the previous response indicates that more
161
161
  # data is available.
162
162
  while events_list.more_available:
163
163
  events_list = smartsheet_client.Events.list_events(stream_position=events_list.next_stream_position, max_count=10000,
@@ -5,6 +5,37 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6
6
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.1.0] - 2025-08-28
9
+
10
+ ### Added
11
+
12
+ - New `get_workspace_metadata()` method to get workspace metadata without children
13
+ - New `get_workspace_children()` method to get workspace children with filtering and pagination support
14
+ - New `get_folder_metadata()` method to get folder metadata without children
15
+ - New `get_folder_children()` method to get folder children with filtering and pagination support
16
+ - New `TokenPaginatedResult<T>` generic model for type-safe paginated API responses
17
+ - New `PaginatedChildrenResult` model with custom deserialization for mixed children types based on resourceType
18
+ - Updated `list_workspaces()` method to support Token-based pagination . Use the new `pagination_type='token'` parameter with `last_key` and `max_items` for more efficient pagination. When `pagination_type='token'` is used, the method returns a `Result` object containing `data` and `lastKey`.
19
+
20
+ ### Deprecated
21
+
22
+ - `get_workspace()` - Use `get_workspace_metadata()` and `get_workspace_children()` instead
23
+ - `list_folders()` in Workspaces - Use `get_workspace_children()` with `children_resource_types=['folders']` instead
24
+ - `get_folder()` - Use `get_folder_metadata()` and `get_folder_children()` instead
25
+ - `list_folders()` in Folders - Use `get_folder_children()` with `children_resource_types=['folders']` instead
26
+ - `create_folder()` in Home
27
+ - `create_sheet()` in Home
28
+ - `create_sheet_from_template()` in Home
29
+ - `list_all_contents()` in Home
30
+ - `list_folders()` in Home
31
+ - `page_size`, `page`, and `include_all` parameters in `list_workspaces()` method are now deprecated. Use `pagination_type='token'` with `max_items` and `last_key` instead. Deprecated parameters will issue `DeprecationWarning` when used.
32
+
33
+ ## [3.0.5] - 2025-04-07
34
+
35
+ ### Changed
36
+
37
+ - Fallback filename for `DownloadedFile` when `Content-Disposition` header is missing.
38
+
8
39
  ## [3.0.4] - 2024-07-29
9
40
 
10
41
  ### Changed
@@ -247,7 +278,7 @@ if sheet.access_level == 'OWNER':
247
278
  ...
248
279
  ```
249
280
 
250
- [enum34](https://pypi.python.org/pypi/enum34) has been added as a required package for the SDK
281
+ [enum34](https://pypi.python.org/pypi/enum34) has been added as a required package for the SDK
251
282
 
252
283
  ## [1.3.0] - 2018-02-21
253
284
 
@@ -0,0 +1,63 @@
1
+ # Contributing to Smartsheet Python SDK
2
+
3
+ ## Did you find a bug?
4
+
5
+ - **Send all security related bugs to our maintainer email, <sdk-python@smartsheet.com>**.
6
+
7
+ - **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/smartsheet/smartsheet-python-sdk/issues).
8
+
9
+ - If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/smartsheet/smartsheet-python-sdk/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **[MRE code sample](https://stackoverflow.com/help/minimal-reproducible-example)** or an **executable test case** demonstrating the expected behavior that is not occurring. If possible please also note if this issue concerns the API itself or just the Python SDK.
10
+
11
+ ## Did you write a patch that fixes a bug?
12
+
13
+ - Open a new GitHub pull request with the patch.
14
+
15
+ - Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
16
+
17
+ - A maintainer should review your PR within the next few days. If the PR has been dormant for more than a week, consider sending an email to <sdk-python@smartsheet.com>
18
+
19
+ ## Did you fix whitespace, format code, or make a purely cosmetic patch?
20
+
21
+ Changes that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability may take longer to review, but are still welcome.
22
+
23
+ ## Do you intend to add a new feature or change an existing one?
24
+
25
+ - Suggest your change as an issue with the label #enhancement. Make sure that your new feature description outlines why this would be helpful for users, and how difficult a change it would be to make.
26
+
27
+ ## Code Style and Quality
28
+
29
+ - Follow [PEP 8](https://www.python.org/dev/peps/pep-0008/) style guidelines for Python code.
30
+
31
+ - Use meaningful variable and function names that clearly describe their purpose.
32
+
33
+ - Include docstrings for all public modules, functions, classes, and methods following [PEP 257](https://www.python.org/dev/peps/pep-0257/) conventions.
34
+
35
+ - Run pylint on your code before submitting a PR. The project includes a pylintrc file with project-specific settings.
36
+
37
+ - Write unit tests for new features and bug fixes. All tests should pass before submitting a PR.
38
+
39
+ ## Running Tests
40
+
41
+ - To run the test suite, use the following command:
42
+
43
+ ```bash
44
+ python -m pytest tests/
45
+ ```
46
+
47
+ - For integration tests, you'll need to set up your Smartsheet API access token as an environment variable:
48
+
49
+ ```bash
50
+ export SMARTSHEET_ACCESS_TOKEN=your_token_here
51
+ ```
52
+
53
+ ## Do you have questions about the source code or using the SDK?
54
+
55
+ - For general information on the API and its uses, see the [Smartsheet API Reference](https://smartsheet.redoc.ly/)
56
+
57
+ - For information on the Python SDK, see the [Smartsheet Python SDK Documentation](https://github.com/smartsheet/smartsheet-python-sdk#readme) or review the [basic](https://github.com/smartsheet/smartsheet-python-sdk#readme) and [advanced](https://github.com/smartsheet/smartsheet-python-sdk/blob/master/ADVANCED.md) READMEs!
58
+
59
+ - Github issues can also be used for questions on using the Python SDK specifically.
60
+
61
+ Thanks!
62
+
63
+ Smartsheet Python SDK Team
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: smartsheet-python-sdk
3
- Version: 3.0.4
3
+ Version: 3.1.0
4
4
  Summary: Library that uses Python to connect to Smartsheet services (using API 2.0).
5
5
  Home-page: http://smartsheet-platform.github.io/api-docs/
6
6
  Author: Smartsheet
@@ -0,0 +1,14 @@
1
+ [MASTER]
2
+ jobs=0
3
+
4
+ [MESSAGES CONTROL]
5
+ disable=missing-docstring,too-many-arguments,too-many-positional-arguments,locally-disabled,too-few-public-methods,too-many-public-methods,duplicate-code,too-many-instance-attributes,too-many-lines,no-else-return,unused-private-member,cyclic-import,unused-import,import-outside-toplevel,consider-using-with
6
+
7
+ [REPORTS]
8
+ output-format=colorized
9
+
10
+ [BASIC]
11
+ include-naming-hint=yes
12
+
13
+ [FORMAT]
14
+ max-line-length=160
@@ -63,7 +63,7 @@ setup(
63
63
  use_scm_version={
64
64
  'write_to': 'smartsheet/version.py'
65
65
  },
66
- setup_requires=['setuptools_scm'],
66
+ setup_requires=['setuptools_scm==7.0.1'],
67
67
  install_requires=REQUIRES,
68
68
  packages=find_packages(),
69
69
  include_package_data=True,
@@ -55,6 +55,7 @@ class Cells:
55
55
  page (int): Which page to return.
56
56
  include_all (bool): If true, include all results
57
57
  (i.e. do not paginate).
58
+ level (int): compatibility level
58
59
 
59
60
  Returns:
60
61
  IndexResult
@@ -22,6 +22,7 @@ import os.path
22
22
 
23
23
  from . import fresh_operation
24
24
  from .models.folder import Folder
25
+ from .util import deprecated
25
26
 
26
27
 
27
28
  class Folders:
@@ -173,9 +174,13 @@ class Folders:
173
174
 
174
175
  return response
175
176
 
177
+ @deprecated
176
178
  def get_folder(self, folder_id, include=None):
177
179
  """Get the specified Folder (and list its contents).
178
180
 
181
+ Deprecated: 3.1.0
182
+ Use `get_folder_metadata` and `get_folder_children` instead.
183
+
179
184
  Args:
180
185
  folder_id (int): Folder ID
181
186
  include (list[str]): A comma-separated list of
@@ -196,9 +201,13 @@ class Folders:
196
201
 
197
202
  return response
198
203
 
204
+ @deprecated
199
205
  def list_folders(self, folder_id, page_size=None, page=None, include_all=None):
200
206
  """Get a list of top-level child Folders within the specified Folder.
201
207
 
208
+ Deprecated: 3.1.0
209
+ Use `get_folder_children` with children_resource_types=['folders'] instead.
210
+
202
211
  Args:
203
212
  folder_id (int): Folder ID
204
213
  page_size (int): The maximum number of items to
@@ -272,6 +281,59 @@ class Folders:
272
281
 
273
282
  return response
274
283
 
284
+ def get_folder_metadata(self, folder_id, include=None):
285
+ """Get the metadata of a folder.
286
+
287
+ Args:
288
+ folder_id (int): Folder ID
289
+ include (list[str]): A list of optional elements to include
290
+ in the response. Valid list values: source.
291
+
292
+ Returns:
293
+ Folder
294
+ """
295
+ _op = fresh_operation("get_folder_metadata")
296
+ _op["method"] = "GET"
297
+ _op["path"] = "/folders/" + str(folder_id) + "/metadata"
298
+ _op["query_params"]["include"] = include
299
+
300
+ expected = "Folder"
301
+ prepped_request = self._base.prepare_request(_op)
302
+ response = self._base.request(prepped_request, expected, _op)
303
+
304
+ return response
305
+
306
+ def get_folder_children(self, folder_id, children_resource_types=None, include=None, last_key=None, max_items=None):
307
+ """Get the children of a folder.
308
+
309
+ Args:
310
+ folder_id (int): Folder ID
311
+ children_resource_types (list[str]): The types of the children resources.
312
+ If not provided, returns children of all types.
313
+ Valid list values: sheets, reports, sights, folders.
314
+ include (list[str]): A list of optional elements to include in the
315
+ response. Valid list values: source, ownerInfo.
316
+ last_key (str): The token from a previous request that will allow this one
317
+ to fetch the next page of results.
318
+ max_items (int): The maximum number of items to return in the response.
319
+
320
+ Returns:
321
+ PaginatedChildrenResult
322
+ """
323
+ _op = fresh_operation("get_folder_children")
324
+ _op["method"] = "GET"
325
+ _op["path"] = "/folders/" + str(folder_id) + "/children"
326
+ _op["query_params"]["childrenResourceTypes"] = children_resource_types
327
+ _op["query_params"]["include"] = include
328
+ _op["query_params"]["lastKey"] = last_key
329
+ _op["query_params"]["maxItems"] = max_items
330
+
331
+ expected = "PaginatedChildrenResult"
332
+ prepped_request = self._base.prepare_request(_op)
333
+ response = self._base.request(prepped_request, expected, _op)
334
+
335
+ return response
336
+
275
337
  def import_csv_sheet(
276
338
  self,
277
339
  folder_id,
@@ -22,6 +22,7 @@ import logging
22
22
  from . import fresh_operation
23
23
  from .models.folder import Folder
24
24
  from .models.sheet import Sheet
25
+ from .util import deprecated
25
26
 
26
27
 
27
28
  class Home:
@@ -33,6 +34,7 @@ class Home:
33
34
  self._base = smartsheet_obj
34
35
  self._log = logging.getLogger(__name__)
35
36
 
37
+ @deprecated
36
38
  def create_folder(self, folder_obj):
37
39
  """Creates a Folder in the user's Sheets folder (Home).
38
40
 
@@ -57,6 +59,7 @@ class Home:
57
59
 
58
60
  return response
59
61
 
62
+ @deprecated
60
63
  def create_sheet(self, sheet_obj):
61
64
  """Create a Sheet from scratch in the user's Sheets folder within
62
65
  Home.
@@ -82,6 +85,7 @@ class Home:
82
85
 
83
86
  return response
84
87
 
88
+ @deprecated
85
89
  def create_sheet_from_template(self, sheet_obj, include=None):
86
90
  """Create a Sheet in the Sheets folder from the specified Template.
87
91
 
@@ -118,6 +122,7 @@ class Home:
118
122
 
119
123
  return response
120
124
 
125
+ @deprecated
121
126
  def list_all_contents(self, include=None, exclude=None):
122
127
  """Get a nested list of all Home objects, including Sheets,
123
128
  Workspaces, Folders, Reports and Templates.
@@ -145,6 +150,7 @@ class Home:
145
150
 
146
151
  return response
147
152
 
153
+ @deprecated
148
154
  def list_folders(self, page_size=None, page=None, include_all=None):
149
155
  """Gets a list of top-level child Folders within the user's Sheets
150
156
  folder.
@@ -73,6 +73,8 @@ from .multi_row_email import MultiRowEmail
73
73
  from .number_object_value import NumberObjectValue
74
74
  from .o_auth_error import OAuthError
75
75
  from .object_value import ObjectValue
76
+ from .paginated_children_result import PaginatedChildrenResult
77
+ from .token_paginated_result import TokenPaginatedResult
76
78
  from .predecessor import Predecessor
77
79
  from .predecessor_list import PredecessorList
78
80
  from .project_settings import ProjectSettings
@@ -26,10 +26,10 @@ from .object_value import ObjectValue, six
26
26
 
27
27
 
28
28
  class DatetimeObjectValue(ObjectValue):
29
- """Smartsheet DateObjectValue data model."""
29
+ """Smartsheet DatetimeObjectValue data model."""
30
30
 
31
31
  def __init__(self, props=None, object_type=None, base_obj=None):
32
- """Initialize the DateObjectValue model."""
32
+ """Initialize the DatetimeObjectValue model."""
33
33
  super().__init__(object_type, base_obj)
34
34
  self._base = None
35
35
  if base_obj is not None:
@@ -17,11 +17,12 @@
17
17
 
18
18
  from __future__ import absolute_import
19
19
 
20
- from ..types import Boolean, Number, String, TypedList, json
20
+ from ..types import Boolean, Number, String, Timestamp, TypedList, TypedObject, json
21
21
  from ..util import deserialize, serialize
22
22
  from .report import Report
23
23
  from .sheet import Sheet
24
24
  from .sight import Sight
25
+ from .source import Source
25
26
  from .template import Template
26
27
 
27
28
 
@@ -35,14 +36,17 @@ class Folder:
35
36
  if base_obj is not None:
36
37
  self._base = base_obj
37
38
 
39
+ self._created_at = Timestamp()
38
40
  self._favorite = Boolean()
39
41
  self._folders = TypedList(Folder)
40
42
  self._id_ = Number()
43
+ self._modified_at = Timestamp()
41
44
  self._name = String()
42
45
  self._permalink = String()
43
46
  self._reports = TypedList(Report)
44
47
  self._sheets = TypedList(Sheet)
45
48
  self._sights = TypedList(Sight)
49
+ self._source = TypedObject(Source)
46
50
  self._templates = TypedList(Template)
47
51
 
48
52
  if props:
@@ -64,6 +68,14 @@ class Folder:
64
68
  else:
65
69
  super().__setattr__(key, value)
66
70
 
71
+ @property
72
+ def created_at(self):
73
+ return self._created_at.value
74
+
75
+ @created_at.setter
76
+ def created_at(self, value):
77
+ self._created_at.value = value
78
+
67
79
  @property
68
80
  def favorite(self):
69
81
  return self._favorite.value
@@ -88,6 +100,14 @@ class Folder:
88
100
  def id_(self, value):
89
101
  self._id_.value = value
90
102
 
103
+ @property
104
+ def modified_at(self):
105
+ return self._modified_at.value
106
+
107
+ @modified_at.setter
108
+ def modified_at(self, value):
109
+ self._modified_at.value = value
110
+
91
111
  @property
92
112
  def name(self):
93
113
  return self._name.value
@@ -128,6 +148,14 @@ class Folder:
128
148
  def sights(self, value):
129
149
  self._sights.load(value)
130
150
 
151
+ @property
152
+ def source(self):
153
+ return self._source.value
154
+
155
+ @source.setter
156
+ def source(self, value):
157
+ self._source.value = value
158
+
131
159
  @property
132
160
  def templates(self):
133
161
  return self._templates
@@ -17,7 +17,7 @@
17
17
 
18
18
  from __future__ import absolute_import
19
19
 
20
- from ..types import Number, TypedList, importlib, json
20
+ from ..types import Number, TypedList, importlib, json, String
21
21
  from ..util import deserialize, serialize
22
22
 
23
23
 
@@ -40,6 +40,7 @@ class IndexResult:
40
40
  self._page_size = Number()
41
41
  self._total_count = Number()
42
42
  self._total_pages = Number()
43
+ self._last_key = String()
43
44
 
44
45
  if props:
45
46
  deserialize(self, props)
@@ -94,6 +95,14 @@ class IndexResult:
94
95
  def total_pages(self, value):
95
96
  self._total_pages.value = value
96
97
 
98
+ @property
99
+ def last_key(self):
100
+ return self._last_key.value
101
+
102
+ @last_key.setter
103
+ def last_key(self, value):
104
+ self._last_key.value = value
105
+
97
106
  @property
98
107
  def result(self):
99
108
  """Simplify difference between Result and IndexResult"""