PluginMetricsRadon.py

changeset 4
9ac53bf21182
parent 3
7150ed890fd5
child 6
13e9698a9981
--- a/PluginMetricsRadon.py	Mon Sep 14 20:18:39 2015 +0200
+++ b/PluginMetricsRadon.py	Tue Sep 15 19:22:38 2015 +0200
@@ -47,12 +47,12 @@
     """
     Class implementing the radon code metrics plug-in.
     
-    @signal metricsDone(str, list) emitted when the code metrics were
+    @signal metricsDone(str, dict) emitted when the code metrics were
         determined for a file
     @signal metricsError(str, str) emitted in case of an error
     @signal batchFinished() emitted when a code metrics batch is done
     """
-    metricsDone = pyqtSignal(str, list)
+    metricsDone = pyqtSignal(str, dict)
     metricsError = pyqtSignal(str, str)
     batchFinished = pyqtSignal()
     
@@ -70,16 +70,28 @@
         self.backgroundService = e5App().getObject("BackgroundService")
         
         path = os.path.join(os.path.dirname(__file__), packageName)
-        self.backgroundService.serviceConnect(
-            'radon', 'Python2', path, 'CodeMetricsCalculator',
-            lambda *args: self.metricsDone.emit(*args),
-            onErrorCallback=self.serviceErrorPy2,
-            onBatchDone=self.batchJobDone)
-        self.backgroundService.serviceConnect(
-            'radon', 'Python3', path, 'CodeMetricsCalculator',
-            lambda *args: self.metricsDone.emit(*args),
-            onErrorCallback=self.serviceErrorPy3,
-            onBatchDone=self.batchJobDone)
+        try:
+            self.backgroundService.serviceConnect(
+                'radon', 'Python2', path, 'CodeMetricsCalculator',
+                lambda *args: self.metricsDone.emit(*args),
+                onErrorCallback=self.serviceErrorPy2,
+                onBatchDone=self.batchJobDone)
+            self.backgroundService.serviceConnect(
+                'radon', 'Python3', path, 'CodeMetricsCalculator',
+                lambda *args: self.metricsDone.emit(*args),
+                onErrorCallback=self.serviceErrorPy3,
+                onBatchDone=self.batchJobDone)
+            self.hasBatch = True
+        except TypeError:
+            self.backgroundService.serviceConnect(
+                'radon', 'Python2', path, 'CodeMetricsCalculator',
+                lambda *args: self.metricsDone.emit(*args),
+                onErrorCallback=self.serviceErrorPy2)
+            self.backgroundService.serviceConnect(
+                'radon', 'Python3', path, 'CodeMetricsCalculator',
+                lambda *args: self.metricsDone.emit(*args),
+                onErrorCallback=self.serviceErrorPy3)
+            self.hasBatch = False
         
         self.queuedBatches = []
         self.batchesFinished = True

eric ide

mercurial