code: def call_script(
      filepath: str,
      args: Optional[List[str]] = None,
      timeout: Optional[int] = 60 * 20,  # (20 minutes)
  ) -> Tuple[int, str, str]:
      with open(filepath) as original:
          data = original.readlines()
  
      with open(filepath, "w") as modified:
          modified.write(
              "import pytorch_lightning as pl\npl.seed_everything(42)\n"
          )
          modified.write("if __name__ == '__main__':\n")
          for line in data:
              modified.write(f"    {line}\n")
  
      if args is None:
          args = []
      args = [str(a) for a in args]
      command = [
          sys.executable,
          "-m",
          "coverage",
          "run",
          filepath,
      ] + args
      print(" ".join(command))
      p = subprocess.Popen(
          command, stdout=subprocess.PIPE, stderr=subprocess.PIPE
      )
      try:
          stdout, stderr = p.communicate(timeout=timeout)
      except subprocess.TimeoutExpired:
          p.kill()
          stdout, stderr = p.communicate()
      encoding = "windows-1252" if os.name == "nt" else "utf-8"
      stdout = stdout.decode(encoding)
      stderr = stderr.decode(encoding)
  
      with open(filepath, "w") as modified:
          modified.writelines(data)
  
      return p.returncode, stdout, stderr
  
imports: import os
  import subprocess
  import sys
  from typing import List, Optional, Tuple
label_desc: Use image node_id 1 for calling a global function with example usage: call_script(filepath, args, timeout) and returns: p,  stdout,  stderr