(self)
| 265 | self._guard = DataFlowReentrantGuard() |
| 266 | |
| 267 | def __iter__(self): |
| 268 | with self._guard: |
| 269 | if self.itr is None: |
| 270 | self.itr = self.ds.__iter__() |
| 271 | cnt = 0 |
| 272 | while True: |
| 273 | try: |
| 274 | dp = next(self.itr) |
| 275 | except StopIteration: |
| 276 | self.itr = self.ds.__iter__() |
| 277 | dp = next(self.itr) |
| 278 | |
| 279 | cnt += 1 |
| 280 | yield dp |
| 281 | if cnt == self._size: |
| 282 | if not self._keep: |
| 283 | self.itr = None |
| 284 | return |
| 285 | |
| 286 | |
| 287 | class MapData(ProxyDataFlow): |