smartsheet-python-sdk 3.7.1__tar.gz → 3.8.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 (250) hide show
  1. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/CHANGELOG.md +15 -0
  2. {smartsheet_python_sdk-3.7.1/smartsheet_python_sdk.egg-info → smartsheet_python_sdk-3.8.0}/PKG-INFO +1 -1
  3. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/favorites.py +32 -8
  4. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/__init__.py +1 -0
  5. smartsheet_python_sdk-3.8.0/smartsheet/models/enums/favorite_type.py +26 -0
  6. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/favorite.py +18 -0
  7. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/sights.py +64 -11
  8. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/smartsheet.py +2 -0
  9. smartsheet_python_sdk-3.8.0/smartsheet/version.py +24 -0
  10. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0/smartsheet_python_sdk.egg-info}/PKG-INFO +1 -1
  11. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet_python_sdk.egg-info/SOURCES.txt +4 -0
  12. smartsheet_python_sdk-3.8.0/tests/mock_api/favorites/__init__.py +1 -0
  13. smartsheet_python_sdk-3.8.0/tests/mock_api/favorites/common_test_constants.py +7 -0
  14. smartsheet_python_sdk-3.8.0/tests/mock_api/favorites/test_is_favorite.py +93 -0
  15. smartsheet_python_sdk-3.7.1/smartsheet/version.py +0 -34
  16. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/.gitchangelog.rc +0 -0
  17. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/.gitchangelog.tpl +0 -0
  18. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  19. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  20. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/.github/pull_request_template.md +0 -0
  21. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/.github/workflows/publish-distribution.yaml +0 -0
  22. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/.github/workflows/publish-documentation.yaml +0 -0
  23. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/.github/workflows/test-build.yaml +0 -0
  24. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/.gitignore +0 -0
  25. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/.markdownlint.json +0 -0
  26. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/.roo/roomotes.yml +0 -0
  27. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/ADVANCED.md +0 -0
  28. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/CONTRIBUTING.md +0 -0
  29. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/ISSUE-FIRST.md +0 -0
  30. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/LICENSE.md +0 -0
  31. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/Makefile +0 -0
  32. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/NOTICE +0 -0
  33. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/README.md +0 -0
  34. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/docs-source/Makefile +0 -0
  35. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/docs-source/conf.py +0 -0
  36. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/docs-source/index.rst +0 -0
  37. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/docs-source/smartsheet_api.rst +0 -0
  38. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/docs-source/smartsheet_enums.rst +0 -0
  39. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/docs-source/smartsheet_exceptions.rst +0 -0
  40. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/docs-source/smartsheet_models.rst +0 -0
  41. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/docs-source/smartsheet_types.rst +0 -0
  42. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/pyproject.toml +0 -0
  43. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/setup.cfg +0 -0
  44. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/__init__.py +0 -0
  45. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/attachments.py +0 -0
  46. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/cells.py +0 -0
  47. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/contacts.py +0 -0
  48. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/discussions.py +0 -0
  49. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/events.py +0 -0
  50. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/exceptions.py +0 -0
  51. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/folders.py +0 -0
  52. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/groups.py +0 -0
  53. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/home.py +0 -0
  54. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/images.py +0 -0
  55. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/__init__.py +0 -0
  56. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/access_token.py +0 -0
  57. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/account.py +0 -0
  58. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/alternate_email.py +0 -0
  59. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/asset_share.py +0 -0
  60. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/asset_shares_paginated_result.py +0 -0
  61. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/attachment.py +0 -0
  62. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/auto_number_format.py +0 -0
  63. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/automation_action.py +0 -0
  64. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/automation_rule.py +0 -0
  65. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/boolean_object_value.py +0 -0
  66. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/bulk_item_failure.py +0 -0
  67. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/bulk_item_result.py +0 -0
  68. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/cell.py +0 -0
  69. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/cell_data_item.py +0 -0
  70. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/cell_history.py +0 -0
  71. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/cell_link.py +0 -0
  72. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/cell_link_widget_content.py +0 -0
  73. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/chart_widget_content.py +0 -0
  74. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/column.py +0 -0
  75. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/comment.py +0 -0
  76. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/contact.py +0 -0
  77. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/contact_object_value.py +0 -0
  78. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/container_destination.py +0 -0
  79. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/copy_or_move_row_destination.py +0 -0
  80. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/copy_or_move_row_directive.py +0 -0
  81. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/copy_or_move_row_result.py +0 -0
  82. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/criteria.py +0 -0
  83. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/cross_sheet_reference.py +0 -0
  84. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/currency.py +0 -0
  85. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/date_object_value.py +0 -0
  86. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/datetime_object_value.py +0 -0
  87. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/discussion.py +0 -0
  88. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/downloaded_file.py +0 -0
  89. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/duration.py +0 -0
  90. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/email.py +0 -0
  91. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/access_level.py +0 -0
  92. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/asset_type.py +0 -0
  93. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/attachment_parent_type.py +0 -0
  94. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/attachment_sub_type.py +0 -0
  95. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/attachment_type.py +0 -0
  96. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/automation_action_frequency.py +0 -0
  97. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/automation_action_type.py +0 -0
  98. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/automation_rule_disabled_reason.py +0 -0
  99. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/cell_link_status.py +0 -0
  100. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/column_type.py +0 -0
  101. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/criteria_target.py +0 -0
  102. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/cross_sheet_reference_status.py +0 -0
  103. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/currency_code.py +0 -0
  104. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/day_descriptors.py +0 -0
  105. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/day_ordinal.py +0 -0
  106. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/event_action.py +0 -0
  107. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/event_object_type.py +0 -0
  108. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/event_source.py +0 -0
  109. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/global_template.py +0 -0
  110. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/operator.py +0 -0
  111. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/paper_type.py +0 -0
  112. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/predecessor_type.py +0 -0
  113. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/publish_accessible_by.py +0 -0
  114. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/schedule_type.py +0 -0
  115. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/seat_type.py +0 -0
  116. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/share_scope.py +0 -0
  117. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/share_type.py +0 -0
  118. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/sheet_email_format.py +0 -0
  119. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/sheet_filter_operator.py +0 -0
  120. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/sheet_filter_type.py +0 -0
  121. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/sort_direction.py +0 -0
  122. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/symbol.py +0 -0
  123. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/system_column_type.py +0 -0
  124. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/update_request_status.py +0 -0
  125. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/user_status.py +0 -0
  126. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/enums/widget_type.py +0 -0
  127. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/error.py +0 -0
  128. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/error_result.py +0 -0
  129. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/event.py +0 -0
  130. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/event_result.py +0 -0
  131. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/explicit_null.py +0 -0
  132. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/folder.py +0 -0
  133. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/font_family.py +0 -0
  134. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/format_details.py +0 -0
  135. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/format_tables.py +0 -0
  136. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/group.py +0 -0
  137. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/group_member.py +0 -0
  138. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/home.py +0 -0
  139. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/hyperlink.py +0 -0
  140. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/image.py +0 -0
  141. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/image_url.py +0 -0
  142. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/image_url_map.py +0 -0
  143. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/image_widget_content.py +0 -0
  144. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/index_result.py +0 -0
  145. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/json_object.py +0 -0
  146. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/multi_contact_object_value.py +0 -0
  147. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/multi_picklist_object_value.py +0 -0
  148. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/multi_row_email.py +0 -0
  149. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/number_object_value.py +0 -0
  150. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/o_auth_error.py +0 -0
  151. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/object_value.py +0 -0
  152. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/paginated_children_result.py +0 -0
  153. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/predecessor.py +0 -0
  154. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/predecessor_list.py +0 -0
  155. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/primitive_object_value.py +0 -0
  156. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/profile_image.py +0 -0
  157. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/project_settings.py +0 -0
  158. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/recipient.py +0 -0
  159. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/report.py +0 -0
  160. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/report_cell.py +0 -0
  161. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/report_column.py +0 -0
  162. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/report_publish.py +0 -0
  163. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/report_row.py +0 -0
  164. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/report_widget_content.py +0 -0
  165. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/result.py +0 -0
  166. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/row.py +0 -0
  167. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/row_email.py +0 -0
  168. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/row_mapping.py +0 -0
  169. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/schedule.py +0 -0
  170. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/scope.py +0 -0
  171. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/search_result.py +0 -0
  172. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/search_result_item.py +0 -0
  173. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/selection_range.py +0 -0
  174. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/sent_update_request.py +0 -0
  175. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/server_info.py +0 -0
  176. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/share.py +0 -0
  177. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/sheet.py +0 -0
  178. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/sheet_email.py +0 -0
  179. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/sheet_filter.py +0 -0
  180. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/sheet_filter_details.py +0 -0
  181. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/sheet_publish.py +0 -0
  182. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/sheet_summary.py +0 -0
  183. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/sheet_user_permissions.py +0 -0
  184. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/sheet_user_settings.py +0 -0
  185. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/shortcut_data_item.py +0 -0
  186. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/shortcut_widget_content.py +0 -0
  187. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/sight.py +0 -0
  188. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/sight_publish.py +0 -0
  189. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/sort_criterion.py +0 -0
  190. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/sort_specifier.py +0 -0
  191. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/source.py +0 -0
  192. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/string_object_value.py +0 -0
  193. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/summary_field.py +0 -0
  194. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/template.py +0 -0
  195. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/title_rich_text_widget_content.py +0 -0
  196. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/token_paginated_result.py +0 -0
  197. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/update_request.py +0 -0
  198. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/user.py +0 -0
  199. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/user_model.py +0 -0
  200. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/user_plan.py +0 -0
  201. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/user_profile.py +0 -0
  202. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/version.py +0 -0
  203. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/web_content_widget_content.py +0 -0
  204. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/webhook.py +0 -0
  205. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/webhook_secret.py +0 -0
  206. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/webhook_stats.py +0 -0
  207. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/webhook_subscope.py +0 -0
  208. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/widget.py +0 -0
  209. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/widget_content.py +0 -0
  210. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/widget_hyperlink.py +0 -0
  211. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/models/workspace.py +0 -0
  212. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/object_value.py +0 -0
  213. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/passthrough.py +0 -0
  214. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/reports.py +0 -0
  215. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/search.py +0 -0
  216. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/server.py +0 -0
  217. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/session.py +0 -0
  218. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/sharing.py +0 -0
  219. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/sheets.py +0 -0
  220. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/templates.py +0 -0
  221. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/token.py +0 -0
  222. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/types.py +0 -0
  223. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/users.py +0 -0
  224. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/util.py +0 -0
  225. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/webhooks.py +0 -0
  226. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet/workspaces.py +0 -0
  227. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet_python_sdk.egg-info/dependency_links.txt +0 -0
  228. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet_python_sdk.egg-info/requires.txt +0 -0
  229. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/smartsheet_python_sdk.egg-info/top_level.txt +0 -0
  230. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/__init__.py +0 -0
  231. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/__init__.py +0 -0
  232. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/mock_api_test_helper.py +0 -0
  233. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/test_mock_api_automation_rules.py +0 -0
  234. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/test_mock_api_columns.py +0 -0
  235. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/test_mock_api_folders.py +0 -0
  236. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/test_mock_api_rows.py +0 -0
  237. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/test_mock_api_sharing.py +0 -0
  238. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/test_mock_api_sheets.py +0 -0
  239. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/test_mock_api_sights.py +0 -0
  240. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/test_mock_api_workspaces.py +0 -0
  241. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/test_mock_change_agent.py +0 -0
  242. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/test_mock_serialization.py +0 -0
  243. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/users/common_test_constants.py +0 -0
  244. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/users/test_deactivate_user.py +0 -0
  245. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/users/test_list_user_plans.py +0 -0
  246. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/users/test_list_users.py +0 -0
  247. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/users/test_reactivate_user.py +0 -0
  248. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/users/test_remove_user_from_plan.py +0 -0
  249. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/mock_api/users/test_user_upgrade_downgrade.py +0 -0
  250. {smartsheet_python_sdk-3.7.1 → smartsheet_python_sdk-3.8.0}/tests/test_util_serialize_dict.py +0 -0
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
7
7
 
8
8
  ## [x.x.x] - Unreleased
9
9
 
10
+ ## [3.8.0] - 2026-04-17
11
+
12
+ ### Added
13
+
14
+ - Added support for the GET /2.0/favorites/{favoriteType}/{favoriteId} endpoint
15
+ - Added directId and name fields to the Favorite model
16
+ - Added FavoriteType enum
17
+ - WireMock integration tests for contract testing for GET /2.0/favorites/{favoriteType}/{favoriteId} endpoint
18
+
19
+ ## [3.7.2] - 2026-01-29
20
+
21
+ ### Added
22
+
23
+ - Add `Cells` class to `Smartsheet` class for IDE autocomplete support. Now auto-complete like `smart.Cells.get_cell_history()` and `smart.Cells.add_image_to_cell()` will work.
24
+
10
25
  ## [3.7.1] - 2025-12-12
11
26
 
12
27
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smartsheet-python-sdk
3
- Version: 3.7.1
3
+ Version: 3.8.0
4
4
  Summary: Library that uses Python to connect to Smartsheet services (using API 2.0).
5
5
  License-Expression: Apache-2.0
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -23,6 +23,7 @@ import logging
23
23
 
24
24
  from .util import fresh_operation
25
25
  from .models import Error, Favorite, IndexResult, Result
