| 983 | node = parent |
| 984 | |
| 985 | def tokens(self, sequence_id: int, keep_len: Optional[int] = None) -> List[int]: |
| 986 | length = self.sequence_lengths[sequence_id] |
| 987 | target_len = length if keep_len is None else keep_len |
| 988 | assert 0 <= target_len <= length |
| 989 | node = self.sequences[sequence_id] |
| 990 | labels: List[Tuple[int, ...]] = [] |
| 991 | while node is not self.root: |
| 992 | labels.append(node.label) |
| 993 | parent = node.parent |
| 994 | assert parent is not None |
| 995 | node = parent |
| 996 | values: List[int] = [] |
| 997 | for label in reversed(labels): |
| 998 | values.extend(label) |
| 999 | return values[:target_len] |
| 1000 | |
| 1001 | def longest_prefix( |
| 1002 | self, |