(self)
| 133 | self.previous_word = word |
| 134 | |
| 135 | def finish(self): |
| 136 | if not self.data: |
| 137 | raise ValueError("need at least one word in the dawg") |
| 138 | # minimize all unchecked_nodes |
| 139 | self._minimize(0) |
| 140 | |
| 141 | self._linearize_edges() |
| 142 | |
| 143 | topoorder, linear_data, inverse = self._topological_order() |
| 144 | return self.compute_packed(topoorder), linear_data, inverse |
| 145 | |
| 146 | def _minimize(self, down_to): |
| 147 | # proceed from the leaf up to a certain point |