From 6ee44604465f8c0c405be58c04346d38e60ce093 Mon Sep 17 00:00:00 2001 From: Tom Rondeau <tom@trondeau.com> Date: Wed, 9 Mar 2016 15:59:06 -0500 Subject: ctrlport: Some version issues for running gr-perf-monitorx Newer Matplotlib and Networkx modules have altered a few things on us. Doing some extra checks and setup to work with, hopefully, all current versions. --- .../python/gnuradio/ctrlport/gr-perf-monitorx | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'gnuradio-runtime/python') diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx index bb53e02cc4..4fd09dcc22 100644 --- a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx +++ b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx @@ -28,7 +28,18 @@ try: matplotlib.use("QT4Agg") import matplotlib.pyplot as plt from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas - from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar + + # Manage different matplotlib versions + try: + from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar + except ImportError: + try: + from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar + except ImportError: + print sys.argv[0], "could not load QTAgg backend." + sys.exit(1) + + from matplotlib.figure import Figure except ImportError: print sys.argv[0], "requires networkx and matplotlib.", \ @@ -42,6 +53,11 @@ import itertools from gnuradio import gr, ctrlport from gnuradio.ctrlport.GrDataPlotter import * +if float(nx.__version__) >= 1.11: + from networkx.drawing.nx_agraph import graphviz_layout +else: + graphviz_layout = nx.graphviz_layout + class MAINWindow(QtGui.QMainWindow): def minimumSizeHint(self): return QtGui.QSize(800,600) @@ -778,8 +794,8 @@ class MForm(QtGui.QWidget): self.canvas = FigureCanvas(self.f) self.layout.addWidget(self.canvas); - self.pos = nx.graphviz_layout(self.G); - #self.pos = nx.pygraphviz_layout(self.G); + self.pos = graphviz_layout(self.G); + #self.pos = pygraphviz_layout(self.G); #self.pos = nx.spectral_layout(self.G); #self.pos = nx.circular_layout(self.G); #self.pos = nx.shell_layout(self.G); -- cgit v1.2.3