# 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()
