def METHOD_NAME(self) -> type:
    """Prompt the user to select a EuroPiScript class from the menu and return it
    If the class is not a valid EuroPiScript an error message is shown and selection continues
    @return The type corresponding to self.run_request as set by the self.launch callback
    """
    self.menu = Menu(
        items=list(sorted(self.scripts.keys())),
        select_func=self.launch,
        select_knob=europi.k2,
        choice_buttons=[europi.b1, europi.b2],
    )
    # let the user make a selection
    # the menu selection returns the desired class name but doesn't validate it
    # that validation is handled here
    launch_class = None
    old_selected = -1
    while launch_class is None:
        if self.run_request:
            launch_class = self.get_class_for_name(self.run_request)
            if not self._is_europi_script(launch_class):
                self.show_error("Launch Err", "Invalid script class")
                launch_class = None
                self.run_request = None
        else:
            if old_selected != self.menu.selected:
                old_selected = self.menu.selected
                self.menu.draw_menu()
            time.sleep(0.1)
    return launch_class