smartsheet-python-sdk 3.0.5__tar.gz → 3.2.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.
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.gitignore +1 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/ADVANCED.md +4 -3
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/CHANGELOG.md +36 -1
- {smartsheet-python-sdk-3.0.5/smartsheet_python_sdk.egg-info → smartsheet-python-sdk-3.2.0}/PKG-INFO +1 -1
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/docs-source/index.rst +5 -1
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/folders.py +62 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/home.py +6 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/__init__.py +3 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/datetime_object_value.py +2 -2
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/__init__.py +1 -0
- smartsheet-python-sdk-3.2.0/smartsheet/models/enums/seat_type.py +17 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/folder.py +29 -1
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/index_result.py +10 -1
- smartsheet-python-sdk-3.2.0/smartsheet/models/paginated_children_result.py +80 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/source.py +1 -1
- smartsheet-python-sdk-3.2.0/smartsheet/models/token_paginated_result.py +79 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/user_model.py +28 -0
- smartsheet-python-sdk-3.2.0/smartsheet/models/user_plan.py +68 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/workspace.py +29 -1
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/users.py +94 -1
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/version.py +2 -2
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/workspaces.py +125 -11
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0/smartsheet_python_sdk.egg-info}/PKG-INFO +1 -1
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet_python_sdk.egg-info/SOURCES.txt +6 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_folders.py +49 -0
- smartsheet-python-sdk-3.2.0/tests/integration/test_workspaces.py +271 -0
- smartsheet-python-sdk-3.2.0/tests/mock_api/test_mock_api_folders.py +184 -0
- smartsheet-python-sdk-3.2.0/tests/mock_api/test_mock_api_workspaces.py +241 -0
- smartsheet-python-sdk-3.0.5/tests/integration/test_workspaces.py +0 -154
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.gitchangelog.rc +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.gitchangelog.tpl +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.github/pull_request_template.md +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.github/workflows/publish-distribution.yaml +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.github/workflows/publish-documentation.yaml +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.github/workflows/test-build.yaml +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.markdownlint.json +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/CONTRIBUTING.md +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/LICENSE.md +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/Makefile +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/NOTICE +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/README.md +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/docs-source/Makefile +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/docs-source/conf.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/pylintrc +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/setup.cfg +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/setup.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/__init__.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/attachments.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/cells.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/contacts.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/discussions.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/events.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/exceptions.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/favorites.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/groups.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/images.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/access_token.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/account.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/alternate_email.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/attachment.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/auto_number_format.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/automation_action.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/automation_rule.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/boolean_object_value.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/bulk_item_failure.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/bulk_item_result.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/cell.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/cell_data_item.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/cell_history.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/cell_link.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/cell_link_widget_content.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/chart_widget_content.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/column.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/comment.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/contact.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/contact_object_value.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/container_destination.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/copy_or_move_row_destination.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/copy_or_move_row_directive.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/copy_or_move_row_result.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/criteria.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/cross_sheet_reference.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/currency.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/date_object_value.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/discussion.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/downloaded_file.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/duration.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/email.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/access_level.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/attachment_parent_type.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/attachment_sub_type.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/attachment_type.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/automation_action_frequency.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/automation_action_type.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/automation_rule_disabled_reason.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/cell_link_status.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/column_type.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/criteria_target.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/cross_sheet_reference_status.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/currency_code.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/day_descriptors.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/day_ordinal.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/event_action.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/event_obejct_type.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/event_source.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/global_template.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/operator.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/paper_type.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/predecessor_type.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/publish_accessible_by.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/schedule_type.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/share_scope.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/share_type.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/sheet_email_format.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/sheet_filter_operator.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/sheet_filter_type.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/sort_direction.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/symbol.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/system_column_type.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/update_request_status.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/user_status.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/widget_type.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/error.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/error_result.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/event.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/event_result.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/explicit_null.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/favorite.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/font_family.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/format_details.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/format_tables.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/group.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/group_member.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/home.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/hyperlink.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/image.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/image_url.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/image_url_map.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/image_widget_content.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/json_object.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/multi_contact_object_value.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/multi_picklist_object_value.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/multi_row_email.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/number_object_value.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/o_auth_error.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/object_value.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/predecessor.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/predecessor_list.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/primitive_object_value.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/profile_image.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/project_settings.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/recipient.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/report.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/report_cell.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/report_column.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/report_publish.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/report_row.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/report_widget_content.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/result.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/row.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/row_email.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/row_mapping.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/schedule.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/scope.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/search_result.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/search_result_item.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/selection_range.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sent_update_request.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/server_info.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/share.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_email.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_filter.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_filter_details.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_publish.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_summary.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_user_permissions.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_user_settings.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/shortcut_data_item.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/shortcut_widget_content.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sight.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sight_publish.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sort_criterion.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sort_specifier.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/string_object_value.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/summary_field.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/template.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/title_rich_text_widget_content.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/update_request.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/user.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/user_profile.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/version.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/web_content_widget_content.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/webhook.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/webhook_secret.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/webhook_stats.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/webhook_subscope.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/widget.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/widget_content.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/widget_hyperlink.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/object_value.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/passthrough.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/reports.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/search.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/server.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/session.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/sheets.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/sights.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/smartsheet.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/templates.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/token.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/types.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/util.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/webhooks.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet_python_sdk.egg-info/dependency_links.txt +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet_python_sdk.egg-info/requires.txt +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet_python_sdk.egg-info/top_level.txt +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/README.md +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/conftest.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/fixtures/calling_all_curs.txt +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/fixtures/curly.jpg +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/fixtures/moe-curly.jpg +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/fixtures/quote.txt +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/fixtures/stooges_v1.jpg +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/fixtures/stooges_v2.jpg +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_attachments.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_columns.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_contacts.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_cross_sheet_references.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_discussions.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_events.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_favorites.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_groups.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_home.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_model_attributes.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_multi_picklist.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_object_value.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_passthrough.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_regression.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_reports.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_rows.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_server_info.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_sheet_summary.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_sheets.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_templates.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_update_requests.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_users.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_webhooks.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_zsearch.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/mock_api_test_helper.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_api_automation_rules.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_api_columns.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_api_rows.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_api_sheets.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_api_sights.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_change_agent.py +0 -0
- {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_serialization.py +0 -0
|
@@ -80,7 +80,7 @@ response = client.Passthrough.post('/sheets', payload)
|
|
|
80
80
|
|
|
81
81
|
### Integration Tests
|
|
82
82
|
|
|
83
|
-
1. Follow the instructions
|
|
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,8 @@ 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
|
-
|
|
137
|
+
|
|
138
|
+
provided can be found on the [Events Description](https://smartsheet.redoc.ly/tag/eventsDescription) page of the API Documentation.
|
|
138
139
|
|
|
139
140
|
```python
|
|
140
141
|
# this example is looking specifically for new sheet events
|
|
@@ -157,7 +158,7 @@ last_week = datetime.now() - timedelta(days=7)
|
|
|
157
158
|
events_list = smartsheet_client.Events.list_events(since=last_week.isoformat(), max_count=1000)
|
|
158
159
|
print_new_sheet_events_in_list(events_list)
|
|
159
160
|
|
|
160
|
-
# continue listing events in the stream by using the stream_position, if the previous response indicates that more
|
|
161
|
+
# continue listing events in the stream by using the stream_position, if the previous response indicates that more
|
|
161
162
|
# data is available.
|
|
162
163
|
while events_list.more_available:
|
|
163
164
|
events_list = smartsheet_client.Events.list_events(stream_position=events_list.next_stream_position, max_count=10000,
|
|
@@ -5,6 +5,41 @@ 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.2.0] - 2025-09-25
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Support for POST /2.0/users/{userId}/plans/{planId}/downgrade
|
|
13
|
+
- Support for POST /2.0/users/{userId}/plans/{planId}/upgrade
|
|
14
|
+
- Support for GET /2.0/users/{userId}/plans
|
|
15
|
+
- Support for GET /2.0/users?planId={planId}&seatType={seatType}
|
|
16
|
+
- Support for DELETE /2.0/users/{userId}/plans/{planId}
|
|
17
|
+
|
|
18
|
+
## [3.1.0] - 2025-08-28
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- New `get_workspace_metadata()` method to get workspace metadata without children
|
|
23
|
+
- New `get_workspace_children()` method to get workspace children with filtering and pagination support
|
|
24
|
+
- New `get_folder_metadata()` method to get folder metadata without children
|
|
25
|
+
- New `get_folder_children()` method to get folder children with filtering and pagination support
|
|
26
|
+
- New `TokenPaginatedResult<T>` generic model for type-safe paginated API responses
|
|
27
|
+
- New `PaginatedChildrenResult` model with custom deserialization for mixed children types based on resourceType
|
|
28
|
+
- 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`.
|
|
29
|
+
|
|
30
|
+
### Deprecated
|
|
31
|
+
|
|
32
|
+
- `get_workspace()` - Use `get_workspace_metadata()` and `get_workspace_children()` instead
|
|
33
|
+
- `list_folders()` in Workspaces - Use `get_workspace_children()` with `children_resource_types=['folders']` instead
|
|
34
|
+
- `get_folder()` - Use `get_folder_metadata()` and `get_folder_children()` instead
|
|
35
|
+
- `list_folders()` in Folders - Use `get_folder_children()` with `children_resource_types=['folders']` instead
|
|
36
|
+
- `create_folder()` in Home
|
|
37
|
+
- `create_sheet()` in Home
|
|
38
|
+
- `create_sheet_from_template()` in Home
|
|
39
|
+
- `list_all_contents()` in Home
|
|
40
|
+
- `list_folders()` in Home
|
|
41
|
+
- `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.
|
|
42
|
+
|
|
8
43
|
## [3.0.5] - 2025-04-07
|
|
9
44
|
|
|
10
45
|
### Changed
|
|
@@ -253,7 +288,7 @@ if sheet.access_level == 'OWNER':
|
|
|
253
288
|
...
|
|
254
289
|
```
|
|
255
290
|
|
|
256
|
-
[enum34](https://pypi.python.org/pypi/enum34) has been added as a required package for the SDK
|
|
291
|
+
[enum34](https://pypi.python.org/pypi/enum34) has been added as a required package for the SDK
|
|
257
292
|
|
|
258
293
|
## [1.3.0] - 2018-02-21
|
|
259
294
|
|
|
@@ -7,7 +7,11 @@
|
|
|
7
7
|
Smartsheet Python SDK Documentation
|
|
8
8
|
===================================
|
|
9
9
|
|
|
10
|
-
Release v\ |version
|
|
10
|
+
* Release v\ |version|
|
|
11
|
+
|
|
12
|
+
* `GitHub repository <https://github.com/smartsheet/smartsheet-python-sdk>`_
|
|
13
|
+
|
|
14
|
+
* `Changelog <https://github.com/smartsheet/smartsheet-python-sdk/blob/mainline/CHANGELOG.md>`_
|
|
11
15
|
|
|
12
16
|
Quickstart
|
|
13
17
|
----------
|
|
@@ -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
|
|
@@ -119,3 +121,4 @@ from .webhook_subscope import WebhookSubscope
|
|
|
119
121
|
from .widget import Widget
|
|
120
122
|
from .widget_content import WidgetContent
|
|
121
123
|
from .workspace import Workspace
|
|
124
|
+
from .user_plan import UserPlan
|
|
@@ -26,10 +26,10 @@ from .object_value import ObjectValue, six
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
class DatetimeObjectValue(ObjectValue):
|
|
29
|
-
"""Smartsheet
|
|
29
|
+
"""Smartsheet DatetimeObjectValue data model."""
|
|
30
30
|
|
|
31
31
|
def __init__(self, props=None, object_type=None, base_obj=None):
|
|
32
|
-
"""Initialize the
|
|
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:
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
class SeatType(str, Enum):
|
|
4
|
+
VIEWER = 'VIEWER'
|
|
5
|
+
GUEST = 'GUEST'
|
|
6
|
+
MEMBER = 'MEMBER'
|
|
7
|
+
PROVISIONAL_MEMBER = 'PROVISIONAL_MEMBER'
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DowngradeSeatType(str, Enum):
|
|
11
|
+
VIEWER = 'VIEWER'
|
|
12
|
+
GUEST = 'GUEST'
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class UpgradeSeatType(str, Enum):
|
|
16
|
+
GUEST = 'GUEST'
|
|
17
|
+
MEMBER = 'MEMBER'
|
|
@@ -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
|
{smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/index_result.py
RENAMED
|
@@ -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"""
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
|
|
2
|
+
# Smartsheet Python SDK.
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2018 Smartsheet.com, Inc.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License"): you may
|
|
7
|
+
# not use this file except in compliance with the License. You may obtain
|
|
8
|
+
# a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
14
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
15
|
+
# License for the specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
|
|
18
|
+
from __future__ import absolute_import
|
|
19
|
+
|
|
20
|
+
from typing import Union
|
|
21
|
+
from ..util import deserialize
|
|
22
|
+
from .token_paginated_result import TokenPaginatedResult
|
|
23
|
+
from .folder import Folder
|
|
24
|
+
from .sheet import Sheet
|
|
25
|
+
from .sight import Sight
|
|
26
|
+
from .report import Report
|
|
27
|
+
|
|
28
|
+
# Type alias for children that can be any of these types
|
|
29
|
+
ChildType = Union[Folder, Sheet, Sight, Report]
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class PaginatedChildrenResult(TokenPaginatedResult[ChildType]):
|
|
33
|
+
"""Smartsheet PaginatedChildrenResult that deserializes mixed children based on resourceType."""
|
|
34
|
+
|
|
35
|
+
def __init__(self, props=None, base_obj=None):
|
|
36
|
+
"""Initialize the PaginatedChildrenResult model."""
|
|
37
|
+
super().__init__(props=None, base_obj=base_obj)
|
|
38
|
+
|
|
39
|
+
if props:
|
|
40
|
+
self._deserialize_data(props)
|
|
41
|
+
deserialize(self, props)
|
|
42
|
+
|
|
43
|
+
def _deserialize_data(self, props):
|
|
44
|
+
"""Custom deserialization for data array based on resourceType."""
|
|
45
|
+
if 'data' in props:
|
|
46
|
+
self._data = []
|
|
47
|
+
for item in props['data']:
|
|
48
|
+
self.append_data(item)
|
|
49
|
+
|
|
50
|
+
def append_data(self, item):
|
|
51
|
+
"""Append data item, converting to appropriate model based on resourceType."""
|
|
52
|
+
# Get resource type from either dict or object
|
|
53
|
+
if isinstance(item, dict):
|
|
54
|
+
resource_type = item.get('resourceType', '').lower()
|
|
55
|
+
else:
|
|
56
|
+
resource_type = getattr(item, 'resourceType', '').lower()
|
|
57
|
+
|
|
58
|
+
# Convert to appropriate model object based on resource type
|
|
59
|
+
if resource_type == 'folder':
|
|
60
|
+
self._data.append(Folder(item, self._base))
|
|
61
|
+
elif resource_type == 'sheet':
|
|
62
|
+
self._data.append(Sheet(item, self._base))
|
|
63
|
+
elif resource_type == 'sight':
|
|
64
|
+
self._data.append(Sight(item, self._base))
|
|
65
|
+
elif resource_type == 'report':
|
|
66
|
+
self._data.append(Report(item, self._base))
|
|
67
|
+
else:
|
|
68
|
+
# If no resource type or unknown type, append as-is
|
|
69
|
+
self._data.append(item)
|
|
70
|
+
|
|
71
|
+
@property
|
|
72
|
+
def data(self):
|
|
73
|
+
return self._data
|
|
74
|
+
|
|
75
|
+
@data.setter
|
|
76
|
+
def data(self, value):
|
|
77
|
+
"""Custom setter that handles deserialization of mixed resource types."""
|
|
78
|
+
self._data = []
|
|
79
|
+
for item in value:
|
|
80
|
+
self.append_data(item)
|
|
@@ -31,7 +31,7 @@ class Source:
|
|
|
31
31
|
if base_obj is not None:
|
|
32
32
|
self._base = base_obj
|
|
33
33
|
|
|
34
|
-
self.allowed_values = {"_type": ["report", "sheet", "sight", "template"]}
|
|
34
|
+
self.allowed_values = {"_type": ["folder", "report", "sheet", "sight", "template", "workspace"]}
|
|
35
35
|
|
|
36
36
|
self._id_ = Number()
|
|
37
37
|
self._type_ = String(accept=self.allowed_values["_type"])
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
|
|
2
|
+
# Smartsheet Python SDK.
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2018 Smartsheet.com, Inc.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License"): you may
|
|
7
|
+
# not use this file except in compliance with the License. You may obtain
|
|
8
|
+
# a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
14
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
15
|
+
# License for the specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
|
|
18
|
+
from __future__ import absolute_import
|
|
19
|
+
|
|
20
|
+
from typing import TypeVar, Generic, List
|
|
21
|
+
from ..types import String, json, TypedList, importlib
|
|
22
|
+
from ..util import deserialize, serialize
|
|
23
|
+
|
|
24
|
+
T = TypeVar('T')
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class TokenPaginatedResult(Generic[T]):
|
|
28
|
+
"""Smartsheet TokenPaginatedResult data model with generic type support."""
|
|
29
|
+
|
|
30
|
+
def __init__(self, props=None, dynamic_data_type=None, base_obj=None):
|
|
31
|
+
"""Initialize the TokenPaginatedResult model."""
|
|
32
|
+
self._base = None
|
|
33
|
+
if base_obj is not None:
|
|
34
|
+
self._base = base_obj
|
|
35
|
+
|
|
36
|
+
self._dynamic_data_type = None
|
|
37
|
+
if dynamic_data_type is not None:
|
|
38
|
+
self._dynamic_data_type = dynamic_data_type
|
|
39
|
+
|
|
40
|
+
self._data = TypedList(object)
|
|
41
|
+
self._last_key = String()
|
|
42
|
+
|
|
43
|
+
if props:
|
|
44
|
+
deserialize(self, props)
|
|
45
|
+
|
|
46
|
+
self.request_response = None
|
|
47
|
+
self.__initialized = True
|
|
48
|
+
|
|
49
|
+
@property
|
|
50
|
+
def data(self) -> List[T]:
|
|
51
|
+
return self._data
|
|
52
|
+
|
|
53
|
+
@data.setter
|
|
54
|
+
def data(self, value):
|
|
55
|
+
class_ = getattr(
|
|
56
|
+
importlib.import_module("smartsheet.models"), self._dynamic_data_type
|
|
57
|
+
)
|
|
58
|
+
if isinstance(value, list):
|
|
59
|
+
self._data = [class_(x, self._base) for x in value]
|
|
60
|
+
else:
|
|
61
|
+
self._data = class_(value, self._base)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
@property
|
|
65
|
+
def last_key(self):
|
|
66
|
+
return self._last_key.value
|
|
67
|
+
|
|
68
|
+
@last_key.setter
|
|
69
|
+
def last_key(self, value):
|
|
70
|
+
self._last_key.value = value
|
|
71
|
+
|
|
72
|
+
def to_dict(self):
|
|
73
|
+
return serialize(self)
|
|
74
|
+
|
|
75
|
+
def to_json(self):
|
|
76
|
+
return json.dumps(self.to_dict())
|
|
77
|
+
|
|
78
|
+
def __str__(self):
|
|
79
|
+
return self.to_json()
|
|
@@ -19,6 +19,7 @@ from __future__ import absolute_import
|
|
|
19
19
|
|
|
20
20
|
from ..types import (Boolean, EnumeratedValue, Number, String, Timestamp,
|
|
21
21
|
TypedList, TypedObject, json)
|
|
22
|
+
from ..models.enums import SeatType
|
|
22
23
|
from ..util import deserialize, serialize
|
|
23
24
|
from .alternate_email import AlternateEmail
|
|
24
25
|
from .enums import UserStatus
|
|
@@ -44,6 +45,7 @@ class UserModel:
|
|
|
44
45
|
self._first_name = String()
|
|
45
46
|
self._group_admin = Boolean()
|
|
46
47
|
self._id_ = Number()
|
|
48
|
+
self._is_internal = Boolean()
|
|
47
49
|
self._last_login = Timestamp()
|
|
48
50
|
self._last_name = String()
|
|
49
51
|
self._licensed_sheet_creator = Boolean()
|
|
@@ -51,6 +53,8 @@ class UserModel:
|
|
|
51
53
|
self._profile_image = TypedObject(ProfileImage)
|
|
52
54
|
self._resource_viewer = Boolean()
|
|
53
55
|
self._role = String()
|
|
56
|
+
self._seat_type = EnumeratedValue(SeatType)
|
|
57
|
+
self._seat_type_last_changed_at = Timestamp()
|
|
54
58
|
self._sheet_count = Number()
|
|
55
59
|
self._status = EnumeratedValue(UserStatus)
|
|
56
60
|
self._title = String()
|
|
@@ -145,6 +149,14 @@ class UserModel:
|
|
|
145
149
|
def id_(self, value):
|
|
146
150
|
self._id_.value = value
|
|
147
151
|
|
|
152
|
+
@property
|
|
153
|
+
def is_internal(self):
|
|
154
|
+
return self._is_internal.value
|
|
155
|
+
|
|
156
|
+
@is_internal.setter
|
|
157
|
+
def is_internal(self, value):
|
|
158
|
+
self._is_internal.value = value
|
|
159
|
+
|
|
148
160
|
@property
|
|
149
161
|
def last_login(self):
|
|
150
162
|
return self._last_login.value
|
|
@@ -201,6 +213,22 @@ class UserModel:
|
|
|
201
213
|
def role(self, value):
|
|
202
214
|
self._role.value = value
|
|
203
215
|
|
|
216
|
+
@property
|
|
217
|
+
def seat_type(self):
|
|
218
|
+
return self._seat_type
|
|
219
|
+
|
|
220
|
+
@seat_type.setter
|
|
221
|
+
def seat_type(self, value):
|
|
222
|
+
self._seat_type.set(value)
|
|
223
|
+
|
|
224
|
+
@property
|
|
225
|
+
def seat_type_last_changed_at(self):
|
|
226
|
+
return self._seat_type_last_changed_at.value
|
|
227
|
+
|
|
228
|
+
@seat_type_last_changed_at.setter
|
|
229
|
+
def seat_type_last_changed_at(self, value):
|
|
230
|
+
self._seat_type_last_changed_at.value = value
|
|
231
|
+
|
|
204
232
|
@property
|
|
205
233
|
def sheet_count(self):
|
|
206
234
|
return self._sheet_count.value
|