From a9a6c090ec977861a3131ba20bd72fa7d7cffbc8 Mon Sep 17 00:00:00 2001 From: Kevin Lin Date: Tue, 7 Jan 2025 15:20:59 -0600 Subject: [PATCH] Fix device docs - allow imports to continue but log error --- docs/conf.py | 7 ------- robosuite/devices/keyboard.py | 7 ++++++- robosuite/devices/spacemouse.py | 17 ++++++++++------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 42d599d713..6a3006dcd8 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -187,10 +187,3 @@ texinfo_documents = [ (master_doc, "robosuite", "robosuite Documentation", author, "robosuite", "ARISE", "Miscellaneous"), ] - -autodoc_mock_imports = [ - "robosuite.devices.mjgui", - "robosuite.devices.spacemouse", - "robosuite.devices.keyboard", - "robosuite.devices.device", -] diff --git a/robosuite/devices/keyboard.py b/robosuite/devices/keyboard.py index dcc58c757a..7c60691ada 100644 --- a/robosuite/devices/keyboard.py +++ b/robosuite/devices/keyboard.py @@ -3,11 +3,16 @@ """ import numpy as np -from pynput.keyboard import Controller, Key, Listener from robosuite.devices import Device +from robosuite.utils.log_utils import ROBOSUITE_DEFAULT_LOGGER from robosuite.utils.transform_utils import rotation_matrix +try: + from pynput.keyboard import Key, Listener +except ImportError as e: + ROBOSUITE_DEFAULT_LOGGER.error(f"Failed to import pynput. Error: {e}.") + class Keyboard(Device): """ diff --git a/robosuite/devices/spacemouse.py b/robosuite/devices/spacemouse.py index 82b49effd2..361b3b54cf 100644 --- a/robosuite/devices/spacemouse.py +++ b/robosuite/devices/spacemouse.py @@ -21,20 +21,23 @@ from collections import namedtuple import numpy as np -from pynput.keyboard import Controller, Key, Listener from robosuite.utils.log_utils import ROBOSUITE_DEFAULT_LOGGER try: import hid -except ModuleNotFoundError as exc: - raise ImportError( - "Unable to load module hid, required to interface with SpaceMouse. " +except ModuleNotFoundError as e: + ROBOSUITE_DEFAULT_LOGGER.error( + f"Unable to load module hid, required to interface with SpaceMouse. " "Only macOS is officially supported. Install the additional " - "requirements with `pip install -r requirements-extra.txt`" - ) from exc + "requirements with `pip install -r requirements-extra.txt` " + f"Error: {e}." + ) -from pynput.keyboard import Controller, Key, Listener +try: + from pynput.keyboard import Listener +except ImportError as e: + ROBOSUITE_DEFAULT_LOGGER.error(f"Failed to import pynput. Error: {e}.") import robosuite.macros as macros from robosuite.devices import Device