Skip to content
This repository has been archived by the owner on Jan 9, 2023. It is now read-only.
Scott Wimer edited this page Feb 9, 2015 · 2 revisions

Smartsheet Python SDK

Eventually, I'm after full coverage of the Smartsheet API accessible via a nice Python SDK. We're quite a long ways from that today.

For now, this wiki is focused on discussions of design choices that need to be made.

Cascading Changes -- Doing the "Right Thing" on Save

In order to make dynamic editing of a sheet simple and performant (for the user of the SDK), it is my intent for the SDK to accumulate changes, and then commit them when .save() is called. If .save() is called at "sheet-level", then any changed records will be saved. However, if several Rows in a sheet have been changed, but .save() is called on a single one of those Rows, only the Cells on that Row will be saved. Likewise, if many Cells have been changed, but .save() is only called on one of them, then only that Cell will be saved.

To make this work, the Sheet, SheetRows, Row, and Cell objects all need to have some notion of whether or not they, or an object "contained" by them, has been changed and should be stored when .save() is called. Notionally, I'm using a dirty flag to track this.

Clone this wiki locally