aboutsummaryrefslogtreecommitdiff
blob: 972aee11658bbb0df8ed76c2613d60df9d7d13e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Copyright 2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

class IndexStreamIterator(object):

	def __init__(self, f, parser):

		self.parser = parser
		self._file = f

	def close(self):

		if self._file is not None:
			self._file.close()
			self._file = None

	def __iter__(self):

		try:

			for line in self._file:
				node = self.parser(line)
				if node is not None:
					yield node

		finally:
			self.close()