code: def _handle_request(self, request_id: int, request: Dict):
      # 1: Create a name and find selected framework
      name = f"w_{request_id}"
      ml_framework = request["train"].pop("ml_framework")
  
      # 2: If the component hasn't been created yet, create it.
      if name not in self.ws:
          work_cls = GITHUB_REPO_RUNNERS[ml_framework]
          work = work_cls(id=request["id"], **request["train"])
          self.ws[name] = work
  
      # 3: Run the component
      self.ws[name].run()
  
      # 4: Once the component has finished,
      # add metadata to the original request for the UI.
      if self.ws[name].best_model_path:
          request = self.requests[request_id]
          request["best_model_score"] = self.ws[name].best_model_score
          request["best_model_path"] = self.ws[name].best_model_path
  
imports: import io
  import os
  import subprocess
  import sys
  from copy import deepcopy
  from functools import partial
  from subprocess import Popen
  from typing import Dict, List, Optional
  from lightning import BuildConfig, CloudCompute, LightningApp, LightningFlow
  from lightning.app import structures
  from lightning.app.components import TracerPythonScript
  from lightning.app.frontend import StreamlitFrontend
  from lightning.app.storage.path import Path
  from lightning.app.utilities.state import AppState
label_desc: Use image node_id 3 for calling the Flow obj's underlying member method code with example usage: obj._handle_request(request_id, request) without return types