smartsheet-python-sdk 3.5.5__tar.gz → 3.5.6__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.5.5 → smartsheet_python_sdk-3.5.6}/.github/pull_request_template.md +1 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/.github/workflows/test-build.yaml +4 -4
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/.gitignore +1 -2
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/ADVANCED.md +87 -13
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/CHANGELOG.md +15 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/CONTRIBUTING.md +21 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/PKG-INFO +1 -1
- smartsheet_python_sdk-3.5.6/docs-source/index.rst +141 -0
- smartsheet_python_sdk-3.5.6/docs-source/smartsheet_api.rst +186 -0
- smartsheet_python_sdk-3.5.6/docs-source/smartsheet_enums.rst +290 -0
- smartsheet_python_sdk-3.5.6/docs-source/smartsheet_exceptions.rst +7 -0
- smartsheet_python_sdk-3.5.6/docs-source/smartsheet_models.rst +978 -0
- smartsheet_python_sdk-3.5.6/docs-source/smartsheet_types.rst +7 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/__init__.py +2 -2
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/attachments.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/cells.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/contacts.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/discussions.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/events.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/favorites.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/folders.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/groups.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/home.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/images.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/__init__.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/passthrough.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/reports.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/search.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/server.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/sharing.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/sheets.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/sights.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/smartsheet.py +57 -25
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/templates.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/token.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/users.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/util.py +20 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/version.py +3 -3
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/webhooks.py +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/workspaces.py +4 -3
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet_python_sdk.egg-info/PKG-INFO +1 -1
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet_python_sdk.egg-info/SOURCES.txt +6 -36
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/users/test_list_users.py +1 -1
- smartsheet_python_sdk-3.5.5/docs-source/index.rst +0 -52
- smartsheet_python_sdk-3.5.5/tests/integration/README.md +0 -37
- smartsheet_python_sdk-3.5.5/tests/integration/conftest.py +0 -174
- smartsheet_python_sdk-3.5.5/tests/integration/fixtures/calling_all_curs.txt +0 -1
- smartsheet_python_sdk-3.5.5/tests/integration/fixtures/curly.jpg +0 -0
- smartsheet_python_sdk-3.5.5/tests/integration/fixtures/moe-curly.jpg +0 -0
- smartsheet_python_sdk-3.5.5/tests/integration/fixtures/quote.txt +0 -1
- smartsheet_python_sdk-3.5.5/tests/integration/fixtures/stooges_v1.jpg +0 -0
- smartsheet_python_sdk-3.5.5/tests/integration/fixtures/stooges_v2.jpg +0 -0
- smartsheet_python_sdk-3.5.5/tests/integration/test_attachments.py +0 -99
- smartsheet_python_sdk-3.5.5/tests/integration/test_columns.py +0 -91
- smartsheet_python_sdk-3.5.5/tests/integration/test_contacts.py +0 -27
- smartsheet_python_sdk-3.5.5/tests/integration/test_cross_sheet_references.py +0 -30
- smartsheet_python_sdk-3.5.5/tests/integration/test_discussions.py +0 -195
- smartsheet_python_sdk-3.5.5/tests/integration/test_events.py +0 -56
- smartsheet_python_sdk-3.5.5/tests/integration/test_favorites.py +0 -33
- smartsheet_python_sdk-3.5.5/tests/integration/test_folders.py +0 -130
- smartsheet_python_sdk-3.5.5/tests/integration/test_groups.py +0 -92
- smartsheet_python_sdk-3.5.5/tests/integration/test_home.py +0 -99
- smartsheet_python_sdk-3.5.5/tests/integration/test_model_attributes.py +0 -2848
- smartsheet_python_sdk-3.5.5/tests/integration/test_multi_picklist.py +0 -66
- smartsheet_python_sdk-3.5.5/tests/integration/test_object_value.py +0 -126
- smartsheet_python_sdk-3.5.5/tests/integration/test_passthrough.py +0 -37
- smartsheet_python_sdk-3.5.5/tests/integration/test_regression.py +0 -240
- smartsheet_python_sdk-3.5.5/tests/integration/test_reports.py +0 -134
- smartsheet_python_sdk-3.5.5/tests/integration/test_rows.py +0 -196
- smartsheet_python_sdk-3.5.5/tests/integration/test_server_info.py +0 -10
- smartsheet_python_sdk-3.5.5/tests/integration/test_sharing.py +0 -83
- smartsheet_python_sdk-3.5.5/tests/integration/test_sheet_summary.py +0 -64
- smartsheet_python_sdk-3.5.5/tests/integration/test_sheets.py +0 -384
- smartsheet_python_sdk-3.5.5/tests/integration/test_templates.py +0 -21
- smartsheet_python_sdk-3.5.5/tests/integration/test_update_requests.py +0 -61
- smartsheet_python_sdk-3.5.5/tests/integration/test_users.py +0 -134
- smartsheet_python_sdk-3.5.5/tests/integration/test_webhooks.py +0 -50
- smartsheet_python_sdk-3.5.5/tests/integration/test_workspaces.py +0 -271
- smartsheet_python_sdk-3.5.5/tests/integration/test_zsearch.py +0 -30
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/.gitchangelog.rc +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/.gitchangelog.tpl +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/.github/workflows/publish-distribution.yaml +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/.github/workflows/publish-documentation.yaml +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/.markdownlint.json +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/LICENSE.md +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/Makefile +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/NOTICE +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/README.md +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/docs-source/Makefile +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/docs-source/conf.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/pyproject.toml +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/setup.cfg +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/exceptions.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/__init__.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/access_token.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/account.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/alternate_email.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/asset_share.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/asset_shares_paginated_result.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/attachment.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/auto_number_format.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/automation_action.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/automation_rule.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/boolean_object_value.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/bulk_item_failure.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/bulk_item_result.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/cell.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/cell_data_item.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/cell_history.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/cell_link.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/cell_link_widget_content.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/chart_widget_content.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/column.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/comment.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/contact.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/contact_object_value.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/container_destination.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/copy_or_move_row_destination.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/copy_or_move_row_directive.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/copy_or_move_row_result.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/criteria.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/cross_sheet_reference.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/currency.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/date_object_value.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/datetime_object_value.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/discussion.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/downloaded_file.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/duration.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/email.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/access_level.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/asset_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/attachment_parent_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/attachment_sub_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/attachment_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/automation_action_frequency.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/automation_action_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/automation_rule_disabled_reason.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/cell_link_status.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/column_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/criteria_target.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/cross_sheet_reference_status.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/currency_code.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/day_descriptors.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/day_ordinal.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/event_action.py +0 -0
- /smartsheet_python_sdk-3.5.5/smartsheet/models/enums/event_obejct_type.py → /smartsheet_python_sdk-3.5.6/smartsheet/models/enums/event_object_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/event_source.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/global_template.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/operator.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/paper_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/predecessor_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/publish_accessible_by.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/schedule_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/seat_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/share_scope.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/share_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/sheet_email_format.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/sheet_filter_operator.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/sheet_filter_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/sort_direction.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/symbol.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/system_column_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/update_request_status.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/user_status.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/enums/widget_type.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/error.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/error_result.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/event.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/event_result.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/explicit_null.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/favorite.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/folder.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/font_family.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/format_details.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/format_tables.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/group.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/group_member.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/home.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/hyperlink.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/image.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/image_url.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/image_url_map.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/image_widget_content.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/index_result.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/json_object.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/multi_contact_object_value.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/multi_picklist_object_value.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/multi_row_email.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/number_object_value.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/o_auth_error.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/object_value.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/paginated_children_result.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/predecessor.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/predecessor_list.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/primitive_object_value.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/profile_image.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/project_settings.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/recipient.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/report.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/report_cell.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/report_column.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/report_publish.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/report_row.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/report_widget_content.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/result.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/row.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/row_email.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/row_mapping.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/schedule.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/scope.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/search_result.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/search_result_item.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/selection_range.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/sent_update_request.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/server_info.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/share.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/sheet.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/sheet_email.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/sheet_filter.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/sheet_filter_details.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/sheet_publish.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/sheet_summary.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/sheet_user_permissions.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/sheet_user_settings.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/shortcut_data_item.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/shortcut_widget_content.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/sight.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/sight_publish.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/sort_criterion.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/sort_specifier.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/source.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/string_object_value.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/summary_field.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/template.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/title_rich_text_widget_content.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/token_paginated_result.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/update_request.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/user.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/user_model.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/user_plan.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/user_profile.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/version.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/web_content_widget_content.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/webhook.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/webhook_secret.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/webhook_stats.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/webhook_subscope.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/widget.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/widget_content.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/widget_hyperlink.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/models/workspace.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/object_value.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/session.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet/types.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet_python_sdk.egg-info/dependency_links.txt +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet_python_sdk.egg-info/requires.txt +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/smartsheet_python_sdk.egg-info/top_level.txt +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/__init__.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/__init__.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/mock_api_test_helper.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/test_mock_api_automation_rules.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/test_mock_api_columns.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/test_mock_api_folders.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/test_mock_api_rows.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/test_mock_api_sharing.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/test_mock_api_sheets.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/test_mock_api_sights.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/test_mock_api_workspaces.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/test_mock_change_agent.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/test_mock_serialization.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/users/common_test_constants.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/users/test_list_user_plans.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/users/test_remove_user_from_plan.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/mock_api/users/test_user_upgrade_downgrade.py +0 -0
- {smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/tests/test_util_serialize_dict.py +0 -0
{smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/.github/pull_request_template.md
RENAMED
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
- [ ] I have performed a self-review of my own code
|
|
36
36
|
- [ ] I have commented my code, particularly in hard-to-understand areas
|
|
37
37
|
- [ ] I have made corresponding changes to the documentation
|
|
38
|
+
- [ ] I have updated the relevant files in `docs-source/` (see [Documentation guidelines](../../../CONTRIBUTING.md#documentation))
|
|
38
39
|
- [ ] My changes generate no new warnings
|
|
39
40
|
- [ ] I have added tests that prove my fix is effective or that my feature works
|
|
40
41
|
- [ ] New and existing unit tests pass locally with my changes
|
{smartsheet_python_sdk-3.5.5 → smartsheet_python_sdk-3.5.6}/.github/workflows/test-build.yaml
RENAMED
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
run: |
|
|
26
26
|
pylint smartsheet
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
test:
|
|
29
29
|
needs: lint
|
|
30
30
|
runs-on: ubuntu-latest
|
|
31
31
|
strategy:
|
|
@@ -53,9 +53,9 @@ jobs:
|
|
|
53
53
|
- name: Setup Mock API
|
|
54
54
|
run: |
|
|
55
55
|
docker compose -f smartsheet-sdk-tests/docker-compose.yml up -d --wait
|
|
56
|
-
- name: Run
|
|
56
|
+
- name: Run tests
|
|
57
57
|
run: |
|
|
58
|
-
coverage run --source=smartsheet -m pytest
|
|
58
|
+
coverage run --source=smartsheet -m pytest
|
|
59
59
|
coverage lcov
|
|
60
60
|
- name: Coveralls Parallel
|
|
61
61
|
uses: coverallsapp/github-action@master
|
|
@@ -67,7 +67,7 @@ jobs:
|
|
|
67
67
|
|
|
68
68
|
build-packages-test:
|
|
69
69
|
runs-on: ubuntu-latest
|
|
70
|
-
needs: [
|
|
70
|
+
needs: [test]
|
|
71
71
|
steps:
|
|
72
72
|
- uses: actions/checkout@v4
|
|
73
73
|
- name: Set up Python
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
The following packages are required.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
- [setuptools](https://pypi.org/project/setuptools/)
|
|
8
|
+
- [six](https://pypi.python.org/pypi/six)
|
|
9
|
+
- [requests](https://pypi.python.org/pypi/requests)
|
|
10
10
|
|
|
11
11
|
To install this SDK manually:
|
|
12
12
|
|
|
@@ -55,9 +55,9 @@ To invoke the passthrough, your code can call one of the following four methods:
|
|
|
55
55
|
|
|
56
56
|
`response = client.Passthrough.delete(endpoint)`
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
- `endpoint`: The specific API endpoint you wish to invoke. The client object base URL gets prepended to the caller’s endpoint URL argument, so in the above `get` example, if endpoint is `'/sheets'` an HTTP GET is requested from the URL `https://api.smartsheet.com/2.0/sheets`
|
|
59
|
+
- `payload`: The data to be passed through, can be either a dictionary or string.
|
|
60
|
+
- `query_params`: An optional dictionary of query parameters.
|
|
61
61
|
|
|
62
62
|
All calls to passthrough methods return a JSON result. The `data` attribute contains the JSON result as a dictionary. For example, after a PUT operation the API's result message will be contained in `response.data['message']`. If you prefer raw JSON instead of a dictionary, you can use the `to_json()` method, for example `response.to_json()`.
|
|
63
63
|
|
|
@@ -78,17 +78,91 @@ response = client.Passthrough.post('/sheets', payload)
|
|
|
78
78
|
|
|
79
79
|
## Testing
|
|
80
80
|
|
|
81
|
-
###
|
|
81
|
+
### Mock API Tests
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
We use WireMock for API contract testing. This allows us to simulate Smartsheet API responses and run tests without relying on the live API.
|
|
84
|
+
The [smartsheet-sdk-tests](https://github.com/smartsheet/smartsheet-sdk-tests) repo provides a standalone WireMock server with JSON mappings that simulate the Smartsheet API.
|
|
85
|
+
Each mapping defines a request to match and a response to return.
|
|
86
|
+
|
|
87
|
+
Common test cases use catch-all path patterns (e.g., /errors/500-response).
|
|
88
|
+
|
|
89
|
+
We use two custom headers:
|
|
90
|
+
|
|
91
|
+
- x-test-name: Used for exact mapping match, allowing different mock responses for the same HTTP method and endpoint.
|
|
92
|
+
- x-request-id: A UUID generated for each request, used to verify request URLs and search for requests in WireMock admin history.
|
|
93
|
+
|
|
94
|
+
To run the mock API tests:
|
|
95
|
+
|
|
96
|
+
1. Clone the [smartsheet-sdk-tests](https://github.com/smartsheet/smartsheet-sdk-tests) repo and follow the instructions from the readme to start the mock server.
|
|
97
|
+
|
|
98
|
+
2. `pytest tests/mock_api`
|
|
99
|
+
|
|
100
|
+
To add new mock API tests:
|
|
101
|
+
|
|
102
|
+
1. Add a WireMock Mapping (JSON) in the [smartsheet-sdk-tests](https://github.com/smartsheet/smartsheet-sdk-tests):
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"request": {
|
|
107
|
+
"urlPathTemplate": "/2.0/users/{userId}/plans",
|
|
108
|
+
"method": "GET",
|
|
109
|
+
"headers": {
|
|
110
|
+
"Authorization": {
|
|
111
|
+
"matches": "Bearer .*"
|
|
112
|
+
},
|
|
113
|
+
"x-test-name": {
|
|
114
|
+
"equalTo": "/users/list-user-plans/all-response-body-properties"
|
|
115
|
+
},
|
|
116
|
+
"x-request-id": {
|
|
117
|
+
"matches": ".*"
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"response": {
|
|
122
|
+
"statusMessage": "OK",
|
|
123
|
+
"status": 200,
|
|
124
|
+
"jsonBody": {
|
|
125
|
+
"lastKey": "12345678901234569",
|
|
126
|
+
"data": [
|
|
127
|
+
{
|
|
128
|
+
"planId": 1234567890123456,
|
|
129
|
+
"seatType": "MEMBER",
|
|
130
|
+
"seatTypeLastChangedAt": "2025-01-01T00:00:00.123456789Z",
|
|
131
|
+
"provisionalExpirationDate": "2026-12-13T12:17:52.525696Z",
|
|
132
|
+
"isInternal": false
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
"headers": {
|
|
137
|
+
"Content-Type": "application/json"
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
```
|
|
85
142
|
|
|
86
|
-
|
|
143
|
+
<!-- markdownlint-disable MD029 -->
|
|
144
|
+
2. Write a Test in the SDK:
|
|
145
|
+
<!-- markdownlint-enable MD029 -->
|
|
87
146
|
|
|
88
|
-
|
|
147
|
+
- Always use x-test-name to target specific mock responses.
|
|
148
|
+
- Use x-request-id for traceability in WireMock admin.
|
|
149
|
+
- Keep mappings in the smartsheet-sdk-tests repository organized and descriptive
|
|
89
150
|
|
|
90
|
-
|
|
91
|
-
|
|
151
|
+
```python
|
|
152
|
+
def test_list_user_plans_all_response_properties():
|
|
153
|
+
request_id = uuid.uuid4().hex
|
|
154
|
+
client = get_mock_api_client(
|
|
155
|
+
"/users/list-user-plans/all-response-body-properties", request_id
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
response = client.Users.list_user_plans(
|
|
159
|
+
user_id=TEST_USER_ID,
|
|
160
|
+
last_key=TEST_LAST_KEY,
|
|
161
|
+
max_items=TEST_MAX_ITEMS
|
|
162
|
+
)
|
|
163
|
+
|
|
164
|
+
assert isinstance(response, TokenPaginatedResult)
|
|
165
|
+
```
|
|
92
166
|
|
|
93
167
|
## HTTP Proxy
|
|
94
168
|
|
|
@@ -5,6 +5,21 @@ 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.5.6] - 2025-11-18
|
|
9
|
+
|
|
10
|
+
### Removed
|
|
11
|
+
|
|
12
|
+
- Remove integration tests from the sdk test suite
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- Add support for code completion. Now code editors will be able to recognize and complete expressions like `smart.Users` and `smart.Users.list_users`.
|
|
17
|
+
|
|
18
|
+
### Updated
|
|
19
|
+
|
|
20
|
+
- Improved the generated reference documentation.
|
|
21
|
+
- ADVANCED.md integration and mock api testing documentation
|
|
22
|
+
|
|
8
23
|
## [3.5.5] - 2025-11-11
|
|
9
24
|
|
|
10
25
|
### Fixed
|
|
@@ -36,6 +36,27 @@ Changes that are cosmetic in nature and do not add anything substantial to the s
|
|
|
36
36
|
|
|
37
37
|
- Write unit tests for new features and bug fixes. All tests should pass before submitting a PR.
|
|
38
38
|
|
|
39
|
+
## Documentation
|
|
40
|
+
|
|
41
|
+
- If your changes affect the public API, you must update the corresponding Sphinx documentation files in `docs-source/`:
|
|
42
|
+
- **API Resources** (modules in `smartsheet/`): Update `docs-source/smartsheet_api.rst`
|
|
43
|
+
- **Models** (classes in `smartsheet/models/`): Update `docs-source/smartsheet_models.rst`
|
|
44
|
+
- **Enums** (enums in `smartsheet/models/enums/`): Update `docs-source/smartsheet_enums.rst`
|
|
45
|
+
- **Types** (type definitions in `smartsheet/types.py`): Update `docs-source/smartsheet_types.rst`
|
|
46
|
+
- **Exceptions** (exceptions in `smartsheet/exceptions.py`): Update `docs-source/smartsheet_exceptions.rst`
|
|
47
|
+
- **General documentation** (installation, quickstart, examples): Update `docs-source/index.rst`
|
|
48
|
+
|
|
49
|
+
- The documentation uses Sphinx with autodoc to generate API documentation from docstrings. Ensure your docstrings follow Google-style format as configured in `docs-source/conf.py`.
|
|
50
|
+
|
|
51
|
+
- After making changes to `docs-source/`, you can build the documentation locally to verify your changes:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
cd docs-source
|
|
55
|
+
make html
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
- The built documentation will be in `docs-source/_build/html/`. Open `index.html` in a browser to review your changes.
|
|
59
|
+
|
|
39
60
|
## Running Tests
|
|
40
61
|
|
|
41
62
|
- To run the test suite, use the following command:
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
.. toctree::
|
|
2
|
+
:maxdepth: 2
|
|
3
|
+
:hidden:
|
|
4
|
+
|
|
5
|
+
smartsheet_api
|
|
6
|
+
smartsheet_models
|
|
7
|
+
smartsheet_enums
|
|
8
|
+
smartsheet_types
|
|
9
|
+
smartsheet_exceptions
|
|
10
|
+
|
|
11
|
+
Smartsheet Python SDK Documentation
|
|
12
|
+
===================================
|
|
13
|
+
|
|
14
|
+
* Release v\ |version|
|
|
15
|
+
|
|
16
|
+
* `GitHub repository <https://github.com/smartsheet/smartsheet-python-sdk>`_
|
|
17
|
+
|
|
18
|
+
* `Changelog <https://github.com/smartsheet/smartsheet-python-sdk/blob/mainline/CHANGELOG.md>`_
|
|
19
|
+
|
|
20
|
+
Installation
|
|
21
|
+
------------
|
|
22
|
+
|
|
23
|
+
To install using pip::
|
|
24
|
+
|
|
25
|
+
pip install smartsheet-python-sdk
|
|
26
|
+
|
|
27
|
+
Quickstart
|
|
28
|
+
----------
|
|
29
|
+
|
|
30
|
+
Getting started is easy:
|
|
31
|
+
|
|
32
|
+
#. Get your Smartsheet API access token. Find out more about getting
|
|
33
|
+
`direct API access <https://developers.smartsheet.com/api/smartsheet/guides/getting-started>`_ in the Smartsheet API Documentation.
|
|
34
|
+
You can generate an access token in Smartsheet UI under Account > Personal Settings > API Access.
|
|
35
|
+
|
|
36
|
+
#. Install the Smartsheet Python SDK from the `Python Package Index <http://pypi.python.org/pypi/smartsheet-python-sdk>`_,
|
|
37
|
+
or by using "pip install smartsheet-python-sdk".
|
|
38
|
+
|
|
39
|
+
#. Import the smartsheet module and start using the SDK (see examples below).
|
|
40
|
+
|
|
41
|
+
Authentication
|
|
42
|
+
--------------
|
|
43
|
+
|
|
44
|
+
You can authenticate with the Smartsheet API in two ways:
|
|
45
|
+
|
|
46
|
+
**Option 1: Environment Variable (Recommended)**
|
|
47
|
+
|
|
48
|
+
Set the **SMARTSHEET_ACCESS_TOKEN** environment variable::
|
|
49
|
+
|
|
50
|
+
export SMARTSHEET_ACCESS_TOKEN="your_token_here"
|
|
51
|
+
|
|
52
|
+
Then create the client without parameters::
|
|
53
|
+
|
|
54
|
+
import smartsheet
|
|
55
|
+
smart = smartsheet.Smartsheet()
|
|
56
|
+
|
|
57
|
+
**Option 2: Direct Token**
|
|
58
|
+
|
|
59
|
+
Pass the access token directly to the Smartsheet constructor::
|
|
60
|
+
|
|
61
|
+
import smartsheet
|
|
62
|
+
smart = smartsheet.Smartsheet(access_token='your_token_here')
|
|
63
|
+
|
|
64
|
+
Example Usage
|
|
65
|
+
-------------
|
|
66
|
+
|
|
67
|
+
Basic Example
|
|
68
|
+
~~~~~~~~~~~~~
|
|
69
|
+
|
|
70
|
+
The following example shows how to create a Smartsheet client and perform some basic operations::
|
|
71
|
+
|
|
72
|
+
import smartsheet
|
|
73
|
+
|
|
74
|
+
# Create a Smartsheet client (uses SMARTSHEET_ACCESS_TOKEN environment variable)
|
|
75
|
+
smart = smartsheet.Smartsheet()
|
|
76
|
+
|
|
77
|
+
# Or create with explicit token:
|
|
78
|
+
# smart = smartsheet.Smartsheet(access_token='your_token_here')
|
|
79
|
+
|
|
80
|
+
# List all sheets
|
|
81
|
+
response = smart.Sheets.list_sheets()
|
|
82
|
+
|
|
83
|
+
# Get the ID of the first sheet
|
|
84
|
+
sheet_id = response.data[0].id
|
|
85
|
+
|
|
86
|
+
# Load the sheet by using its ID
|
|
87
|
+
sheet = smart.Sheets.get_sheet(sheet_id)
|
|
88
|
+
|
|
89
|
+
# Print information about the sheet
|
|
90
|
+
print(f"The sheet {sheet.name} has {sheet.total_row_count} rows")
|
|
91
|
+
|
|
92
|
+
Working with Rows
|
|
93
|
+
~~~~~~~~~~~~~~~~~
|
|
94
|
+
|
|
95
|
+
Add rows to a sheet::
|
|
96
|
+
|
|
97
|
+
import smartsheet
|
|
98
|
+
|
|
99
|
+
smart = smartsheet.Smartsheet()
|
|
100
|
+
|
|
101
|
+
# Build new row
|
|
102
|
+
new_row = smart.models.Row()
|
|
103
|
+
new_row.to_top = True
|
|
104
|
+
new_row.cells.append({
|
|
105
|
+
'column_id': 123456789,
|
|
106
|
+
'value': 'New Value'
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
# Add rows to sheet
|
|
110
|
+
response = smart.Sheets.add_rows(sheet_id, [new_row])
|
|
111
|
+
|
|
112
|
+
Working with Cells
|
|
113
|
+
~~~~~~~~~~~~~~~~~~
|
|
114
|
+
|
|
115
|
+
Update cell values::
|
|
116
|
+
|
|
117
|
+
import smartsheet
|
|
118
|
+
|
|
119
|
+
smart = smartsheet.Smartsheet()
|
|
120
|
+
|
|
121
|
+
# Build new cell value
|
|
122
|
+
new_cell = smart.models.Cell()
|
|
123
|
+
new_cell.column_id = 123456789
|
|
124
|
+
new_cell.value = 'Updated Value'
|
|
125
|
+
new_cell.strict = False
|
|
126
|
+
|
|
127
|
+
# Build the row to update
|
|
128
|
+
new_row = smart.models.Row()
|
|
129
|
+
new_row.id = 987654321
|
|
130
|
+
new_row.cells.append(new_cell)
|
|
131
|
+
|
|
132
|
+
# Update rows
|
|
133
|
+
response = smart.Sheets.update_rows(sheet_id, [new_row])
|
|
134
|
+
|
|
135
|
+
Additional Resources
|
|
136
|
+
--------------------
|
|
137
|
+
|
|
138
|
+
For more examples and detailed documentation:
|
|
139
|
+
|
|
140
|
+
* `Smartsheet Python SDK sample project <https://github.com/smartsheet-samples/python-read-write-sheet>`_
|
|
141
|
+
* `Smartsheet API Documentation <https://developers.smartsheet.com/api/smartsheet/introduction>`_ for dozens of Python SDK usage examples
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
API Resources
|
|
2
|
+
==================
|
|
3
|
+
|
|
4
|
+
Attachments
|
|
5
|
+
-----------------------------
|
|
6
|
+
|
|
7
|
+
.. automodule:: smartsheet.attachments
|
|
8
|
+
:members:
|
|
9
|
+
:undoc-members:
|
|
10
|
+
:show-inheritance:
|
|
11
|
+
|
|
12
|
+
Cells
|
|
13
|
+
-----------------------
|
|
14
|
+
|
|
15
|
+
.. automodule:: smartsheet.cells
|
|
16
|
+
:members:
|
|
17
|
+
:undoc-members:
|
|
18
|
+
:show-inheritance:
|
|
19
|
+
|
|
20
|
+
Contacts
|
|
21
|
+
--------------------------
|
|
22
|
+
|
|
23
|
+
.. automodule:: smartsheet.contacts
|
|
24
|
+
:members:
|
|
25
|
+
:undoc-members:
|
|
26
|
+
:show-inheritance:
|
|
27
|
+
|
|
28
|
+
Discussions
|
|
29
|
+
-----------------------------
|
|
30
|
+
|
|
31
|
+
.. automodule:: smartsheet.discussions
|
|
32
|
+
:members:
|
|
33
|
+
:undoc-members:
|
|
34
|
+
:show-inheritance:
|
|
35
|
+
|
|
36
|
+
Events
|
|
37
|
+
------------------------
|
|
38
|
+
|
|
39
|
+
.. automodule:: smartsheet.events
|
|
40
|
+
:members:
|
|
41
|
+
:undoc-members:
|
|
42
|
+
:show-inheritance:
|
|
43
|
+
|
|
44
|
+
Favorites
|
|
45
|
+
---------------------------
|
|
46
|
+
|
|
47
|
+
.. automodule:: smartsheet.favorites
|
|
48
|
+
:members:
|
|
49
|
+
:undoc-members:
|
|
50
|
+
:show-inheritance:
|
|
51
|
+
|
|
52
|
+
Folders
|
|
53
|
+
-------------------------
|
|
54
|
+
|
|
55
|
+
.. automodule:: smartsheet.folders
|
|
56
|
+
:members:
|
|
57
|
+
:undoc-members:
|
|
58
|
+
:show-inheritance:
|
|
59
|
+
|
|
60
|
+
Groups
|
|
61
|
+
------------------------
|
|
62
|
+
|
|
63
|
+
.. automodule:: smartsheet.groups
|
|
64
|
+
:members:
|
|
65
|
+
:undoc-members:
|
|
66
|
+
:show-inheritance:
|
|
67
|
+
|
|
68
|
+
Home
|
|
69
|
+
----------------------
|
|
70
|
+
|
|
71
|
+
.. automodule:: smartsheet.home
|
|
72
|
+
:members:
|
|
73
|
+
:undoc-members:
|
|
74
|
+
:show-inheritance:
|
|
75
|
+
|
|
76
|
+
Images
|
|
77
|
+
------------------------
|
|
78
|
+
|
|
79
|
+
.. automodule:: smartsheet.images
|
|
80
|
+
:members:
|
|
81
|
+
:undoc-members:
|
|
82
|
+
:show-inheritance:
|
|
83
|
+
|
|
84
|
+
Passthrough Mode
|
|
85
|
+
-----------------------------
|
|
86
|
+
|
|
87
|
+
.. automodule:: smartsheet.passthrough
|
|
88
|
+
:members:
|
|
89
|
+
:undoc-members:
|
|
90
|
+
:show-inheritance:
|
|
91
|
+
|
|
92
|
+
Reports
|
|
93
|
+
-------------------------
|
|
94
|
+
|
|
95
|
+
.. automodule:: smartsheet.reports
|
|
96
|
+
:members:
|
|
97
|
+
:undoc-members:
|
|
98
|
+
:show-inheritance:
|
|
99
|
+
|
|
100
|
+
Search
|
|
101
|
+
------------------------
|
|
102
|
+
|
|
103
|
+
.. automodule:: smartsheet.search
|
|
104
|
+
:members:
|
|
105
|
+
:undoc-members:
|
|
106
|
+
:show-inheritance:
|
|
107
|
+
|
|
108
|
+
Server
|
|
109
|
+
------------------------
|
|
110
|
+
|
|
111
|
+
.. automodule:: smartsheet.server
|
|
112
|
+
:members:
|
|
113
|
+
:undoc-members:
|
|
114
|
+
:show-inheritance:
|
|
115
|
+
|
|
116
|
+
Sharing
|
|
117
|
+
-------------------------
|
|
118
|
+
|
|
119
|
+
.. automodule:: smartsheet.sharing
|
|
120
|
+
:members:
|
|
121
|
+
:undoc-members:
|
|
122
|
+
:show-inheritance:
|
|
123
|
+
|
|
124
|
+
Sheets
|
|
125
|
+
------------------------
|
|
126
|
+
|
|
127
|
+
.. automodule:: smartsheet.sheets
|
|
128
|
+
:members:
|
|
129
|
+
:undoc-members:
|
|
130
|
+
:show-inheritance:
|
|
131
|
+
|
|
132
|
+
Dashboards (sights)
|
|
133
|
+
------------------------
|
|
134
|
+
|
|
135
|
+
.. automodule:: smartsheet.sights
|
|
136
|
+
:members:
|
|
137
|
+
:undoc-members:
|
|
138
|
+
:show-inheritance:
|
|
139
|
+
|
|
140
|
+
Smartsheet
|
|
141
|
+
----------------------------
|
|
142
|
+
|
|
143
|
+
.. automodule:: smartsheet.smartsheet
|
|
144
|
+
:members:
|
|
145
|
+
:undoc-members:
|
|
146
|
+
:show-inheritance:
|
|
147
|
+
|
|
148
|
+
Templates
|
|
149
|
+
---------------------------
|
|
150
|
+
|
|
151
|
+
.. automodule:: smartsheet.templates
|
|
152
|
+
:members:
|
|
153
|
+
:undoc-members:
|
|
154
|
+
:show-inheritance:
|
|
155
|
+
|
|
156
|
+
Token
|
|
157
|
+
-----------------------
|
|
158
|
+
|
|
159
|
+
.. automodule:: smartsheet.token
|
|
160
|
+
:members:
|
|
161
|
+
:undoc-members:
|
|
162
|
+
:show-inheritance:
|
|
163
|
+
|
|
164
|
+
Users
|
|
165
|
+
-----------------------
|
|
166
|
+
|
|
167
|
+
.. automodule:: smartsheet.users
|
|
168
|
+
:members:
|
|
169
|
+
:undoc-members:
|
|
170
|
+
:show-inheritance:
|
|
171
|
+
|
|
172
|
+
Webhooks
|
|
173
|
+
--------------------------
|
|
174
|
+
|
|
175
|
+
.. automodule:: smartsheet.webhooks
|
|
176
|
+
:members:
|
|
177
|
+
:undoc-members:
|
|
178
|
+
:show-inheritance:
|
|
179
|
+
|
|
180
|
+
Workspaces
|
|
181
|
+
----------------------------
|
|
182
|
+
|
|
183
|
+
.. automodule:: smartsheet.workspaces
|
|
184
|
+
:members:
|
|
185
|
+
:undoc-members:
|
|
186
|
+
:show-inheritance:
|