26
+ from .models.enums import FavoriteType
26
27
 
27
28
 
28
29
  class Favorites:
@@ -92,25 +93,21 @@ class Favorites:
92
93
 
93
94
  return response
94
95
 
95
- def remove_favorites(self, favorite_type, object_ids) -> Union[Result[None], Error]:
96
+ def remove_favorites(self, favorite_type: FavoriteType, object_ids: list[int]) -> Union[Result[None], Error]:
96
97
  """Delete one or more of Favorite objects of the specified type.
97
98
 
98
- Specify a favorite type of: folder, report, sheet,
99
- template, workspace. The object IDs passed in will be deleted in a
100
- batch operation.
101
-
102
99
  Args:
103
- favorite_type (str): Name of favorite type to
104
- manipulate.
100
+ favorite_type FavoriteType: The favorite type enum value.
105
101
  object_ids (list[int]): a comma-separated list
106
102
  of object IDs representing the items to work on.
107
103
 
108
104
  Returns:
109
105
  Union[Result[None], Error]: The result of the operation, or an Error object if the request fails.
110
106
  """
107
+
111
108
  _op = fresh_operation("remove_favorites")
112
109
  _op["method"] = "DELETE"
113
- _op["path"] = "/favorites/" + str(favorite_type)
110
+ _op["path"] = "/favorites/" + favorite_type
114
111
  _op["query_params"]["objectIds"] = object_ids
