code: def _manual_repartition(self, axis, repartition_func, **kwargs):
          
          func = self._prepare_method(repartition_func, **kwargs)
          return self.data.manual_shuffle(axis, func)
docs: This method applies all manual partitioning functions.
  
          Args:
              axis: The axis to shuffle data along.
              repartition_func: The function used to repartition data.
  
          Returns:
              A `BaseFrameManager` object.