code: def get_kwargs(self, with_metrics=False):
      kwargs = {**self.parameter_artifacts_apply}
      kwargs.update({k: v.reader for k, v in self.input_data.items()})
      kwargs.update({k: v.reader for k, v in self.input_model.items()})
      kwargs.update({k: v.writer for k, v in self.output_data.items()})
      kwargs.update({k: v.writer for k, v in self.output_model.items()})
      if with_metrics:
          kwargs.update(
              {k: v.writer for k, v in self.output_metric.items()}
          )
      return kwargs
  
imports: import logging
  import typing
  from typing import Dict, Generic, List, Optional, Union
  from fate.components.core.essential import Role, Stage
  from .artifacts._base_type import AT, MM, ArtifactDescribe, M, _ArtifactsType, _ArtifactType
label_desc: Use image node_id 5 for calling the ComponentExecutionIO obj's underlying member method code with example usage: obj.get_kwargs(with_metrics) and returns: kwargs