115
112
 
116
113
  expected = ["Result", None]
@@ -118,3 +115,30 @@ class Favorites:
118
115
  response = self._base.request(prepped_request, expected, _op)
119
116
 
120
117
  return response
118
+
119
+ def is_favorite(self, favorite_type: FavoriteType, favorite_id: int, include=None) -> Union[Favorite, Error]:
120
+ """Check whether an item has been tagged as a favorite for the current user.
121
+
122
+ Args:
123
+ favorite_type FavoriteType: The favorite type enum value.
124
+ favorite_id (int): ID of the favorite being accessed.
125
+ include (str): A comma-separated list of optional elements to
126
+ include in the response. Valid values: "directId", "name".
127
+
128
+ Returns:
129
+ Union[Favorite, Error]: The Favorite object if the item is favorited,
130
+ or an Error object if the request fails or the item is not favorited.
131
+ """
132
+
133
+ _op = fresh_operation("is_favorite")
134
+ _op["method"] = "GET"
135
+ _op["path"] = "/favorites/" + favorite_type + "/" + str(favorite_id)
136
+ if include is not None:
137
+ _op["query_params"]["include"] = include
138
+
139
+ expected = "Favorite"
140
+
141
+ prepped_request = self._base.prepare_request(_op)
142
+ response = self._base.request(prepped_request, expected, _op)
143
+
144
+ return response
@@ -36,6 +36,7 @@ from .day_ordinal import DayOrdinal
36
36
  from .event_action import EventAction
