def unpack_value(self, v): if isinstance(v, basestring): return self.unpack_string(v) if isinstance(v, dict): return self.unpack_dict(v) if is_iterable(v): return self.unpack_list(v) if not is_primitive(v): raise InternalTypeError(v) return v
def pack_value(self, v): if isinstance(v, basestring): return u"s" + unicode(v) if isinstance(v, dict): return self.pack_dict(v) if is_iterable(v): return self.pack_list(v) if isinstance(v, Resource): return u"r" + unicode(v.identifier) if isinstance(v, Identifier): return u"i" + unicode(v) if not is_primitive(v): raise InternalTypeError(v) return v