'Collect a dict mapping property names to their values.
This method *always* traverses the class hierarchy and includes
properties defined on any parent classes.
Non-serializable properties are skipped and property values are in
"serialized" format which may be slightly different from the values
you would normally read from the properties; the intent of this method
is to return the information needed to losslessly reconstitute the
object instance.
Args:
include_defaults (bool, optional) :
Whether to include properties that haven\'t been explicitly set
since the object was created. (default: True)
Returns:
dict : mapping from property names to their values'

def properties_with_values(self, include_defaults=True):

    return self.query_properties_with_values((lambda prop: prop.serialized), include_defaults)