37
37
  from .event_object_type import EventObjectType
38
38
  from .event_source import EventSource
39
+ from .favorite_type import FavoriteType
39
40
  from .global_template import GlobalTemplate
40
41
  from .operator import Operator
41
42
  from .paper_type import PaperType
@@ -0,0 +1,26 @@
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
+ from enum import Enum
18
+
19
+
20
+ class FavoriteType(str, Enum):
21
+ FOLDER = "folder"
22
+ REPORT = "report"
23
+ SHEET = "sheet"
24
+ SIGHT = "sight"
25
+ TEMPLATE = "template"
26
+ WORKSPACE = "workspace"
@@ -37,6 +37,8 @@ class Favorite:
37
37
 
38
38
  self._object_id = Number()
39
39
  self._type_ = String(accept=self.allowed_values["_type"])
40
+ self._direct_id = String()
41
+ self._name = String()
40
42
 
41
43
  if props:
42
44
  deserialize(self, props)
@@ -71,6 +73,22 @@ class Favorite:
71
73
  def type_(self, value):
72
74
  self._type_.value = value
73
75
 
76
+ @property
77
+ def direct_id(self):
78
+ return self._direct_id.value
79
+
80
+ @direct_id.setter
81
+ def direct_id(self, value):
82
+ self._direct_id.value = value
83
+
84
+ @property
85
+ def name(self):
86
+ return self._name.value
87
+
88
+ @name.setter
89
+ def name(self, value):
90
+ self._name.value = value
91
+
74
92
  def to_dict(self):
75
93
  return serialize(self)
76
94
 
@@ -16,8 +16,9 @@
16
16
  # under the License.
17
17
 
18
18
  import logging
19
+ import warnings
19
20
  from datetime import datetime
20
- from typing import Union
21
+ from typing import Optional, Union
21
22
 
22
23
  from .util import fresh_operation
23
24
  from .models import Error, IndexResult, Result, Share, Sight, SightPublish
@@ -33,28 +34,80 @@ class Sights:
33
34
  self._log = logging.getLogger(__name__)
34
35
 
35
36
  def list_sights(
36
- self, page_size=None, page=None, include_all=None, modified_since=None
37
+ self,
38
+ page_size: Optional[int] = None,
39
+ page: Optional[int] = None,
40
+ include_all: Optional[bool] = None,
41
+ last_key: Optional[str] = None,
42
+ max_items: Optional[int] = None,
43
+ pagination_type: Optional[str] = None,
44
+ modified_since: Optional[datetime] = None
37
45
  ) -> Union[IndexResult[Sight], Error]:
