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))
Exemple #10
0
 def marshal_str(self, obj):
     try:
         return self.library.packb(self.normalize_str(obj))
     except Exception as e:
         raise error.MarshalError(e)
Exemple #11
0
 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)
Exemple #12
0
 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)