Overview
Comment: | [build] DARG: shorten building result display |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | build | rg |
Files: | files | file ages | folders |
SHA3-256: |
ffd3e274fa2decd32b686ee893b08986 |
User & Date: | olr on 2018-07-28 00:14:46 |
Other Links: | branch diff | manifest | tags |
Context
2018-07-28
| ||
09:08 | [fr] options manquantes et nettoyage check-in: c79208cbc2 user: olr tags: fr, rg | |
00:14 | [build] DARG: shorten building result display check-in: ffd3e274fa user: olr tags: build, rg | |
2018-07-27
| ||
18:11 | [fr] conversion: regex rules -> graph rules check-in: ebc7b7f342 user: olr tags: fr, rg | |
Changes
Modified darg.py from [2c6a05cda6] to [11706e17f5].
1 2 3 4 5 6 7 8 9 10 11 12 13 | #!python3 """ RULE GRAPH BUILDER """ # by Olivier R. # License: MPL 2 import re import traceback | < < | < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #!python3 """ RULE GRAPH BUILDER """ # by Olivier R. # License: MPL 2 import re import traceback class DARG: """DIRECT ACYCLIC RULE GRAPH""" # This code is inspired from Steve Hanov’s DAWG, 2011. (http://stevehanov.ca/blog/index.php?id=115) def __init__ (self, lRule, sLangCode): print(" > Direct Acyclic Rule Graph (DARG)", end=" ") # Preparing DARG self.sLangCode = sLangCode self.nRule = len(lRule) self.aPreviousRule = [] Node.resetNextId() self.oRoot = Node() self.lUncheckedNodes = [] # list of nodes that have not been checked for duplication. self.lMinimizedNodes = {} # list of unique nodes that have been checked for duplication. self.nNode = 0 self.nArc = 0 # build lRule.sort() for aRule in lRule: self.insert(aRule) self.finish() self.countNodes() self.countArcs() self.displayInfo() # BUILD DARG def insert (self, aRule): |
︙ | ︙ | |||
104 105 106 107 108 109 110 | "count arcs within the whole graph" self.nArc = 0 for oNode in self.lMinimizedNodes: self.nArc += len(oNode.dArcs) def displayInfo (self): "display informations about the rule graph" | < < | | 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | "count arcs within the whole graph" self.nArc = 0 for oNode in self.lMinimizedNodes: self.nArc += len(oNode.dArcs) def displayInfo (self): "display informations about the rule graph" print(": {:>10,} rules, {:>10,} nodes, {:>10,} arcs".format(self.nRule, self.nNode, self.nArc)) def createGraph (self): "create the graph as a dictionary" dGraph = { 0: self.oRoot.getNodeAsDict() } for oNode in self.lMinimizedNodes: sHashId = oNode.__hash__() if sHashId not in dGraph: |
︙ | ︙ |