Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion python/lightning_sdk/cli/legacy/clusters_menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
from typing import List, Optional

from rich.console import Console
from simple_term_menu import TerminalMenu

from lightning_sdk import Teamspace
from lightning_sdk.api.cloud_account_api import CloudAccountApi
from lightning_sdk.cli.utils.terminal_menu_wrapper import TerminalMenu
from lightning_sdk.lightning_cloud.openapi import V1ClusterType, V1ProjectClusterBinding


Expand Down
2 changes: 1 addition & 1 deletion python/lightning_sdk/cli/legacy/jobs_menu.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from typing import Dict, List, Optional

from rich.console import Console
from simple_term_menu import TerminalMenu

from lightning_sdk.cli.legacy.exceptions import StudioCliError
from lightning_sdk.cli.utils.terminal_menu_wrapper import TerminalMenu
from lightning_sdk.job import Job
from lightning_sdk.teamspace import Teamspace

Expand Down
2 changes: 1 addition & 1 deletion python/lightning_sdk/cli/legacy/mmts_menu.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from typing import Dict, List, Optional

from rich.console import Console
from simple_term_menu import TerminalMenu

from lightning_sdk.cli.legacy.exceptions import StudioCliError
from lightning_sdk.cli.utils.terminal_menu_wrapper import TerminalMenu
from lightning_sdk.mmt import MMT
from lightning_sdk.teamspace import Teamspace

Expand Down
2 changes: 1 addition & 1 deletion python/lightning_sdk/cli/legacy/studios_menu.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from typing import Dict, List, Optional

from rich.console import Console
from simple_term_menu import TerminalMenu

from lightning_sdk import Studio
from lightning_sdk.api import OrgApi, TeamspaceApi
from lightning_sdk.cli.utils.terminal_menu_wrapper import TerminalMenu
from lightning_sdk.user import User


Expand Down
2 changes: 1 addition & 1 deletion python/lightning_sdk/cli/legacy/teamspace_menu.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from typing import Dict, List, Optional

from rich.console import Console
from simple_term_menu import TerminalMenu

from lightning_sdk.api import OrgApi
from lightning_sdk.cli.legacy.exceptions import StudioCliError
from lightning_sdk.cli.utils.terminal_menu_wrapper import TerminalMenu
from lightning_sdk.teamspace import Teamspace
from lightning_sdk.user import User
from lightning_sdk.utils.resolve import _get_authed_user
Expand Down
2 changes: 1 addition & 1 deletion python/lightning_sdk/cli/legacy/upload.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
import rich
from rich.console import Console
from rich.progress import Progress, SpinnerColumn, TextColumn, TimeElapsedColumn
from simple_term_menu import TerminalMenu
from tqdm import tqdm

from lightning_sdk.api.lit_container_api import DockerNotRunningError, LCRAuthFailedError, LitContainerApi
from lightning_sdk.api.utils import _get_cloud_url
from lightning_sdk.cli.legacy.exceptions import StudioCliError
from lightning_sdk.cli.legacy.studios_menu import _StudiosMenu
from lightning_sdk.cli.utils.teamspace_selection import TeamspacesMenu
from lightning_sdk.cli.utils.terminal_menu_wrapper import TerminalMenu
from lightning_sdk.constants import _LIGHTNING_DEBUG
from lightning_sdk.exceptions import DeprecatedCommand, DeprecatedError
from lightning_sdk.models import upload_model as _upload_model
Expand Down
2 changes: 1 addition & 1 deletion python/lightning_sdk/cli/utils/owner_selection.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
from typing import Dict, List, Optional, TypedDict

import rich_click as click
from simple_term_menu import TerminalMenu

from lightning_sdk.cli.legacy.exceptions import StudioCliError
from lightning_sdk.cli.utils.terminal_menu_wrapper import TerminalMenu
from lightning_sdk.organization import Organization
from lightning_sdk.owner import Owner
from lightning_sdk.user import User
Expand Down
2 changes: 1 addition & 1 deletion python/lightning_sdk/cli/utils/studio_selection.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
from typing import Dict, List, Optional

import rich_click as click
from simple_term_menu import TerminalMenu

from lightning_sdk.cli.legacy.exceptions import StudioCliError
from lightning_sdk.cli.utils.terminal_menu_wrapper import TerminalMenu
from lightning_sdk.studio import Studio
from lightning_sdk.teamspace import Teamspace
from lightning_sdk.utils.resolve import _get_authed_user
Expand Down
2 changes: 1 addition & 1 deletion python/lightning_sdk/cli/utils/teamspace_selection.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
from typing import Dict, List, Optional

import rich_click as click
from simple_term_menu import TerminalMenu

from lightning_sdk.cli.legacy.exceptions import StudioCliError
from lightning_sdk.cli.utils.resolve import resolve_teamspace_owner_name_format
from lightning_sdk.cli.utils.terminal_menu_wrapper import TerminalMenu
from lightning_sdk.teamspace import Organization, Teamspace
from lightning_sdk.user import Owner, User
from lightning_sdk.utils.resolve import ApiException, _get_authed_user, _resolve_teamspace
Expand Down
30 changes: 30 additions & 0 deletions python/lightning_sdk/cli/utils/terminal_menu_wrapper.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import os
from typing import Any, List, Optional

if os.name == "nt":
import inquirer # import only for windows

class TerminalMenu:
def __init__(
self,
options: List[str],
title: Optional[str] = None,
**kwargs: Any,
) -> None:
self.options = options
self.title = title or "Please select an option:"
self.chosen_menu_index: Optional[int] = None

def show(self) -> None:
# generate inquirer questons
questions = [inquirer.List("choice", message=self.title, choices=self.options)]
answer = inquirer.prompt(questions)

# Keyboard Interrupt
if not answer or "choice" not in answer:
self.chosen_menu_index = None
return

self.chosen_menu_index = self.options.index(answer["choice"])
else:
from simple_term_menu import TerminalMenu # noqa: F401
3 changes: 2 additions & 1 deletion python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ dependencies = [ # alphabetically sorted
"pyyaml", # for config handling
"requests", # for downloading files via urls
"rich", # for nice printing
"simple-term-menu", # for CLI
"simple-term-menu; sys_platform != 'win32'", # for CLI on POSIX
"inquirer; sys_platform == 'win32'", # for CLI on Windows
"six", # for lightning_cloud
"tqdm", # for progressbars
"urllib3<=2.5.0", # for downloading files via urls
Expand Down
Loading