# Python MPD client library
-# Copyright (C) 2008 J. Alexander Treuman <jat@spatialrift.net>
+# Copyright (C) 2008-2010 J. Alexander Treuman <jat@spatialrift.net>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
raise PendingCommandError("Cannot execute %s with "
"pending commands" % command)
retval = self._commands[command]
- if self._command_list is not None and not callable(retval):
- raise CommandListError("%s not allowed in command list" % command)
- self._write_command(command, args)
- if self._command_list is None:
+ if self._command_list is not None:
+ if not callable(retval):
+ raise CommandListError("%s not allowed in command list" %
+ command)
+ self._write_command(command, args)
+ self._command_list.append(retval)
+ else:
+ self._write_command(command, args)
if callable(retval):
return retval()
return retval
- self._command_list.append(retval)
def _write_line(self, line):
self._wfile.write("%s\n" % line)
self._sock.close()
self._reset()
+ def fileno(self):
+ if not self._sock:
+ raise ConnectionError("Not connected")
+ return self._sock.fileno()
+
def command_list_ok_begin(self):
if self._command_list is not None:
raise CommandListError("Already in command list")