diff --git a/habitat/sims/pyrobot/__init__.py b/habitat/sims/pyrobot/__init__.py index 0ee95858f9a1534d1bfaa0de95636d4fd5865e0a..d58c531b5185cc541ef593a6f760fe707323fdb9 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 ae7744c85304585a795defecb2c02ebae770237e..741b2a6d31ff4832aab31cd767cd45816e812812 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