From cbc6ca8e9112943ed501ca5b84b156a0e0a55d2d Mon Sep 17 00:00:00 2001 From: Abhishek Kadian <abhishekkadiyan@gmail.com> Date: Sun, 8 Sep 2019 14:35:15 -0700 Subject: [PATCH] Handle the case when pyrobot is not installed --- habitat/sims/pyrobot/__init__.py | 19 +++++++++++++++++-- habitat/sims/registration.py | 4 +++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/habitat/sims/pyrobot/__init__.py b/habitat/sims/pyrobot/__init__.py index 0ee95858f..d58c531b5 100644 --- a/habitat/sims/pyrobot/__init__.py +++ b/habitat/sims/pyrobot/__init__.py @@ -1,2 +1,17 @@ -# TODO(akadian): come up with better module structure -from habitat.sims.pyrobot.pyrobot import PyRobot +def _try_register_pyrobot(): + try: + import pyrobot + + has_pyrobot = True + except ImportError as e: + has_pyrobot = False + pyrobot_import_error = e + + if has_pyrobot: + from habitat.sims.pyrobot.pyrobot import PyRobot + else: + + @registry.register_simulator(name="PyRobot-v0") + class PyRobotImportError(Simulator): + def __init__(self, *args, **kwargs): + raise pyrobot_import_error diff --git a/habitat/sims/registration.py b/habitat/sims/registration.py index ae7744c85..741b2a6d3 100644 --- a/habitat/sims/registration.py +++ b/habitat/sims/registration.py @@ -8,7 +8,7 @@ from habitat.core.logging import logger from habitat.core.registry import registry from habitat.core.simulator import Simulator from habitat.sims.habitat_simulator import _try_register_habitat_sim -from habitat.sims.pyrobot.pyrobot import PyRobot +from habitat.sims.pyrobot import _try_register_pyrobot def make_sim(id_sim, **kwargs): @@ -21,3 +21,5 @@ def make_sim(id_sim, **kwargs): _try_register_habitat_sim() +_try_register_pyrobot() +g \ No newline at end of file -- GitLab