From aa92f25cb7781adfcad8e13885cf0d6af66c5849 Mon Sep 17 00:00:00 2001 From: Raffaello Bonghi Date: Mon, 20 Jan 2025 13:17:17 +0000 Subject: [PATCH] Improve info --- src/nanosaur/main.py | 23 +++++++++++++++++------ src/nanosaur/utilities.py | 3 +++ src/nanosaur/workspace.py | 2 +- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/nanosaur/main.py b/src/nanosaur/main.py index 8f3b545..8b4e704 100644 --- a/src/nanosaur/main.py +++ b/src/nanosaur/main.py @@ -30,7 +30,7 @@ from jtop import jtop, JtopException from nanosaur import __version__ -from nanosaur.utilities import Params +from nanosaur.utilities import Params, get_nanosaur_home from nanosaur import workspace from nanosaur import simulation from nanosaur import robot @@ -54,18 +54,26 @@ def info(platform, params: Params, args): """Print version information.""" + # Print mode if it exists in params + if 'mode' in params: + print(TerminalFormatter.color_text(f"Mode: {params['mode']}", bg_color='red', bold=True)) + print() + robot_list = robot.RobotList.load(params) # Print current robot configuration robot_data = robot.RobotList.get_robot(params) robot_data.verbose() - - robot_list = robot.RobotList.load(params) + # Print other robots if they exist if len(robot_list.robots) > 1: print("\nOther robots:") for i, rb in enumerate(robot_list.robots): if i != params.get('robot_idx', 0): print(f"{i}. {rb}") + # Print simulation tools if they exist + if 'simulation_tool' in params: + print(f"\n{TerminalFormatter.color_text('Simulation Tool:', bold=True)} {params['simulation_tool']}") + # Print all workspaces installed print(TerminalFormatter.color_text("\nInstalled Workspaces:", bold=True)) for ws_name in ['ws_perception_name', 'ws_robot_name', 'ws_simulation_name']: @@ -87,7 +95,10 @@ def info(platform, params: Params, args): for key, value in platform.items(): print(f" {key}: {value}") # Print version information - print(f"Nanosaur package version {__version__}") + print(TerminalFormatter.color_text("\nVersion Information:", bold=True)) + print(f" {TerminalFormatter.color_text('Nanosaur package:', bold=True)} {__version__}") + print(f" {TerminalFormatter.color_text('Nanosaur version (branch):', bold=True)} {params['nanosaur_branch']}") + print(f" {TerminalFormatter.color_text('Nanosaur home:', bold=True)} {get_nanosaur_home(params['nanosaur_home'])}") def install(platform, params: Params, args, password=None): @@ -192,7 +203,7 @@ def main(): # Subcommand: install (hidden if workspace already exists) # if get_workspace_path(params['nanosaur_workspace_name']) is None: - if 'developer_mode' not in params and not params['developer_mode']: + if 'mode' in params and params['mode'] == 'developer': parser_install = subparsers.add_parser('install', help="Install the Nanosaur workspace") else: parser_install = subparsers.add_parser('install') @@ -203,7 +214,7 @@ def main(): parser_install.set_defaults(func=install) # Subcommand: workspace (with a sub-menu for workspace operations) - if 'developer_mode' in params and params['developer_mode']: + if 'mode' in params and params['mode'] == 'developer': # Add workspace subcommand parser_workspace = parser_workspace_menu(subparsers) diff --git a/src/nanosaur/utilities.py b/src/nanosaur/utilities.py index 67b94bc..6d2db68 100644 --- a/src/nanosaur/utilities.py +++ b/src/nanosaur/utilities.py @@ -179,6 +179,9 @@ def __repr__(self): def to_dict(self) -> list: return [robot.to_dict() for robot in self.robots] + def print_all_robots(self): + for robot in self.robots: + print(robot) class Params: diff --git a/src/nanosaur/workspace.py b/src/nanosaur/workspace.py index 4d20d8e..1060013 100644 --- a/src/nanosaur/workspace.py +++ b/src/nanosaur/workspace.py @@ -302,7 +302,7 @@ def create_developer_workspace(platform, params: Params, args, password=None): ws_name_path = create_workspace(nanosaur_home_path, params['ws_perception_name']) build_workspace(branch, ws_name_path, 'perception', password, skip_rosdep=True, skip_build=True) # Set params in developer mode - params['developer_mode'] = True + params['mode'] = 'developer' def download_rosinstall(url, folder_path, file_name) -> str: