code: def _canonicalize(self, parents):
      super()._canonicalize(parents)
      # kubeflow does not need these fields, set empty string for type check
      if self.trial_command is None:
          self.trial_command = ""
      if self.trial_code_directory is None:
          self.trial_code_directory = ""
  
file_path: nni/nni/experiment/config/training_services/kubeflow.py
imports: from dataclasses import dataclass
  from typing import Optional, Union
  from typing_extensions import Literal
  from ..base import ConfigBase
  from ..training_service import TrainingServiceConfig
  from .k8s_storage import K8sStorageConfig
label_desc: Use image node_id 1 for calling the KubeflowConfig obj's underlying member method code with example usage: obj._canonicalize(parents) without return types