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