diff options
author | Michał Górny <mgorny@gentoo.org> | 2018-07-17 21:50:45 +0200 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2018-07-18 16:19:11 -0700 |
commit | bc0fa8d3795ed7e40aaa00f579bb2977897bce25 (patch) | |
tree | 2a62c721ee8dec47ddb564254e1cbd967577d1f0 /lib/portage/cache/index/IndexStreamIterator.py | |
parent | EventLoop: raise TypeError for unexpected call_* keyword args (diff) | |
download | portage-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.py | 27 |
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() |