code: def dataframe_io_test(
      ctx,
      role: Role,
      dataframe_input: cpn.dataframe_input(roles=[LOCAL]),
      dataframe_output: cpn.dataframe_output(roles=[LOCAL]),
      dataframe_inputs: cpn.dataframe_inputs(roles=[LOCAL]),
      dataframe_outputs: cpn.dataframe_outputs(roles=[LOCAL]),
      json_model_output: cpn.json_model_output(roles=[LOCAL]),
      json_model_outputs: cpn.json_model_outputs(roles=[LOCAL]),
      model_directory_output: cpn.model_directory_output(roles=[LOCAL]),
      model_directory_outputs: cpn.model_directory_outputs(
          roles=[LOCAL]
      ),
  ):
      df = dataframe_input.read()
      df = df + 1
      df_list = [_input.read() for _input in dataframe_inputs]
      dataframe_output.write(df)
  
      assert len(df_list) == 4
      for i in range(10):
          output = next(dataframe_outputs)
          output.write(df_list[i % 4])
  
      json_model_output.write({"aaa": 1}, metadata={"bbb": 2})
      for i in range(8):
          model_output = next(json_model_outputs)
          model_output.write(
              {"io_model_out": i}, metadata={"i-th output": i}
          )
  
      path = model_directory_output.get_directory()
      with open(path + "/output.txt", "w") as fw:
          fw.write("xxx\n")
  
      model_directory_output.write_metadata(
          {"model_directory_output_metadata": "test_directory"}
      )
  
      for i in range(5):
          directory_output = next(model_directory_outputs)
          path = directory_output.get_directory()
          with open(path + f"/output_{i}.txt", "w") as fw:
              fw.write("test for model directory output\n")
  
          directory_output.write_metadata(
              {
                  f"model_directory_output_{i}_metadata": f"test_directory_{i}"
              }
          )
  
label_desc: Use image node_id 1 for calling a global function with example usage: dataframe_io_test(ctx, role, dataframe_input, dataframe_output, dataframe_inputs, dataframe_outputs, json_model_output, json_model_outputs, model_directory_output, model_directory_outputs) without return types