| 496 | |
| 497 | |
| 498 | class GroupQueue: |
| 499 | |
| 500 | def __init__(self, *groups): |
| 501 | self.queue = [] |
| 502 | for group in groups: |
| 503 | self.enq(group) |
| 504 | |
| 505 | def enq(self, group): |
| 506 | depth = group.depth |
| 507 | while depth > len(self.queue) - 1: |
| 508 | self.queue.append([]) |
| 509 | self.queue[depth].append(group) |
| 510 | |
| 511 | def deq(self): |
| 512 | for stack in self.queue: |
| 513 | for idx, group in enumerate(reversed(stack)): |
| 514 | if group.breakables: |
| 515 | del stack[idx] |
| 516 | group.want_break = True |
| 517 | return group |
| 518 | for group in stack: |
| 519 | group.want_break = True |
| 520 | del stack[:] |
| 521 | |
| 522 | def remove(self, group): |
| 523 | try: |
| 524 | self.queue[group.depth].remove(group) |
| 525 | except ValueError: |
| 526 | pass |
| 527 | |
| 528 | |
| 529 | class RawText: |
no outgoing calls
no test coverage detected
searching dependent graphs…