From 25e4eaef483716decb4e1510ec675b22c4d7400a Mon Sep 17 00:00:00 2001 From: Tim Hoffmann <2836374+timhoffm@users.noreply.github.com> Date: Sat, 24 Nov 2018 23:21:24 +0100 Subject: [PATCH] Write error messages to logger instead of stderr --- lib/matplotlib/afm.py | 12 +++++++----- lib/matplotlib/backends/backend_pdf.py | 13 +++---------- lib/matplotlib/backends/backend_pgf.py | 4 ++-- 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/lib/matplotlib/afm.py b/lib/matplotlib/afm.py index 3db8442e8de7..321a33ade7f1 100644 --- a/lib/matplotlib/afm.py +++ b/lib/matplotlib/afm.py @@ -38,13 +38,17 @@ """ from collections import namedtuple +import logging import re -import sys + from ._mathtext_data import uni2type1 from matplotlib.cbook import deprecated +_log = logging.getLogger(__name__) + + # some afm files have floats where we are expecting ints -- there is # probably a better way to handle this (support floats, round rather # than truncate). But I don't know what the best approach is now and @@ -160,12 +164,10 @@ def _parse_header(fh): try: d[key] = headerConverters[key](val) except ValueError: - print('Value error parsing header in AFM:', key, val, - file=sys.stderr) + _log.error('Value error parsing header in AFM: %s, %s', key, val) continue except KeyError: - print('Found an unknown keyword in AFM header (was %r)' % key, - file=sys.stderr) + _log.error('Found an unknown keyword in AFM header (was %r)' % key) continue if key == b'StartCharMetrics': return d diff --git a/lib/matplotlib/backends/backend_pdf.py b/lib/matplotlib/backends/backend_pdf.py index 98a559c836bd..aa1b8bdd5fc6 100644 --- a/lib/matplotlib/backends/backend_pdf.py +++ b/lib/matplotlib/backends/backend_pdf.py @@ -1520,23 +1520,16 @@ def writeObject(self, object, contents): def writeXref(self): """Write out the xref table.""" - self.startxref = self.fh.tell() - self.tell_base self.write(b"xref\n0 %d\n" % self.nextObject) - i = 0 - borken = False - for offset, generation, name in self.xrefTable: + for i, (offset, generation, name) in enumerate(self.xrefTable): if offset is None: - print('No offset for object %d (%s)' % (i, name), - file=sys.stderr) - borken = True + raise AssertionError( + 'No offset for object %d (%s)' % (i, name)) else: key = b"f" if name == 'the zero object' else b"n" text = b"%010d %05d %b \n" % (offset, generation, key) self.write(text) - i += 1 - if borken: - raise AssertionError('Indirect object does not exist') def writeInfoDict(self): """Write out the info dictionary, checking it for good form""" diff --git a/lib/matplotlib/backends/backend_pgf.py b/lib/matplotlib/backends/backend_pgf.py index cd14794d7ce8..c1fa91e6c765 100644 --- a/lib/matplotlib/backends/backend_pgf.py +++ b/lib/matplotlib/backends/backend_pgf.py @@ -756,10 +756,10 @@ def add(tmpdir): @staticmethod def cleanup_remaining_tmpdirs(): for tmpdir in TmpDirCleaner.remaining_tmpdirs: + error_message = "error deleting tmp directory {}".format(tmpdir) shutil.rmtree( tmpdir, - onerror=lambda *args: print("error deleting tmp directory %s" - % tmpdir, file=sys.stderr)) + onerror=lambda *args: _log.error(error_message)) class FigureCanvasPgf(FigureCanvasBase):