'Converts an entity into a list of string values.
Args:
entity: An entity to extract the properties from.
Returns:
A list of the properties of the entity.
Raises:
MissingPropertyError: if an expected field on the entity is missing.'

def __ExtractProperties(self, entity):

    encoding = []
    for (name, fn, default) in self.__properties:
        try:
            encoding.append(fn(entity[name]))
        except KeyError:
            if (name == '__key__'):
                encoding.append(fn(entity.key()))
            elif (default is None):
                raise MissingPropertyError(name)
            else:
                encoding.append(default)
    return encoding
