cc_dynamodb3 optimizes the set of changes when updating a DynamoDB Item by observing changes made to fields of the model via __setattr__(). But if a field is a 'compound' type, such as a Number Set, cc_dynamodb3 doesn't detect that the content of the set has changed. This results in the user of cc_dynamodb3 having to go through some gymnastics to ensure that __setattr__() gets invoked on the field itself just because the field's content changed.