def __setattr__(self, key, value):
if self._track_dirty_attributes and not key.startswith(u"<STR_LIT:_>"):<EOL><INDENT>self._dirty_attributes.add(key)<EOL><DEDENT>object.__setattr__(self, key, value)<EOL>
Magically track public attributes, so we can track what we need to flush to the Exchange store