docstr: Gets data loaders for source and target datasets
  Sets channel_number as 3 for RGB, 2 for flow.
  Sets class_number as 8 for EPIC, 7 for ADL, 6 for both GTEA and KITCHEN.
  
  Args:
      source (VideoDataset): source dataset name
      target (VideoDataset): target dataset name
      seed (int): seed value set manually
      params (CfgNode): hyperparameters from configure file
  
  Examples:
      >>> source, target, num_classes = get_source_target(source, target, seed, params)
docstr_tok: ["Gets","data","loaders","for","source","and","target","datasets","Sets","channel_number","as","3","for","RGB",",","2","for","flow",".","Sets","class_number","as","8","for","EPIC",",","7","for","ADL",",","6","for","both","GTEA","and","KITCHEN",".","Args",":","source","(","VideoDataset",")",":","source","dataset","name","target","(","VideoDataset",")",":","target","dataset","name","seed","(","int",")",":","seed","value","set","manually","params","(","CfgNode",")",":","hyperparameters","from","configure","file","Examples",":",">",">",">","source",",","target",",","num_classes","=","get_source_target","(","source",",","target",",","seed",",","params",")"]
code: def get_source_target(
      source: "VideoDataset", target: "VideoDataset", seed, params
  ):
      """
      Gets data loaders for source and target datasets
      Sets channel_number as 3 for RGB, 2 for flow.
      Sets class_number as 8 for EPIC, 7 for ADL, 6 for both GTEA and KITCHEN.
  
      Args:
          source (VideoDataset): source dataset name
          target (VideoDataset): target dataset name
          seed (int): seed value set manually
          params (CfgNode): hyperparameters from configure file
  
      Examples:
          >>> source, target, num_classes = get_source_target(source, target, seed, params)
      """
      config_params = get_videodata_config(params)
      data_params = config_params["data_params"]
      data_params_local = deepcopy(data_params)
      data_src_name = data_params_local["dataset_src_name"].upper()
      src_data_path, src_tr_listpath, src_te_listpath = generate_list(
          data_src_name, data_params_local, domain="src"
      )
      data_tgt_name = data_params_local["dataset_tgt_name"].upper()
      tgt_data_path, tgt_tr_listpath, tgt_te_listpath = generate_list(
          data_tgt_name, data_params_local, domain="tgt"
      )
      image_modality = data_params_local["dataset_image_modality"]
      frames_per_segment = data_params_local["frames_per_segment"]
  
      rgb, flow = get_image_modality(image_modality)
  
      transform_names = {
          VideoDataset.EPIC: "epic",
          VideoDataset.GTEA: "gtea",
          VideoDataset.ADL: "adl",
          VideoDataset.KITCHEN: "kitchen",
      }
  
      class_numbers = {
          VideoDataset.EPIC: 8,
          VideoDataset.GTEA: 6,
          VideoDataset.ADL: 7,
          VideoDataset.KITCHEN: 6,
      }
  
      factories = {
          VideoDataset.EPIC: EPICDatasetAccess,
          VideoDataset.GTEA: GTEADatasetAccess,
          VideoDataset.ADL: ADLDatasetAccess,
          VideoDataset.KITCHEN: KITCHENDatasetAccess,
      }
  
      # handle color/nb classes
      num_classes = min(class_numbers[source], class_numbers[target])
      source_tf = transform_names[source]
      target_tf = transform_names[target]
  
      rgb_source, rgb_target, flow_source, flow_target = [None] * 4
  
      if rgb:
          rgb_source = factories[source](
              src_data_path,
              src_tr_listpath,
              src_te_listpath,
              "rgb",
              frames_per_segment,
              num_classes,
              source_tf,
              seed,
          )
          rgb_target = factories[target](
              tgt_data_path,
              tgt_tr_listpath,
              tgt_te_listpath,
              "rgb",
              frames_per_segment,
              num_classes,
              target_tf,
              seed,
          )
  
      if flow:
          flow_source = factories[source](
              src_data_path,
              src_tr_listpath,
              src_te_listpath,
              "flow",
              frames_per_segment,
              num_classes,
              source_tf,
              seed,
          )
          flow_target = factories[target](
              tgt_data_path,
              tgt_tr_listpath,
              tgt_te_listpath,
              "flow",
              frames_per_segment,
              num_classes,
              target_tf,
              seed,
          )
  
      return (
          {"rgb": rgb_source, "flow": flow_source},
          {"rgb": rgb_target, "flow": flow_target},
          num_classes,
      )
  
imports: import os
  from copy import deepcopy
  from enum import Enum
  import torch
  import kale.prepdata.video_transform
  from kale.loaddata.dataset_access import DatasetAccess
  from kale.loaddata.video_datasets import BasicVideoDataset, EPIC
label_desc: Use image node_id 1 for calling the VideoDataset obj's underlying member method code with example usage: obj.get_source_target(source, target, seed, params) and returns: dict,  dict,  num_classes