def _deserialize(self, value): if utils.is_indexable_but_not_string(value) and not isinstance(value, dict): # Convert all instances in typed list to container type return [self.container.deserialize(each) for each in value] if value is None: return [] return [self.container.deserialize(value)]
def _serialize(self, value, attr, obj): if utils.is_indexable_but_not_string(value) and not isinstance(value, dict): return [self.container.serialize(idx, value) for idx in range(len(value))] if value is None: return self.default return [self.container.serialize(attr, obj)]
def _get_value_for_key(key, obj, default): if utils.is_indexable_but_not_string(obj): try: return obj[key] except KeyError: return default if hasattr(obj, key): return getattr(obj, key) return default
def _get_value_for_key(key, obj, default): if utils.is_indexable_but_not_string(obj): try: return obj[key] except KeyError: return default if hasattr(obj, key): return getattr(obj, key) return default
def _get_value_for_key(key, obj, default): if isinstance(key, basestring) and hasattr(obj, key): return getattr(obj, key) if utils.is_indexable_but_not_string(obj): try: return obj[key] except KeyError: return default return default
def output(self, key, data): value = self.get_value(key, data) # we cannot really test for external dict behavior if utils.is_indexable_but_not_string(value) and not isinstance(value, dict): # Convert all instances in typed list to container type return [self.container.output(idx, value) for idx in range(len(value))] if value is None: return self.default return [marshal(value, self.container.nested)]
def output(self, key, data): value = self.get_value(key, data) # we cannot really test for external dict behavior if utils.is_indexable_but_not_string(value) and not isinstance( value, dict): # Convert all instances in typed list to container type return [ self.container.output(idx, value) for idx in range(len(value)) ] if value is None: return self.default return [marshal(value, self.container.nested)]