38
46
  """Get the list of all Sights the User has access to, in alphabetical
39
47
  order, by name.
40
48
 
41
49
  Args:
42
- page_size (int): The maximum number of items to
43
- return per page.
44
- page (int): Which page to return.
45
- include_all (bool): If true, include all results
46
- (i.e. do not paginate).
47
- modified_since(datetime): return sights modified since datetime
50
+ page_size (int, optional): [DEPRECATED] The maximum number of items to
51
+ return per page. Use pagination_type='token' with max_items instead.
52
+ page (int, optional): [DEPRECATED] Which page to return.
53
+ Use pagination_type='token' with last_key instead.
54
+ include_all (bool, optional): [DEPRECATED] If true, include all results
55
+ (i.e. do not paginate). Use pagination_type='token' instead.
56
+ last_key (str, optional): Pagination cursor for next page (token pagination only).
57
+ max_items (int, optional): Maximum items per page (token pagination only).
58
+ Must be a positive integer.
59
+ pagination_type (str, optional): Use 'token' for efficient cursor-based pagination.
60
+ Defaults to legacy offset-based pagination if not specified.
61
+ modified_since (datetime, optional): Return sights modified since datetime.
48
62
 
49
63
  Returns:
50
64
  Union[IndexResult[Sight], Error]: The result of the operation, or an Error object if the request fails.
65
+ When using legacy pagination, contains paginated results with
66
+ total_count, total_pages, etc.
67
+
68
+ Raises:
69
+ ValueError: If pagination_type is not 'token' or None, or if max_items <= 0
70
+ when using token pagination.
51
71
  """
72
+ # Parameter validation
73
+ if pagination_type is not None and pagination_type not in ['token']:
74
+ raise ValueError("pagination_type must be 'token' or None")
75
+ if pagination_type == 'token' and max_items is not None and max_items <= 0:
76
+ raise ValueError("max_items must be a positive integer")
77
+
52
78
  _op = fresh_operation("list_sights")
53
79
  _op["method"] = "GET"
54
80
  _op["path"] = "/sights"
55
- _op["query_params"]["pageSize"] = page_size
56
- _op["query_params"]["page"] = page
57
- _op["query_params"]["includeAll"] = include_all
81
+
82
+ # Issue deprecation warnings for old parameters when used
83
+ if page_size is not None:
84
+ warnings.warn(
85
+ "page_size parameter is deprecated. Use pagination_type='token' with max_items instead.",
86
+ DeprecationWarning,
87
+ stacklevel=2
88
+ )
89
+ if page is not None:
90
+ warnings.warn(
91
+ "page parameter is deprecated. Use pagination_type='token' with last_key instead.",
92
+ DeprecationWarning,
93
+ stacklevel=2
94
+ )
95
+ if include_all is not None:
96
+ warnings.warn(
97
+ "include_all parameter is deprecated. Use pagination_type='token' instead.",
98
+ DeprecationWarning,
99
+ stacklevel=2
100
+ )
101
+
102
+ if pagination_type == "token":
103
+ _op["query_params"]["lastKey"] = last_key
104
+ _op["query_params"]["maxItems"] = max_items
105
+ _op["query_params"]["paginationType"] = pagination_type
106
+ else:
107
+ _op["query_params"]["pageSize"] = page_size
108
+ _op["query_params"]["page"] = page
109
+ _op["query_params"]["includeAll"] = include_all
110
+
58
111
  if isinstance(modified_since, datetime):
59
112
  _op["query_params"]["modifiedSince"] = modified_since.isoformat()
60
113
 
@@ -38,6 +38,7 @@ from .session import pinned_session
38
38
  from .util import is_multipart, serialize
39
39
 
40
40
  from .attachments import Attachments
41
+ from .cells import Cells
41
42
  from .contacts import Contacts
42
43
  from .discussions import Discussions
43
44
  from .events import Events
@@ -119,6 +120,7 @@ class Smartsheet:
119
120
  """Use this to make requests to the Smartsheet API."""
120
121
 
121
122
  Attachments: Attachments
123
+ Cells: Cells
122
124
  Contacts: Contacts
123
125
  Discussions: Discussions
124
126
  Events: Events
