code: def extra_repr(self):
      return "{}(ratio {}, radius {}, radius_points {})".format(
          self.__class__.__name__,
          self._ratio,
          self._radius,
          self._num_points,
      )
  
file_path: torch-points3d/torch_points3d/modules/pointnet2/message_passing.py
imports: from torch_geometric.nn import PointConv
  from torch_points3d.core.base_conv.base_conv import *
  from torch_points3d.core.base_conv.message_passing import *
  from torch_points3d.core.common_modules.base_modules import *
  from torch_points3d.core.spatial_ops import FPSSampler, RandomSampler, MultiscaleRadiusNeighbourFinder
label_desc: Use image node_id 3 for calling the SAModule obj's underlying member method code with example usage: obj.extra_repr() and returns: str