As discussed in design reviews, we've asserted that the TableEntity object will only be used as an output, and unlikely to be imported by customers to use as input. It should therefore be updated accordingly:
- Remove the
_metadata key from inside the dictionary - this could conflict with a real entity property.
- Make sure metadata is read-only.
- Remove the custom attribute access from the object, so that properties within can only be accessed as dict key/values.
- Update input type hints to just
Mapping[str, PrimitiveTypes]
- Look at whether we can insert TableEntity deserialization into the pipeline so as to avoid an extra dictionary construction (this is a perf consideration, and can come post-release).
As discussed in design reviews, we've asserted that the TableEntity object will only be used as an output, and unlikely to be imported by customers to use as input. It should therefore be updated accordingly:
_metadatakey from inside the dictionary - this could conflict with a real entity property.Mapping[str, PrimitiveTypes]