(self, matches)
| 936 | return d |
| 937 | |
| 938 | def _merge_adjacent(self, matches): |
| 939 | merged = [] |
| 940 | result_index = self._result_index() |
| 941 | same_text = itertools.groupby(matches, lambda m: m.text) |
| 942 | for text, ll in same_text: |
| 943 | for l_group in util.group_continuous(ll, key=lambda m: result_index[m]): |
| 944 | l_group = list(l_group) |
| 945 | |
| 946 | if len(l_group) == 1: |
| 947 | merged.append(l_group[0]) |
| 948 | else: |
| 949 | start = l_group[0].start |
| 950 | end = l_group[-1].end |
| 951 | end_index = result_index[l_group[-1]] |
| 952 | for mr in l_group: |
| 953 | del result_index[mr] |
| 954 | merged.append( |
| 955 | MatchResult(start, end, text, None, l_group[0].debug_info) |
| 956 | ) |
| 957 | result_index[merged[-1]] = end_index |
| 958 | return merged |
no test coverage detected