code: def assemble(self):
          
          first_block = ray.get(self.objectids[(0, ) * self.ndim])
          dtype = first_block.dtype
          result = np.zeros(self.shape, dtype=dtype)
          for index in np.ndindex(*self.num_blocks):
              lower = DistArray.compute_block_lower(index, self.shape)
              upper = DistArray.compute_block_upper(index, self.shape)
              result[[slice(l, u) for (l, u) in zip(lower, upper)]] = ray.get(
                  self.objectids[index])
          return result
docs: Assemble an array from a distributed array of object IDs.