From 460879fd2200cda906607597c2d883bd1131bf03 Mon Sep 17 00:00:00 2001 From: Henning Glawe <glaweh@debian.org> Date: Fri, 19 Aug 2016 20:53:22 +0200 Subject: [PATCH] add addMatchTelemetry method to backends actual implementation is only done for JsonParseEventsWriterBackend --- common/python/nomadcore/caching_backend.py | 6 ++++++ common/python/nomadcore/local_backend.py | 4 ++++ common/python/nomadcore/parser_backend.py | 15 +++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/common/python/nomadcore/caching_backend.py b/common/python/nomadcore/caching_backend.py index 78eeb87..9391cd6 100644 --- a/common/python/nomadcore/caching_backend.py +++ b/common/python/nomadcore/caching_backend.py @@ -338,6 +338,12 @@ class ActiveBackend(object): if self.propagateStartFinishParsing and self.superBackend: self.superBackend.finishedParsingSession(parsingStatus, parsingErrors, mainFileUri, parserInfo) + def addMatchTelemetry(self, match_telemetry, gIndex = -1): + """ should be called for outputting match telemetry data: + input data, together with capture info """ + if self.superBackend: + self.superBackend.addMatchTelemetry(match_telemetry, gIndex) + def metaInfoEnv(self): """the metaInfoEnv this parser was optimized for""" return self.__metaInfoEnv diff --git a/common/python/nomadcore/local_backend.py b/common/python/nomadcore/local_backend.py index 2a7e54e..23eecc4 100644 --- a/common/python/nomadcore/local_backend.py +++ b/common/python/nomadcore/local_backend.py @@ -201,6 +201,10 @@ class LocalBackend(object): """ pass + def addMatchTelemetry(self, match_telemetry, gIndex = -1): + """ should be called for outputting match telemetry data: + input data, together with capture info """ + pass #=============================================================================== class Results(object): diff --git a/common/python/nomadcore/parser_backend.py b/common/python/nomadcore/parser_backend.py index 4365c83..92687d4 100644 --- a/common/python/nomadcore/parser_backend.py +++ b/common/python/nomadcore/parser_backend.py @@ -235,6 +235,21 @@ class JsonParseEventsWriterBackend(object): } self.__jsonOutput(res) + def addMatchTelemetry(self, match_telemetry, gIndex = -1): + if not self.writeMatchTelemetry: + return + res = { + 'event': "matchTelemetry", + 'gIndex': gIndex, + 'line': match_telemetry['line'], + 'lineNr': match_telemetry['lineNr'], + 'matcherName': match_telemetry['matcherName'], + 'matchFlags': match_telemetry['matchFlags'], + 'flat_values': match_telemetry['span_flat'], + 'group': match_telemetry['group'], + } + self.__jsonOutput(res) + def convertScalarStringValue(self, metaName, strValue): """converts a scalar string value of the given meta info to a python value""" metaInfo = self.metaInfoEnv().infoKindEl(metaName) -- GitLab