code: def main(config="../config.yaml", namespace=""):
      if isinstance(config, str):
          config = test_utils.load_job_config(config)
      parties = config.parties
      guest = parties.guest[0]
      host = parties.host[0]
      arbiter = parties.arbiter[0]
      pipeline = FateFlowPipeline().set_parties(
          guest=guest, host=host, arbiter=arbiter
      )
      if config.task_cores:
          pipeline.conf.set("task_cores", config.task_cores)
      if config.timeout:
          pipeline.conf.set("timeout", config.timeout)
  
      reader_0 = Reader(
          "reader_0", runtime_parties=dict(guest=guest, host=host)
      )
      reader_0.guest.task_parameters(
          namespace=f"experiment{namespace}", name="motor_hetero_guest"
      )
      reader_0.hosts[0].task_parameters(
          namespace=f"experiment{namespace}", name="motor_hetero_host"
      )
      psi_0 = PSI("psi_0", input_data=reader_0.outputs["output_data"])
      linr_0 = CoordinatedLinR(
          "linr_0",
          epochs=10,
          batch_size=None,
          optimizer={
              "method": "sgd",
              "optimizer_params": {"lr": 0.01},
              "alpha": 0.001,
          },
          init_param={"fit_intercept": True},
          cv_data=psi_0.outputs["output_data"],
          cv_param={"n_splits": 3},
      )
  
      pipeline.add_tasks([reader_0, psi_0, linr_0])
      pipeline.compile()
      # print(pipeline.get_dag())
      pipeline.fit()
  
imports: import argparse
  from fate_client.pipeline import FateFlowPipeline
  from fate_client.pipeline.components.fate import CoordinatedLinR, PSI, Reader
  from fate_client.pipeline.utils import test_utils
label_desc: Use image node_id 1 for calling a global function with example usage: main(config, namespace) without return types