From 67433db17808f81935be630d6f345c3579f26b5d Mon Sep 17 00:00:00 2001
From: hagrid67 <jdhwatson@gmail.com>
Date: Thu, 3 Sep 2020 12:57:14 +0100
Subject: [PATCH] ignore absent pygraphviz - wrap render call (to_agraph) in
 try/except ImportError in agent_chains

---
 flatland/envs/agent_chains.py | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/flatland/envs/agent_chains.py b/flatland/envs/agent_chains.py
index 52789f09..02734f46 100644
--- a/flatland/envs/agent_chains.py
+++ b/flatland/envs/agent_chains.py
@@ -182,14 +182,19 @@ class MotionCheck(object):
             
 
 def render(omc:MotionCheck, horizontal=True):
-    oAG = nx.drawing.nx_agraph.to_agraph(omc.G)
-    oAG.layout("dot")
-    sDot = oAG.to_string()
-    if horizontal:
-        sDot = sDot.replace('{', '{ rankdir="LR" ')
-    #return oAG.draw(format="png")
-    # This returns a graphviz object which implements __repr_svg
-    return gv.Source(sDot)
+    try:
+        oAG = nx.drawing.nx_agraph.to_agraph(omc.G)
+        oAG.layout("dot")
+        sDot = oAG.to_string()
+        if horizontal:
+            sDot = sDot.replace('{', '{ rankdir="LR" ')
+        #return oAG.draw(format="png")
+        # This returns a graphviz object which implements __repr_svg
+        return gv.Source(sDot)
+    except ImportError as oError:
+        print("Flatland agent_chains ignoring ImportError - install pygraphviz to render graphs")
+        return None
+
 
 class ChainTestEnv(object):
     """ Just for testing agent chains
-- 
GitLab