code: def preprocess_data(
      X_train_path: components.OutputPath(
          "np_array"
      ),  # noqa: F821,N803
      X_test_path: components.OutputPath("np_array"),  # noqa: F821,N803
      y_train_path: components.OutputPath("np_array"),  # noqa: F821
      y_test_path: components.OutputPath("np_array"),  # noqa: F821
      seed: int = 1337,
  ):
      import numpy as np
      from sklearn import datasets
      from sklearn.model_selection import train_test_split
  
      X, y = datasets.load_iris(return_X_y=True)  # noqa: N806
      X_train, X_test, y_train, y_test = train_test_split(  # noqa: N806
          X, y, test_size=0.2, random_state=seed
      )
  
      with open(X_train_path, "wb") as f:
          np.save(f, X_train)
  
      with open(y_train_path, "wb") as f:
          np.save(f, y_train)
  
      with open(X_test_path, "wb") as f:
          np.save(f, X_test)
  
      with open(y_test_path, "wb") as f:
          np.save(f, y_test)
  
file_path: wandb/tests/functional_tests/t0_main/kfp/kfp-pipeline-sklearn.py
imports: import os
  import random
  from typing import NamedTuple
  import kfp
  import kfp.dsl
  from kfp import components
  from kubernetes.client.models import V1EnvVar
  from wandb.integration.kfp import wandb_log
  from wandb_probe import wandb_probe_package
label_desc: Use image node_id 2 for calling a global function with example usage: preprocess_data(X_train_path, X_test_path, y_train_path, y_test_path, seed) without return types