예제 #1
0
 def wrapped_map_sent2recv(obj):
     if (not isinstance(obj, bytes)) or (obj != tools.YGG_MSG_EOF):
         field_units = testing_options.get('field_units', None)
         if field_units:
             if isinstance(obj, dict):
                 return {k: units.add_units(v, u, dtype=data2dtype(v))
                         for (k, v), u in zip(obj.items(), field_units)}
             elif isinstance(obj, (list, tuple)):
                 return [units.add_units(x, u, dtype=data2dtype(x))
                         for x, u in zip(obj, field_units)]
     return obj
예제 #2
0
 def map_sent2recv(self, obj):
     r"""Convert a sent object into a received one."""
     if not self.instance.is_eof(obj):
         field_units = self.testing_options.get('field_units', None)
         if field_units:
             if isinstance(obj, dict):
                 return {k: units.add_units(v, u, dtype=data2dtype(v))
                         for (k, v), u in zip(obj.items(), field_units)}
             elif isinstance(obj, (list, tuple)):
                 return [units.add_units(x, u, dtype=data2dtype(x))
                         for x, u in zip(obj, field_units)]
     return obj
예제 #3
0
    def func_deserialize(self, msg):
        r"""Deserialize a message.

        Args:
            msg: Message to be deserialized.

        Returns:
            obj: Deserialized message.

        """
        if self.format_str is None:
            raise RuntimeError("Format string is not defined.")
        if self.as_array:
            out = serialize.table_to_array(
                msg,
                self.format_str,
                use_astropy=self.use_astropy,
                names=self.get_field_names(as_bytes=True))
            out = self.datatype.coerce_type(out)
        else:
            out = list(serialize.process_message(msg, self.format_str))
        field_units = self.get_field_units()
        if field_units is not None:
            out = [
                units.add_units(x, u, dtype=data2dtype(x))
                for x, u in zip(out, field_units)
            ]
        return out