@@ -0,0 +1,24 @@
1
+ # file generated by vcs-versioning
2
+ # don't change, don't track in version control
3
+ from __future__ import annotations
4
+
5
+ __all__ = [
6
+ "__version__",
7
+ "__version_tuple__",
8
+ "version",
9
+ "version_tuple",
10
+ "__commit_id__",
11
+ "commit_id",
12
+ ]
13
+
14
+ version: str
15
+ __version__: str
16
+ __version_tuple__: tuple[int | str, ...]
17
+ version_tuple: tuple[int | str, ...]
18
+ commit_id: str | None
19
+ __commit_id__: str | None
20
+
21
+ __version__ = version = '3.8.0'
22
+ __version_tuple__ = version_tuple = (3, 8, 0)
23
+
24
+ __commit_id__ = commit_id = 'g6bceafe0e'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smartsheet-python-sdk
3
- Version: 3.7.1
3
+ Version: 3.8.0
4
4
  Summary: Library that uses Python to connect to Smartsheet services (using API 2.0).
5
5
  License-Expression: Apache-2.0
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -197,6 +197,7 @@ smartsheet/models/enums/day_ordinal.py
197
197
  smartsheet/models/enums/event_action.py
198
198
  smartsheet/models/enums/event_object_type.py
199
199
  smartsheet/models/enums/event_source.py
200
+ smartsheet/models/enums/favorite_type.py
200
201
  smartsheet/models/enums/global_template.py
201
202
  smartsheet/models/enums/operator.py
202
203
  smartsheet/models/enums/paper_type.py
@@ -234,6 +235,9 @@ tests/mock_api/test_mock_api_sights.py
234
235
  tests/mock_api/test_mock_api_workspaces.py
235
236
  tests/mock_api/test_mock_change_agent.py
236
237
  tests/mock_api/test_mock_serialization.py
238
+ tests/mock_api/favorites/__init__.py
239
+ tests/mock_api/favorites/common_test_constants.py
240
+ tests/mock_api/favorites/test_is_favorite.py
237
241
  tests/mock_api/users/common_test_constants.py
238
242
  tests/mock_api/users/test_deactivate_user.py
239
243
  tests/mock_api/users/test_list_user_plans.py
