docs: def malloc(self, key, shape, dtype):
          """Allocates a block of shared memory, and returns a numpy array whose data corresponds with that block.
  
          Args:
              key (str): The key to identify the block.
              shape (list of int): The shape of the numpy array to allocate.
              dtype (type): The numpy data type (e.g. np.float32).
  
          Returns:
              np.ndarray: The numpy array that is positioned on the shared memory.
          """
          if key not in self._memory or self._memory[key].shape != shape or self._memory[key].dtype != dtype:
              self._memory[key] = Shmem(key, shape, dtype, self._uuid)
  
          return self._memory[key].np_array