Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kliment/Printrun.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvolconst <20997907+volconst@users.noreply.github.com>2021-09-21 01:21:57 +0300
committerGitHub <noreply@github.com>2021-09-21 01:21:57 +0300
commit5a328ff8a64bf25532ed866d85c74b1d42def6d0 (patch)
tree46af97995baaecdddb3413890e3188b7084c59e8
parent82ed6302507eff93247e931c77f1c16b1a71f7fd (diff)
parent1b1d1b531c74373d5b69bce73b204ebc8c5e2f93 (diff)
Merge pull request #1215 from volconst/readlineIndexError
Sync with python exception type changes
-rw-r--r--printrun/printcore.py28
1 files changed, 16 insertions, 12 deletions
diff --git a/printrun/printcore.py b/printrun/printcore.py
index eaa774d..8e84923 100644
--- a/printrun/printcore.py
+++ b/printrun/printcore.py
@@ -350,24 +350,28 @@ class printcore():
self.logError(_("Got rubbish reply from %s at baudrate %s:") % (self.port, self.baud) +
"\n" + _("Maybe a bad baudrate?"))
return None
- except SelectError as e:
- if 'Bad file descriptor' in e.args[1]:
- self.logError(_("Can't read from printer (disconnected?) (SelectError {0}): {1}").format(e.errno, decode_utf8(e.strerror)))
- return None
- else:
- self.logError(_("SelectError ({0}): {1}").format(e.errno, decode_utf8(e.strerror)))
- raise
except SerialException as e:
self.logError(_("Can't read from printer (disconnected?) (SerialException): {0}").format(decode_utf8(str(e))))
return None
except socket.error as e:
self.logError(_("Can't read from printer (disconnected?) (Socket error {0}): {1}").format(e.errno, decode_utf8(e.strerror)))
return None
- except OSError as e:
- if e.errno == errno.EAGAIN: # Not a real error, no data was available
- return ""
- self.logError(_("Can't read from printer (disconnected?) (OS Error {0}): {1}").format(e.errno, e.strerror))
- return None
+ except (OSError, SelectError) as e:
+ # OSError and SelectError are the same thing since python 3.3
+ if self.printer_tcp:
+ # SelectError branch, assume select is used only for socket printers
+ if len(e.args) > 1 and 'Bad file descriptor' in e.args[1]:
+ self.logError(_("Can't read from printer (disconnected?) (SelectError {0}): {1}").format(e.errno, decode_utf8(e.strerror)))
+ return None
+ else:
+ self.logError(_("SelectError ({0}): {1}").format(e.errno, decode_utf8(e.strerror)))
+ raise
+ else:
+ # OSError branch, serial printers
+ if e.errno == errno.EAGAIN: # Not a real error, no data was available
+ return ""
+ self.logError(_("Can't read from printer (disconnected?) (OS Error {0}): {1}").format(e.errno, e.strerror))
+ return None
def _listen_can_continue(self):
if self.printer_tcp: