You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.