smartsheet-python-sdk 4.0.2__tar.gz → 4.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/PKG-INFO +1 -1
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/folders.py +21 -1
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/__init__.py +6 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/publish_accessible_by.py +1 -0
- smartsheet_python_sdk-4.1.0/smartsheet/models/folder_path_node.py +67 -0
- smartsheet_python_sdk-4.1.0/smartsheet/models/path_leaf.py +53 -0
- smartsheet_python_sdk-4.1.0/smartsheet/models/path_node.py +84 -0
- smartsheet_python_sdk-4.1.0/smartsheet/models/report_path_node.py +72 -0
- smartsheet_python_sdk-4.1.0/smartsheet/models/sheet_path_node.py +72 -0
- smartsheet_python_sdk-4.1.0/smartsheet/models/sight_path_node.py +72 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/reports.py +21 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/sheets.py +21 -1
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/sights.py +21 -1
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/version.py +2 -2
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/.gitignore +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/LICENSE.md +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/NOTICE +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/README.md +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/pyproject.toml +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/__init__.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/attachments.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/cells.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/contacts.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/discussions.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/events.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/exceptions.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/favorites.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/groups.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/home.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/images.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/access_token.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/account.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/alternate_email.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/asset_share.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/asset_shares_paginated_result.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/attachment.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/auto_number_format.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/automation_action.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/automation_rule.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/boolean_object_value.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/bulk_item_failure.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/bulk_item_result.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/cell.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/cell_data_item.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/cell_history.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/cell_link.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/cell_link_widget_content.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/chart_widget_content.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/column.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/comment.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/contact.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/contact_object_value.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/container_destination.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/copy_or_move_row_destination.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/copy_or_move_row_directive.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/copy_or_move_row_result.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/create_report_request.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/create_report_result.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/criteria.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/cross_sheet_reference.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/currency.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/date_object_value.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/datetime_object_value.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/discussion.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/downloaded_file.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/duration.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/email.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/__init__.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/access_level.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/asset_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/attachment_parent_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/attachment_sub_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/attachment_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/automation_action_frequency.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/automation_action_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/automation_rule_disabled_reason.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/cell_link_status.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/column_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/criteria_target.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/cross_sheet_reference_status.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/currency_code.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/day_descriptors.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/day_ordinal.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/event_action.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/event_object_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/event_source.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/favorite_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/global_template.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/operator.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/paper_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/predecessor_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/report_aggregation_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/report_asset_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/report_boolean_operator.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/report_destination_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/report_filter_operator.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/schedule_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/seat_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/share_scope.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/share_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/sheet_email_format.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/sheet_filter_operator.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/sheet_filter_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/sort_direction.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/symbol.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/system_column_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/update_request_status.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/user_status.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/enums/widget_type.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/error.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/error_result.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/event.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/event_result.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/explicit_null.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/favorite.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/folder.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/font_family.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/format_details.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/format_tables.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/group.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/group_member.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/home.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/hyperlink.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/image.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/image_url.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/image_url_map.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/image_widget_content.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/index_result.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/json_object.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/multi_contact_object_value.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/multi_picklist_object_value.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/multi_row_email.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/number_object_value.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/o_auth_error.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/object_value.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/paginated_children_result.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/predecessor.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/predecessor_list.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/primitive_object_value.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/profile_image.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/project_settings.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/recipient.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_cell.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_column.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_column_identifier.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_definition.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_destination.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_filter_criterion.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_filter_expression.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_grouping_criterion.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_publish.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_row.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_scope_inclusion.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_sorting_criterion.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_summarizing_criterion.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/report_widget_content.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/result.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/row.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/row_email.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/row_mapping.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/schedule.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/scope.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/search_result.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/search_result_item.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/selection_range.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/sent_update_request.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/server_info.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/sheet.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/sheet_email.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/sheet_filter.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/sheet_filter_details.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/sheet_publish.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/sheet_summary.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/sheet_user_permissions.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/sheet_user_settings.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/shortcut_data_item.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/shortcut_widget_content.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/sight.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/sight_publish.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/sort_criterion.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/sort_specifier.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/source.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/string_object_value.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/summary_field.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/template.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/title_rich_text_widget_content.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/token_paginated_result.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/update_request.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/user.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/user_model.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/user_plan.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/user_profile.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/version.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/web_content_widget_content.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/webhook.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/webhook_secret.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/webhook_stats.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/webhook_subscope.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/widget.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/widget_content.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/widget_hyperlink.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/workspace.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/object_value.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/passthrough.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/search.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/server.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/session.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/sharing.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/smartsheet.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/token.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/types.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/users.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/util.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/webhooks.py +0 -0
- {smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/workspaces.py +0 -0
|
@@ -23,7 +23,7 @@ import logging
|
|
|
23
23
|
import os.path
|
|
24
24
|
|
|
25
25
|
from .util import fresh_operation
|
|
26
|
-
from .models import Error, Folder, PaginatedChildrenResult, Result, Sheet
|
|
26
|
+
from .models import Error, Folder, FolderPathNode, PaginatedChildrenResult, Result, Sheet
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class Folders:
|
|
@@ -245,6 +245,26 @@ class Folders:
|
|
|
245
245
|
|
|
246
246
|
return response
|
|
247
247
|
|
|
248
|
+
def get_folder_path(self, folder_id: int) -> Union[FolderPathNode, Error]:
|
|
249
|
+
"""Get the hierarchical path of a folder.
|
|
250
|
+
|
|
251
|
+
Args:
|
|
252
|
+
folder_id (int): Folder ID
|
|
253
|
+
|
|
254
|
+
Returns:
|
|
255
|
+
Union[FolderPathNode, Error]: A FolderPathNode object describing the folder's
|
|
256
|
+
location, or an Error object if the request fails.
|
|
257
|
+
"""
|
|
258
|
+
_op = fresh_operation("get_folder_path")
|
|
259
|
+
_op["method"] = "GET"
|
|
260
|
+
_op["path"] = "/folders/" + str(folder_id) + "/path"
|
|
261
|
+
|
|
262
|
+
expected = "FolderPathNode"
|
|
263
|
+
prepped_request = self._base.prepare_request(_op)
|
|
264
|
+
response = self._base.request(prepped_request, expected, _op)
|
|
265
|
+
|
|
266
|
+
return response
|
|
267
|
+
|
|
248
268
|
def get_folder_children(
|
|
249
269
|
self,
|
|
250
270
|
folder_id,
|
|
@@ -131,6 +131,12 @@ from .webhook_subscope import WebhookSubscope
|
|
|
131
131
|
from .widget import Widget
|
|
132
132
|
from .widget_content import WidgetContent
|
|
133
133
|
from .workspace import Workspace
|
|
134
|
+
from .path_node import PathNode
|
|
135
|
+
from .path_leaf import PathLeaf
|
|
136
|
+
from .folder_path_node import FolderPathNode
|
|
137
|
+
from .sheet_path_node import SheetPathNode
|
|
138
|
+
from .report_path_node import ReportPathNode
|
|
139
|
+
from .sight_path_node import SightPathNode
|
|
134
140
|
from .user_plan import UserPlan
|
|
135
141
|
from .asset_shares_paginated_result import AssetSharesPaginatedResult
|
|
136
142
|
from .asset_share import AssetShare
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
|
|
2
|
+
# Smartsheet Python SDK.
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2018 Smartsheet.com, Inc.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License"): you may
|
|
7
|
+
# not use this file except in compliance with the License. You may obtain
|
|
8
|
+
# a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
14
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
15
|
+
# License for the specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
|
|
18
|
+
from __future__ import absolute_import
|
|
19
|
+
|
|
20
|
+
from ..types import TypedList
|
|
21
|
+
from ..util import deserialize
|
|
22
|
+
from .path_node import PathNode
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class FolderPathNode(PathNode):
|
|
26
|
+
|
|
27
|
+
"""Node in a folder path response. Contains recursive folders leading to the target folder."""
|
|
28
|
+
|
|
29
|
+
def __init__(self, props=None, base_obj=None):
|
|
30
|
+
"""Initialize the FolderPathNode model."""
|
|
31
|
+
super().__init__(props=None, base_obj=base_obj)
|
|
32
|
+
|
|
33
|
+
self._folders = TypedList(FolderPathNode)
|
|
34
|
+
|
|
35
|
+
if props:
|
|
36
|
+
deserialize(self, props)
|
|
37
|
+
|
|
38
|
+
@property
|
|
39
|
+
def folders(self):
|
|
40
|
+
return self._folders
|
|
41
|
+
|
|
42
|
+
@folders.setter
|
|
43
|
+
def folders(self, value):
|
|
44
|
+
self._folders.load(value)
|
|
45
|
+
|
|
46
|
+
def get_leaf_folder(self):
|
|
47
|
+
"""Return the deepest FolderPathNode reachable from this node."""
|
|
48
|
+
if self.folders:
|
|
49
|
+
return self.folders[0].get_leaf_folder()
|
|
50
|
+
return self
|
|
51
|
+
|
|
52
|
+
def get_leaf_folder_path(self):
|
|
53
|
+
"""Return a Unix-style path string of folder names from this node to the target folder.
|
|
54
|
+
|
|
55
|
+
Unlike get_sheet_path/get_report_path/get_sight_path, this method returns the
|
|
56
|
+
deepest folder's name even when the root node has no name (e.g. a workspace root),
|
|
57
|
+
because the target IS a folder rather than an asset nested inside one. An empty
|
|
58
|
+
FolderPathNode (no id, no name, no children) returns an empty string.
|
|
59
|
+
|
|
60
|
+
Example: '/Workspace/Folder/TargetFolder'
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
if not self.name:
|
|
64
|
+
return None
|
|
65
|
+
if self.folders:
|
|
66
|
+
return f"/{self.name}{self.folders[0].get_leaf_folder_path()}"
|
|
67
|
+
return f"/{self.name}"
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
|
|
2
|
+
# Smartsheet Python SDK.
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2018 Smartsheet.com, Inc.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License"): you may
|
|
7
|
+
# not use this file except in compliance with the License. You may obtain
|
|
8
|
+
# a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
14
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
15
|
+
# License for the specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
|
|
18
|
+
from __future__ import absolute_import
|
|
19
|
+
|
|
20
|
+
from ..types import Timestamp
|
|
21
|
+
from ..util import deserialize
|
|
22
|
+
from .path_node import PathNode
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class PathLeaf(PathNode):
|
|
26
|
+
|
|
27
|
+
"""Terminal asset node in a Smartsheet path response (sheet, report, sight, or target folder)."""
|
|
28
|
+
|
|
29
|
+
def __init__(self, props=None, base_obj=None):
|
|
30
|
+
"""Initialize the PathLeaf model."""
|
|
31
|
+
super().__init__(props=None, base_obj=base_obj)
|
|
32
|
+
|
|
33
|
+
self._created_at = Timestamp()
|
|
34
|
+
self._modified_at = Timestamp()
|
|
35
|
+
|
|
36
|
+
if props:
|
|
37
|
+
deserialize(self, props)
|
|
38
|
+
|
|
39
|
+
@property
|
|
40
|
+
def created_at(self):
|
|
41
|
+
return self._created_at.value
|
|
42
|
+
|
|
43
|
+
@created_at.setter
|
|
44
|
+
def created_at(self, value):
|
|
45
|
+
self._created_at.value = value
|
|
46
|
+
|
|
47
|
+
@property
|
|
48
|
+
def modified_at(self):
|
|
49
|
+
return self._modified_at.value
|
|
50
|
+
|
|
51
|
+
@modified_at.setter
|
|
52
|
+
def modified_at(self, value):
|
|
53
|
+
self._modified_at.value = value
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
|
|
2
|
+
# Smartsheet Python SDK.
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2018 Smartsheet.com, Inc.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License"): you may
|
|
7
|
+
# not use this file except in compliance with the License. You may obtain
|
|
8
|
+
# a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
14
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
15
|
+
# License for the specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
|
|
18
|
+
from __future__ import absolute_import
|
|
19
|
+
|
|
20
|
+
from ..types import EnumeratedValue, Number, String, json
|
|
21
|
+
from ..util import deserialize, serialize
|
|
22
|
+
from .enums import AccessLevel
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class PathNode:
|
|
26
|
+
"""Base node in a Smartsheet path response (workspace root or intermediate folder)."""
|
|
27
|
+
|
|
28
|
+
def __init__(self, props=None, base_obj=None):
|
|
29
|
+
"""Initialize the PathNode model."""
|
|
30
|
+
self._base = None
|
|
31
|
+
if base_obj is not None:
|
|
32
|
+
self._base = base_obj
|
|
33
|
+
|
|
34
|
+
self._access_level = EnumeratedValue(AccessLevel)
|
|
35
|
+
self._id = Number()
|
|
36
|
+
self._name = String()
|
|
37
|
+
self._permalink = String()
|
|
38
|
+
|
|
39
|
+
if props:
|
|
40
|
+
deserialize(self, props)
|
|
41
|
+
|
|
42
|
+
self.request_response = None
|
|
43
|
+
self.__initialized = True
|
|
44
|
+
|
|
45
|
+
@property
|
|
46
|
+
def access_level(self):
|
|
47
|
+
return self._access_level
|
|
48
|
+
|
|
49
|
+
@access_level.setter
|
|
50
|
+
def access_level(self, value):
|
|
51
|
+
self._access_level.set(value)
|
|
52
|
+
|
|
53
|
+
@property
|
|
54
|
+
def id(self):
|
|
55
|
+
return self._id.value
|
|
56
|
+
|
|
57
|
+
@id.setter
|
|
58
|
+
def id(self, value):
|
|
59
|
+
self._id.value = value
|
|
60
|
+
|
|
61
|
+
@property
|
|
62
|
+
def name(self):
|
|
63
|
+
return self._name.value
|
|
64
|
+
|
|
65
|
+
@name.setter
|
|
66
|
+
def name(self, value):
|
|
67
|
+
self._name.value = value
|
|
68
|
+
|
|
69
|
+
@property
|
|
70
|
+
def permalink(self):
|
|
71
|
+
return self._permalink.value
|
|
72
|
+
|
|
73
|
+
@permalink.setter
|
|
74
|
+
def permalink(self, value):
|
|
75
|
+
self._permalink.value = value
|
|
76
|
+
|
|
77
|
+
def to_dict(self):
|
|
78
|
+
return serialize(self)
|
|
79
|
+
|
|
80
|
+
def to_json(self):
|
|
81
|
+
return json.dumps(self.to_dict())
|
|
82
|
+
|
|
83
|
+
def __str__(self):
|
|
84
|
+
return self.to_json()
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
|
|
2
|
+
# Smartsheet Python SDK.
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2018 Smartsheet.com, Inc.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License"): you may
|
|
7
|
+
# not use this file except in compliance with the License. You may obtain
|
|
8
|
+
# a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
14
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
15
|
+
# License for the specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
|
|
18
|
+
from __future__ import absolute_import
|
|
19
|
+
|
|
20
|
+
from ..types import TypedList
|
|
21
|
+
from ..util import deserialize
|
|
22
|
+
from .path_leaf import PathLeaf
|
|
23
|
+
from .path_node import PathNode
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class ReportPathNode(PathNode):
|
|
27
|
+
|
|
28
|
+
"""Node in a report path response. Contains recursive folders leading to the target report."""
|
|
29
|
+
|
|
30
|
+
def __init__(self, props=None, base_obj=None):
|
|
31
|
+
"""Initialize the ReportPathNode model."""
|
|
32
|
+
super().__init__(props=None, base_obj=base_obj)
|
|
33
|
+
|
|
34
|
+
self._folders = TypedList(ReportPathNode)
|
|
35
|
+
self._reports = TypedList(PathLeaf)
|
|
36
|
+
|
|
37
|
+
if props:
|
|
38
|
+
deserialize(self, props)
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def folders(self):
|
|
42
|
+
return self._folders
|
|
43
|
+
|
|
44
|
+
@folders.setter
|
|
45
|
+
def folders(self, value):
|
|
46
|
+
self._folders.load(value)
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def reports(self):
|
|
50
|
+
return self._reports
|
|
51
|
+
|
|
52
|
+
@reports.setter
|
|
53
|
+
def reports(self, value):
|
|
54
|
+
self._reports.load(value)
|
|
55
|
+
|
|
56
|
+
def get_leaf_report(self):
|
|
57
|
+
"""Return the target PathLeaf report, or None if not reachable."""
|
|
58
|
+
if self.reports:
|
|
59
|
+
return self.reports[0]
|
|
60
|
+
if self.folders:
|
|
61
|
+
return self.folders[0].get_leaf_report()
|
|
62
|
+
return None
|
|
63
|
+
|
|
64
|
+
def get_leaf_report_path(self):
|
|
65
|
+
"""Return a Unix-style path string from this node to the target report.
|
|
66
|
+
Example: '/Workspace/Folder/Report'
|
|
67
|
+
"""
|
|
68
|
+
if self.reports:
|
|
69
|
+
return f"/{self.name}/{self.reports[0].name}"
|
|
70
|
+
if self.folders:
|
|
71
|
+
return f"/{self.name}{self.folders[0].get_leaf_report_path()}"
|
|
72
|
+
return None
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
|
|
2
|
+
# Smartsheet Python SDK.
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2018 Smartsheet.com, Inc.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License"): you may
|
|
7
|
+
# not use this file except in compliance with the License. You may obtain
|
|
8
|
+
# a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
14
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
15
|
+
# License for the specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
|
|
18
|
+
from __future__ import absolute_import
|
|
19
|
+
|
|
20
|
+
from ..types import TypedList
|
|
21
|
+
from ..util import deserialize
|
|
22
|
+
from .path_leaf import PathLeaf
|
|
23
|
+
from .path_node import PathNode
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class SheetPathNode(PathNode):
|
|
27
|
+
|
|
28
|
+
"""Node in a sheet path response. Contains recursive folders leading to the target sheet."""
|
|
29
|
+
|
|
30
|
+
def __init__(self, props=None, base_obj=None):
|
|
31
|
+
"""Initialize the SheetPathNode model."""
|
|
32
|
+
super().__init__(props=None, base_obj=base_obj)
|
|
33
|
+
|
|
34
|
+
self._folders = TypedList(SheetPathNode)
|
|
35
|
+
self._sheets = TypedList(PathLeaf)
|
|
36
|
+
|
|
37
|
+
if props:
|
|
38
|
+
deserialize(self, props)
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def folders(self):
|
|
42
|
+
return self._folders
|
|
43
|
+
|
|
44
|
+
@folders.setter
|
|
45
|
+
def folders(self, value):
|
|
46
|
+
self._folders.load(value)
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def sheets(self):
|
|
50
|
+
return self._sheets
|
|
51
|
+
|
|
52
|
+
@sheets.setter
|
|
53
|
+
def sheets(self, value):
|
|
54
|
+
self._sheets.load(value)
|
|
55
|
+
|
|
56
|
+
def get_leaf_sheet(self):
|
|
57
|
+
"""Return the target PathLeaf sheet, or None if not reachable."""
|
|
58
|
+
if self.sheets:
|
|
59
|
+
return self.sheets[0]
|
|
60
|
+
if self.folders:
|
|
61
|
+
return self.folders[0].get_leaf_sheet()
|
|
62
|
+
return None
|
|
63
|
+
|
|
64
|
+
def get_leaf_sheet_path(self):
|
|
65
|
+
"""Return a Unix-style path string from this node to the target sheet.
|
|
66
|
+
Example: '/Workspace/Folder/Sheet'
|
|
67
|
+
"""
|
|
68
|
+
if self.sheets:
|
|
69
|
+
return f"/{self.name}/{self.sheets[0].name}"
|
|
70
|
+
if self.folders:
|
|
71
|
+
return f"/{self.name}{self.folders[0].get_leaf_sheet_path()}"
|
|
72
|
+
return None
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
|
|
2
|
+
# Smartsheet Python SDK.
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2018 Smartsheet.com, Inc.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License"): you may
|
|
7
|
+
# not use this file except in compliance with the License. You may obtain
|
|
8
|
+
# a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
14
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
15
|
+
# License for the specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
|
|
18
|
+
from __future__ import absolute_import
|
|
19
|
+
|
|
20
|
+
from ..types import TypedList
|
|
21
|
+
from ..util import deserialize
|
|
22
|
+
from .path_leaf import PathLeaf
|
|
23
|
+
from .path_node import PathNode
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class SightPathNode(PathNode):
|
|
27
|
+
|
|
28
|
+
"""Node in a sight path response. Contains recursive folders leading to the target sight."""
|
|
29
|
+
|
|
30
|
+
def __init__(self, props=None, base_obj=None):
|
|
31
|
+
"""Initialize the SightPathNode model."""
|
|
32
|
+
super().__init__(props=None, base_obj=base_obj)
|
|
33
|
+
|
|
34
|
+
self._folders = TypedList(SightPathNode)
|
|
35
|
+
self._sights = TypedList(PathLeaf)
|
|
36
|
+
|
|
37
|
+
if props:
|
|
38
|
+
deserialize(self, props)
|
|
39
|
+
|
|
40
|
+
@property
|
|
41
|
+
def folders(self):
|
|
42
|
+
return self._folders
|
|
43
|
+
|
|
44
|
+
@folders.setter
|
|
45
|
+
def folders(self, value):
|
|
46
|
+
self._folders.load(value)
|
|
47
|
+
|
|
48
|
+
@property
|
|
49
|
+
def sights(self):
|
|
50
|
+
return self._sights
|
|
51
|
+
|
|
52
|
+
@sights.setter
|
|
53
|
+
def sights(self, value):
|
|
54
|
+
self._sights.load(value)
|
|
55
|
+
|
|
56
|
+
def get_leaf_sight(self):
|
|
57
|
+
"""Return the target PathLeaf sight, or None if not reachable."""
|
|
58
|
+
if self.sights:
|
|
59
|
+
return self.sights[0]
|
|
60
|
+
if self.folders:
|
|
61
|
+
return self.folders[0].get_leaf_sight()
|
|
62
|
+
return None
|
|
63
|
+
|
|
64
|
+
def get_leaf_sight_path(self):
|
|
65
|
+
"""Return a Unix-style path string from this node to the target sight.
|
|
66
|
+
Example: '/Workspace/Folder/Sight'
|
|
67
|
+
"""
|
|
68
|
+
if self.sights:
|
|
69
|
+
return f"/{self.name}/{self.sights[0].name}"
|
|
70
|
+
if self.folders:
|
|
71
|
+
return f"/{self.name}{self.folders[0].get_leaf_sight_path()}"
|
|
72
|
+
return None
|
|
@@ -35,6 +35,7 @@ from .models import (
|
|
|
35
35
|
ReportDefinition,
|
|
36
36
|
ReportPublish,
|
|
37
37
|
ReportScopeInclusion,
|
|
38
|
+
ReportPathNode,
|
|
38
39
|
Result,
|
|
39
40
|
)
|
|
40
41
|
|
|
@@ -160,6 +161,26 @@ class Reports:
|
|
|
160
161
|
|
|
161
162
|
return response
|
|
162
163
|
|
|
164
|
+
def get_report_path(self, report_id: int) -> Union[ReportPathNode, Error]:
|
|
165
|
+
"""Get the hierarchical path of a report.
|
|
166
|
+
|
|
167
|
+
Args:
|
|
168
|
+
report_id (int): Report ID
|
|
169
|
+
|
|
170
|
+
Returns:
|
|
171
|
+
Union[ReportPathNode, Error]: A ReportPathNode object describing the report's
|
|
172
|
+
location, or an Error object if the request fails.
|
|
173
|
+
"""
|
|
174
|
+
_op = fresh_operation("get_report_path")
|
|
175
|
+
_op["method"] = "GET"
|
|
176
|
+
_op["path"] = "/reports/" + str(report_id) + "/path"
|
|
177
|
+
|
|
178
|
+
expected = "ReportPathNode"
|
|
179
|
+
prepped_request = self._base.prepare_request(_op)
|
|
180
|
+
response = self._base.request(prepped_request, expected, _op)
|
|
181
|
+
|
|
182
|
+
return response
|
|
183
|
+
|
|
163
184
|
def get_report_as_csv(self, report_id, download_path, alternate_file_name=None) -> Union[DownloadedFile, Error]:
|
|
164
185
|
"""Get the specified Report as a CSV file.
|
|
165
186
|
|
|
@@ -27,7 +27,7 @@ import six
|
|
|
27
27
|
from .util import fresh_operation
|
|
28
28
|
from .models import AutomationRule, BulkItemResult, Column, CopyOrMoveRowResult, CrossSheetReference, DownloadedFile, \
|
|
29
29
|
IndexResult, NumberObjectValue, Result, Row, SearchResult, SentUpdateRequest, Sheet, SheetFilter, \
|
|
30
|
-
SheetPublish, SheetSummary, SummaryField, UpdateRequest, Version, Error
|
|
30
|
+
SheetPathNode, SheetPublish, SheetSummary, SummaryField, UpdateRequest, Version, Error
|
|
31
31
|
from .types import TypedList
|
|
32
32
|
from .util import deprecated
|
|
33
33
|
|
|
@@ -523,6 +523,26 @@ class Sheets:
|
|
|
523
523
|
|
|
524
524
|
return response
|
|
525
525
|
|
|
526
|
+
def get_sheet_path(self, sheet_id: int) -> Union[SheetPathNode, Error]:
|
|
527
|
+
"""Get the hierarchical path of a sheet.
|
|
528
|
+
|
|
529
|
+
Args:
|
|
530
|
+
sheet_id (int): Sheet ID
|
|
531
|
+
|
|
532
|
+
Returns:
|
|
533
|
+
Union[SheetPathNode, Error]: A SheetPathNode object describing the sheet's
|
|
534
|
+
location, or an Error object if the request fails.
|
|
535
|
+
"""
|
|
536
|
+
_op = fresh_operation("get_sheet_path")
|
|
537
|
+
_op["method"] = "GET"
|
|
538
|
+
_op["path"] = "/sheets/" + str(sheet_id) + "/path"
|
|
539
|
+
|
|
540
|
+
expected = "SheetPathNode"
|
|
541
|
+
prepped_request = self._base.prepare_request(_op)
|
|
542
|
+
response = self._base.request(prepped_request, expected, _op)
|
|
543
|
+
|
|
544
|
+
return response
|
|
545
|
+
|
|
526
546
|
def get_sheet_as_csv(self, sheet_id, download_path, alternate_file_name=None) -> Union[DownloadedFile, Error]:
|
|
527
547
|
"""Get the specified Sheet as a CSV file.
|
|
528
548
|
|
|
@@ -19,7 +19,7 @@ import logging
|
|
|
19
19
|
from typing import Optional, Union
|
|
20
20
|
|
|
21
21
|
from .util import fresh_operation
|
|
22
|
-
from .models import Error, Result, Sight, SightPublish, TokenPaginatedResult
|
|
22
|
+
from .models import Error, Result, Sight, SightPathNode, SightPublish, TokenPaginatedResult
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
class Sights:
|
|
@@ -88,6 +88,26 @@ class Sights:
|
|
|
88
88
|
|
|
89
89
|
return response
|
|
90
90
|
|
|
91
|
+
def get_sight_path(self, sight_id: int) -> Union[SightPathNode, Error]:
|
|
92
|
+
"""Get the hierarchical path of a sight.
|
|
93
|
+
|
|
94
|
+
Args:
|
|
95
|
+
sight_id (int): Sight ID
|
|
96
|
+
|
|
97
|
+
Returns:
|
|
98
|
+
Union[SightPathNode, Error]: A SightPathNode object describing the Sight's
|
|
99
|
+
location, or an Error object if the request fails.
|
|
100
|
+
"""
|
|
101
|
+
_op = fresh_operation("get_sight_path")
|
|
102
|
+
_op["method"] = "GET"
|
|
103
|
+
_op["path"] = "/sights/" + str(sight_id) + "/path"
|
|
104
|
+
|
|
105
|
+
expected = "SightPathNode"
|
|
106
|
+
prepped_request = self._base.prepare_request(_op)
|
|
107
|
+
response = self._base.request(prepped_request, expected, _op)
|
|
108
|
+
|
|
109
|
+
return response
|
|
110
|
+
|
|
91
111
|
def update_sight(self, sight_id, sight_obj) -> Union[Result[Sight], Error]:
|
|
92
112
|
"""Updates the specified Sight.
|
|
93
113
|
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '4.0
|
|
22
|
-
__version_tuple__ = version_tuple = (4,
|
|
21
|
+
__version__ = version = '4.1.0'
|
|
22
|
+
__version_tuple__ = version_tuple = (4, 1, 0)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/access_token.py
RENAMED
|
File without changes
|
|
File without changes
|
{smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/alternate_email.py
RENAMED
|
File without changes
|
{smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/asset_share.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/auto_number_format.py
RENAMED
|
File without changes
|
{smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/automation_action.py
RENAMED
|
File without changes
|
{smartsheet_python_sdk-4.0.2 → smartsheet_python_sdk-4.1.0}/smartsheet/models/automation_rule.py
RENAMED
|
File without changes
|
|
File without changes
|