code: def shuffle(self, func, num_splits=None, **kwargs):
          
          if num_splits is None:
              num_splits = len(self.list_of_blocks)
  
          args = [self.axis, func, num_splits, kwargs]
          args.extend(self.list_of_blocks)
          return [
              PyarrowOnRayFramePartition(obj)
              for obj in deploy_ray_axis_func._remote(args, num_return_vals=num_splits)
          ]
docs: Shuffle the order of the data in this axis based on the `func`.
  
          Extends `BaseFrameAxisPartition.shuffle`.
  
          :param func:
          :param num_splits:
          :param kwargs:
          :return: