| 108 | return True |
| 109 | |
| 110 | class Reader(object): |
| 111 | def __init__(self, fd): |
| 112 | self.fd = fd |
| 113 | |
| 114 | def process_line(self, line): |
| 115 | it = iter(map(int, line.strip().split())) |
| 116 | return zip(it,it) |
| 117 | |
| 118 | def gen_edges(self): |
| 119 | edges = [] |
| 120 | while True: |
| 121 | try: |
| 122 | line = self.fd.next() |
| 123 | edges.extend( self.process_line(line) ) |
| 124 | if edges[-1] == (0,0): |
| 125 | edges.pop() |
| 126 | yield edges |
| 127 | edges = [] |
| 128 | elif edges[-1] == (-1,-1): |
| 129 | break |
| 130 | except StopIteration: |
| 131 | break |
| 132 | |
| 133 | def __del__(self): |
| 134 | self.fd.close() |
| 135 | |
| 136 | |
| 137 | if __name__=='__main__': |