@@ -0,0 +1 @@
1
+ # Test module for favorites
@@ -0,0 +1,7 @@
1
+ from smartsheet.models.enums import FavoriteType
2
+
3
+ TEST_FAVORITE_ID = 1234567890123456
4
+ TEST_OBJECT_ID = 1234567890123456
5
+ TEST_FAVORITE_TYPE = FavoriteType.SHEET
6
+ TEST_DIRECT_ID = "pxjX72pQ9Cj8vPqHchrh7xMFqFG7RM5jJJ3MFJM1"
7
+ TEST_OBJECT_NAME = "Test Sheet"
@@ -0,0 +1,93 @@
1
+ import json
2
+ import uuid
3
+ from urllib.parse import urlparse, parse_qs
4
+
5
+ from smartsheet.models import Error
6
+ from tests.mock_api.favorites.common_test_constants import TEST_FAVORITE_ID, TEST_OBJECT_ID, TEST_FAVORITE_TYPE, TEST_DIRECT_ID, TEST_OBJECT_NAME
7
+ from tests.mock_api.mock_api_test_helper import (
8
+ get_mock_api_client,
9
+ get_wiremock_request,
10
+ )
11
+
12
+
13
+ def test_is_favorite_generated_url_is_correct():
14
+ request_id = uuid.uuid4().hex
15
+ client = get_mock_api_client(
16
+ "/favorites/is-favorite/all-response-body-properties", request_id
17
+ )
18
+
19
+ client.Favorites.is_favorite(
20
+ favorite_type=TEST_FAVORITE_TYPE,
21
+ favorite_id=TEST_FAVORITE_ID,
22
+ include="directId,name"
23
+ )
24
+
25
+ wiremock_request = get_wiremock_request(request_id)
26
+ url = urlparse(wiremock_request["absoluteUrl"])
27
+ query = parse_qs(url.query)
28
+ assert query == {
29
+ "include": ["directId,name"]
30
+ }
31
+ assert url.path == f'/2.0/favorites/{TEST_FAVORITE_TYPE.value}/{TEST_FAVORITE_ID}'
32
+
33
+ def test_is_favorite_all_response_properties():
34
+ request_id = uuid.uuid4().hex
35
+ client = get_mock_api_client(
36
+ "/favorites/is-favorite/all-response-body-properties", request_id
37
+ )
38
+
39
+ response = client.Favorites.is_favorite(
40
+ favorite_type=TEST_FAVORITE_TYPE,
41
+ favorite_id=TEST_FAVORITE_ID,
42
+ )
43
+
44
+ assert response.to_dict() == {
45
+ "objectId": TEST_OBJECT_ID,
46
+ "type": TEST_FAVORITE_TYPE,
47
+ "directId": TEST_DIRECT_ID,
48
+ "name": TEST_OBJECT_NAME
49
+ }
50
+
51
+ def test_is_favorite_required_response_properties():
52
+ request_id = uuid.uuid4().hex
53
+ client = get_mock_api_client(
54
+ "/favorites/is-favorite/required-response-body-properties", request_id
55
+ )
56
+
57
+ response = client.Favorites.is_favorite(
58
+ favorite_type=TEST_FAVORITE_TYPE,
59
+ favorite_id=TEST_FAVORITE_ID,
60
+ )
61
+
62
+ assert response.to_dict() == {
63
+ "objectId": TEST_OBJECT_ID,
64
+ "type": TEST_FAVORITE_TYPE
65
+ }
66
+
67
+
68
+ def test_is_favorite_error_4xx():
69
+ request_id = uuid.uuid4().hex
70
+ client = get_mock_api_client(
71
+ "/errors/400-response", request_id
72
+ )
73
+
74
+ response = client.Favorites.is_favorite(
75
+ favorite_type=TEST_FAVORITE_TYPE,
76
+ favorite_id=TEST_FAVORITE_ID,
77
+ )
78
+
79
+ assert isinstance(response, Error)
80
+
81
+
82
+ def test_is_favorite_error_5xx():
83
+ request_id = uuid.uuid4().hex
84
+ client = get_mock_api_client(
85
+ "/errors/500-response", request_id
86
+ )
87
+
88
+ response = client.Favorites.is_favorite(
89
+ favorite_type=TEST_FAVORITE_TYPE,
90
+ favorite_id=TEST_FAVORITE_ID,
91
+ )
92
+
93
+ assert isinstance(response, Error)
@@ -1,34 +0,0 @@
1
- # file generated by setuptools-scm
2
- # don't change, don't track in version control
3
-
4
- __all__ = [
5
- "__version__",
6
- "__version_tuple__",
7
- "version",
8
- "version_tuple",
9
- "__commit_id__",
10
- "commit_id",
11
- ]
12
-
13
- TYPE_CHECKING = False
14
- if TYPE_CHECKING:
15
- from typing import Tuple
16
- from typing import Union
17
-
18
- VERSION_TUPLE = Tuple[Union[int, str], ...]
19
- COMMIT_ID = Union[str, None]
20
- else:
21
- VERSION_TUPLE = object
22
- COMMIT_ID = object
23
-
24
- version: str
25
- __version__: str
26
- __version_tuple__: VERSION_TUPLE
27
- version_tuple: VERSION_TUPLE
28
- commit_id: COMMIT_ID
29
- __commit_id__: COMMIT_ID
30
-
31
- __version__ = version = '3.7.1'
32
- __version_tuple__ = version_tuple = (3, 7, 1)
33
-
34
- __commit_id__ = commit_id = 'gb407d36d8'