aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2018-07-17 21:50:45 +0200
committerZac Medico <zmedico@gentoo.org>2018-07-18 16:19:11 -0700
commitbc0fa8d3795ed7e40aaa00f579bb2977897bce25 (patch)
tree2a62c721ee8dec47ddb564254e1cbd967577d1f0 /lib/portage/cache/index/IndexStreamIterator.py
parentEventLoop: raise TypeError for unexpected call_* keyword args (diff)
downloadportage-bc0fa8d3795ed7e40aaa00f579bb2977897bce25.tar.gz
portage-bc0fa8d3795ed7e40aaa00f579bb2977897bce25.tar.bz2
portage-bc0fa8d3795ed7e40aaa00f579bb2977897bce25.zip
Rename pym→lib, for better distutils-r1 interoperability
Closes: https://github.com/gentoo/portage/pull/343
Diffstat (limited to 'lib/portage/cache/index/IndexStreamIterator.py')
-rw-r--r--lib/portage/cache/index/IndexStreamIterator.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/portage/cache/index/IndexStreamIterator.py b/lib/portage/cache/index/IndexStreamIterator.py
new file mode 100644
index 000000000..972aee116
--- /dev/null
+++ b/lib/portage/cache/index/IndexStreamIterator.py
@@ -0,0 +1,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()