def marshal_str(self, obj): try: obj = self.normalize_str(obj) root = self.library.Element('str') root.text = obj return self.library.tostring(root) except Exception as e: raise error.MarshalError(e)
def marshal_dict(self, obj): try: if PY2: # pragma: no branch py2 obj = self._normalize_dict2(obj) for value in obj.values(): if isinstance(value, (list, dict)): raise error.MarshalError("No nested dictionaries!") if PY3: # pragma: py3 return self.urlencode(obj, doseq=True).encode('utf-8') else: # pragma: py2 return self.urlencode(obj, doseq=True) except error.MarshalError: raise except Exception as e: raise error.MarshalError(e)
def marshal_list(self, obj): try: if PY2: # pragma: py2 obj = self._normalize_list2(obj) return self.urlencode({'list': obj}, doseq=True) else: # pragma: py3 return self.urlencode({'list': obj}, doseq=True).encode('utf-8') except Exception as e: raise error.MarshalError(e)
def marshal_str(self, obj): try: if PY2: # pragma: py2 obj = self._normalize_str2(obj) return self.urlencode({'str': obj}) else: # pragma: py3 return self.urlencode({'str': obj}).encode('utf-8') except Exception as e: raise error.MarshalError(e)
def _marshal_list(self, obj, key=None): try: obj = self.normalize_list(obj) root = self.library.Element('list') if key is not None: root.attrib['key'] = key for value in obj: elem = self.library.Element('str') elem.text = value root.append(elem) return root except Exception as e: raise error.MarshalError(e)
def marshal(self, obj): """Shortcut for marshalling just any object. .. NOTE:: If you know the type of **obj** in advance, you should use the marshal_* methods directly for improved speed. :param obj: The object to marshall. :return: The marshalled representation of the object. :rtype: str :raise error.MarshalError: If marshalling goes wrong in any way. """ if isinstance(obj, string_types): func_name = 'marshal_str' else: func_name = 'marshal_%s' % (obj.__class__.__name__) try: func = getattr(self, func_name) return func(obj) except error.MarshalError as e: raise except Exception as e: raise error.MarshalError(e)
def marshal_dict(self, obj): try: s = self.library.tostring(self._marshal_dict(obj)) return s except Exception as e: raise error.MarshalError(e)
def marshal_list(self, obj): try: return self._marshal_list(obj) except Exception as e: raise error.MarshalError(e)
def marshal_list(self, obj): try: return self.library.dumps(self.normalize_list(obj), protocol=self.PROTOCOL) except Exception as e: raise error.MarshalError(str(e))
def marshal_str(self, obj): try: return self.library.packb(self.normalize_str(obj)) except Exception as e: raise error.MarshalError(e)
def marshal_str(self, obj): try: return self.marshal_cast(self.dumps({'s': self.normalize_str(obj), })) except Exception as e: raise error.MarshalError(e)
def marshal_dict(self, obj): try: dumped = self.library.dumps(obj, separators=self.SEPARATORS, cls=self.encoder) return dumped.encode('utf-8') except Exception as e: raise error.MarshalError(e)