Select kernels with checkboxes.
(self, kernels: List[Dict])
| 243 | return [] |
| 244 | |
| 245 | def _select_kernels(self, kernels: List[Dict]) -> List[Dict]: |
| 246 | """Select kernels with checkboxes.""" |
| 247 | |
| 248 | if len(kernels) == 1: |
| 249 | console.print(f"[green]Optimizing {kernels[0]['name']}[/green]") |
| 250 | return kernels |
| 251 | |
| 252 | choices = [] |
| 253 | for k in kernels: |
| 254 | params = k['params'][:40] + "..." if len(k['params']) > 40 else k['params'] |
| 255 | label = f"{k['name']:30s} Line {k['line']:4d} {params}" |
| 256 | choices.append((label, k)) |
| 257 | |
| 258 | questions = [ |
| 259 | inquirer.Checkbox('kernels', |
| 260 | message="Select kernels (Space to select, Enter to confirm)", |
| 261 | choices=choices, |
| 262 | carousel=True) |
| 263 | ] |
| 264 | |
| 265 | try: |
| 266 | answers = inquirer.prompt(questions, theme=GreenPassion()) |
| 267 | if answers: |
| 268 | selected = answers.get('kernels', []) |
| 269 | if selected: |
| 270 | names = ", ".join([k['name'] for k in selected]) |
| 271 | console.print(f"[green]Selected: {names}[/green]") |
| 272 | return selected |
| 273 | return [] |
| 274 | except Exception as e: |
| 275 | console.print(f"[red]Error: {e}[/red]") |
| 276 | return [] |
| 277 | |
| 278 | def _get_options(self, num_kernels: int) -> Optional[Dict[str, Any]]: |
| 279 | """Get optimization options.""" |