X-Git-Url: http://git.kaliko.me/?p=python-musicpd.git;a=blobdiff_plain;f=mpd.py;h=380f5b1bd5426ea36c2f040820067e0a79386eb1;hp=8810face31f19cc2147815d71f286fca0c0f9c14;hb=a55e3f15d6d53355acae2d809e1a5c512115b0dc;hpb=535e659098997d301a7176e45bfc806bbc5cedb4 diff --git a/mpd.py b/mpd.py index 8810fac..380f5b1 100644 --- a/mpd.py +++ b/mpd.py @@ -275,14 +275,16 @@ class MPDClient(object): self._fetch_nothing() def _iterator_wrapper(self, iterator): - self._iterating = True - for item in iterator: - yield item - self._iterating = False + try: + for item in iterator: + yield item + finally: + self._iterating = False def _wrap_iterator(self, iterator): if not self.iterate: return list(iterator) + self._iterating = True return self._iterator_wrapper(iterator) def _fetch_nothing(self): @@ -418,6 +420,8 @@ class MPDClient(object): def command_list_end(self): if self._command_list is None: raise CommandListError("Not in command list") + if self._iterating: + raise IteratingError("Already iterating over a command list") self._write_command("command_list_end") return self._fetch_command_list()