Overview
Comment: | [build][bug] DARG: fix Heisenbug, sort actions identifiers by name (necessary for Python 3.5) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | build | warning | rg |
Files: | files | file ages | folders |
SHA3-256: |
e18bf06f0cc02af838a4970e7919ec54 |
User & Date: | olr on 2018-09-06 07:04:05 |
Other Links: | branch diff | manifest | tags |
Context
2018-09-07
| ||
10:09 | [core] gc engine: code cleaning check-in: cc997fd621 user: olr tags: core, rg | |
2018-09-06
| ||
07:04 | [build][bug] DARG: fix Heisenbug, sort actions identifiers by name (necessary for Python 3.5) check-in: e18bf06f0c user: olr tags: build, warning, rg | |
2018-09-05
| ||
19:27 | [core] gc engine: code clarity + change echo parameters check-in: 8fddaca364 user: olr tags: core, rg | |
Changes
Modified darg.py from [29c743b753] to [0a2000eec8].
︙ | ︙ | |||
111 112 113 114 115 116 117 118 119 120 121 122 123 124 | sHashId = oNode.__hash__() if sHashId not in dGraph: dGraph[sHashId] = oNode.getNodeAsDict() else: print("Error. Double node… same id: ", sHashId) print(str(oNode.getNodeAsDict())) dGraph = self._rewriteKeysOfDARG(dGraph) self._checkRegexes(dGraph) return dGraph def _rewriteKeysOfDARG (self, dGraph): "keys of DARG are long numbers (hashes): this function replace these hashes with smaller numbers (to reduce storing size)" # create translation dictionary dKeyTrans = {} | > | 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | sHashId = oNode.__hash__() if sHashId not in dGraph: dGraph[sHashId] = oNode.getNodeAsDict() else: print("Error. Double node… same id: ", sHashId) print(str(oNode.getNodeAsDict())) dGraph = self._rewriteKeysOfDARG(dGraph) self._sortActions(dGraph) self._checkRegexes(dGraph) return dGraph def _rewriteKeysOfDARG (self, dGraph): "keys of DARG are long numbers (hashes): this function replace these hashes with smaller numbers (to reduce storing size)" # create translation dictionary dKeyTrans = {} |
︙ | ︙ | |||
133 134 135 136 137 138 139 140 141 142 143 144 145 146 | if type(val) is int: dVal[sArc] = dKeyTrans[val] else: for sArc, nKey in val.items(): val[sArc] = dKeyTrans[nKey] return dNewGraph def _checkRegexes (self, dGraph): "check validity of regexes" aRegex = set() for nKey, dVal in dGraph.items(): if "<re_value>" in dVal: for sRegex in dVal["<re_value>"]: if sRegex not in aRegex: | > > > > > > > > > | 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | if type(val) is int: dVal[sArc] = dKeyTrans[val] else: for sArc, nKey in val.items(): val[sArc] = dKeyTrans[nKey] return dNewGraph def _sortActions (self, dGraph): "when a pattern is found, several actions may be launched, and it must be performed in a certain order" for nKey, dVal in dGraph.items(): if "<rules>" in dVal: for sLineId, nKey in dVal["<rules>"].items(): # we change the dictionary of actions in a list of actions (values of dictionary all points to the final node) if isinstance(dGraph[nKey], dict): dGraph[nKey] = sorted(dGraph[nKey].keys()) def _checkRegexes (self, dGraph): "check validity of regexes" aRegex = set() for nKey, dVal in dGraph.items(): if "<re_value>" in dVal: for sRegex in dVal["<re_value>"]: if sRegex not in aRegex: |
︙ | ︙ |