From 1d67bf360f45ed28c3a97de8e3c35023869ca49a Mon Sep 17 00:00:00 2001 From: Matthieu Weber Date: Wed, 20 May 2015 22:21:23 +0300 Subject: [PATCH] formatters: use weboob.tools.misc.guess_encoding instead of locale.getpreferredencoding() Signed-off-by: Matthieu Weber Signed-off-by: Romain Bignon --- weboob/tools/application/formatters/iformatter.py | 7 +++---- weboob/tools/application/formatters/table.py | 5 ++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/weboob/tools/application/formatters/iformatter.py b/weboob/tools/application/formatters/iformatter.py index 1e4f6dd4..5bb865b3 100644 --- a/weboob/tools/application/formatters/iformatter.py +++ b/weboob/tools/application/formatters/iformatter.py @@ -22,7 +22,6 @@ from __future__ import print_function import os import sys -import locale import subprocess try: @@ -62,7 +61,7 @@ else: from weboob.capabilities.base import BaseObject from weboob.tools.application.console import ConsoleApplication from weboob.tools.ordereddict import OrderedDict - +from weboob.tools.misc import guess_encoding __all__ = ['IFormatter', 'MandatoryFieldsNotFound'] @@ -122,7 +121,7 @@ class IFormatter(object): def output(self, formatted): if self.outfile != sys.stdout: with open(self.outfile, "a+") as outfile: - outfile.write(formatted.encode(locale.getpreferredencoding(), errors='replace') + os.linesep) + outfile.write(formatted.encode(guess_encoding(outfile), errors='replace') + os.linesep) else: for line in formatted.split('\n'): @@ -134,7 +133,7 @@ class IFormatter(object): self.print_lines = 0 if isinstance(line, unicode): - line = line.encode(locale.getpreferredencoding(), errors='replace') + line = line.encode(guess_encoding(self.outfile), errors='replace') print(line) self.print_lines += 1 diff --git a/weboob/tools/application/formatters/table.py b/weboob/tools/application/formatters/table.py index 228d8ef5..98687c78 100644 --- a/weboob/tools/application/formatters/table.py +++ b/weboob/tools/application/formatters/table.py @@ -17,11 +17,10 @@ # You should have received a copy of the GNU Affero General Public License # along with weboob. If not, see . -import locale - from prettytable import PrettyTable from weboob.capabilities.base import empty +from weboob.tools.misc import guess_encoding from .iformatter import IFormatter @@ -41,7 +40,7 @@ class TableFormatter(IFormatter): def flush(self): s = self.get_formatted_table() if s is not None: - self.output(s.encode(locale.getpreferredencoding(), errors='replace')) + self.output(s.encode(guess_encoding(self.outfile), errors='replace')) def get_formatted_table(self): if len(self.queue) == 0: