def __getitem__(self, index): """ Override item access to convert types. """ value = super(SchemaAwareList, self).__getitem__(index) if isinstance(value, SchemaAware): return value items_schema = self.__class__.SCHEMA["items"] items_class = lookup(items_schema) if items_class is not None: value = items_class(value) self[index] = value return value
def __getitem__(self, key): """ Override item access to constuct model objects. """ value = super(SchemaAwareDict, self).__getitem__(key) if isinstance(value, SchemaAware): return value property_schema = self.property_schema(key) property_class = lookup(property_schema) if property_class is not None: value = property_class(value) self[key] = value return value