def deserialize_numpy(self, str, numpy):
     """
 unpack serialized message in str into this message instance using numpy for array types
 :param str: byte array of serialized message, ``str``
 :param numpy: numpy python module
 """
     try:
         if self.layout is None:
             self.layout = std_msgs.MultiArrayLayout()
         end = 0
         start = end
         end += 4
         (length, ) = _struct_I.unpack(str[start:end])
         self.layout.dim = []
         for i in range(0, length):
             val1 = std_msgs.MultiArrayDimension()
             start = end
             end += 4
             (length, ) = _struct_I.unpack(str[start:end])
             start = end
             end += length
             if python3:
                 val1.label = str[start:end].decode('utf-8')
             else:
                 val1.label = str[start:end]
             _x = val1
             start = end
             end += 8
             (
                 _x.size,
                 _x.stride,
             ) = _get_struct_2I().unpack(str[start:end])
             self.layout.dim.append(val1)
         start = end
         end += 4
         (self.layout.data_offset, ) = _get_struct_I().unpack(
             str[start:end])
         start = end
         end += 4
         (length, ) = _struct_I.unpack(str[start:end])
         pattern = '<%si' % length
         start = end
         end += struct.calcsize(pattern)
         self.data = numpy.frombuffer(str[start:end],
                                      dtype=numpy.int32,
                                      count=length)
         return self
     except struct.error as e:
         raise genpy.DeserializationError(e)  #most likely buffer underfill
    def __init__(self, *args, **kwds):
        """
    Constructor. Any message fields that are implicitly/explicitly
    set to None will be assigned a default value. The recommend
    use is keyword arguments as this is more robust to future message
    changes.  You cannot mix in-order arguments and keyword arguments.

    The available fields are:
       layout,data

    :param args: complete set of field values, in .msg order
    :param kwds: use keyword arguments corresponding to message field names
    to set specific fields.
    """
        if args or kwds:
            super(Int32MultiArray, self).__init__(*args, **kwds)
            #message fields cannot be None, assign default values for those that are
            if self.layout is None:
                self.layout = std_msgs.MultiArrayLayout()
            if self.data is None:
                self.data = []
        else:
            self.layout = std_msgs.MultiArrayLayout()
            self.data = []
 def deserialize(self, str):
     """
 unpack serialized message in str into this message instance
 :param str: byte array of serialized message, ``str``
 """
     try:
         if self.layout is None:
             self.layout = std_msgs.MultiArrayLayout()
         end = 0
         start = end
         end += 4
         (length, ) = _struct_I.unpack(str[start:end])
         self.layout.dim = []
         for i in range(0, length):
             val1 = std_msgs.MultiArrayDimension()
             start = end
             end += 4
             (length, ) = _struct_I.unpack(str[start:end])
             start = end
             end += length
             if python3:
                 val1.label = str[start:end].decode('utf-8')
             else:
                 val1.label = str[start:end]
             _x = val1
             start = end
             end += 8
             (
                 _x.size,
                 _x.stride,
             ) = _get_struct_2I().unpack(str[start:end])
             self.layout.dim.append(val1)
         start = end
         end += 4
         (self.layout.data_offset, ) = _get_struct_I().unpack(
             str[start:end])
         start = end
         end += 4
         (length, ) = _struct_I.unpack(str[start:end])
         start = end
         end += length
         self.data = str[start:end]
         return self
     except struct.error as e:
         raise genpy.DeserializationError(e)  #most likely buffer underfill