code: def from_datasets(
      cls,
      train_dataset: Optional[Dataset] = None,
      val_dataset: Optional[Dataset] = None,
      test_dataset: Optional[Dataset] = None,
      predict_dataset: Optional[Dataset] = None,
      input_cls: Type[Input] = PointCloudObjectDetectorDatasetInput,
      transform: INPUT_TRANSFORM_TYPE = InputTransform,
      transform_kwargs: Optional[Dict] = None,
      **data_module_kwargs: Any,
  ) -> "PointCloudObjectDetectorData":
      ds_kw = {}
  
      return cls(
          input_cls(RunningStage.TRAINING, train_dataset, **ds_kw),
          input_cls(RunningStage.VALIDATING, val_dataset, **ds_kw),
          input_cls(RunningStage.TESTING, test_dataset, **ds_kw),
          input_cls(RunningStage.PREDICTING, predict_dataset, **ds_kw),
          transform=transform,
          transform_kwargs=transform_kwargs,
          **data_module_kwargs,
      )
  
file_path: lightning-flash/src/flash/pointcloud/detection/data.py
imports: from typing import Any, Dict, List, Optional, Type
  from torch.utils.data import Dataset
  from flash.core.data.data_module import DataModule
  from flash.core.data.io.input import BaseDataFormat, Input
  from flash.core.data.io.input_transform import InputTransform
  from flash.core.utilities.stability import beta
  from flash.core.utilities.stages import RunningStage
  from flash.core.utilities.types import INPUT_TRANSFORM_TYPE
  from flash.pointcloud.detection.input import PointCloudObjectDetectorDatasetInput
  from flash.pointcloud.detection.open3d_ml.input import PointCloudObjectDetectionDataFormat, PointCloudObjectDetectorFoldersInput
label_desc: Use image node_id 3 for calling the PointCloudObjectDetectorData obj's underlying member method code with example usage: obj.from_datasets(cls, train_dataset, val_dataset, test_dataset, predict_dataset, input_cls, transform, transform_kwargs) and returns: cls