mirror of
git://github.com/kovidgoyal/calibre.git
synced 2026-04-21 16:44:25 +02:00
Add support for windows unicode console to prints()
This commit is contained in:
parent
07802d913c
commit
31d4b7924a
2 changed files with 10 additions and 13 deletions
|
|
@ -183,6 +183,14 @@ def prints(*args, **kwargs):
|
|||
enc = 'utf-8'
|
||||
for i, arg in enumerate(args):
|
||||
if isinstance(arg, unicode):
|
||||
if iswindows:
|
||||
from calibre.utils.terminal import Detect
|
||||
cs = Detect(file)
|
||||
if cs.is_console:
|
||||
cs.write_unicode_text(arg)
|
||||
if i != len(args)-1:
|
||||
file.write(bytes(sep))
|
||||
continue
|
||||
try:
|
||||
arg = arg.encode(enc)
|
||||
except UnicodeEncodeError:
|
||||
|
|
|
|||
|
|
@ -41,19 +41,8 @@ def __init__(self, stream=sys.stdout):
|
|||
|
||||
def prints(self, level, *args, **kwargs):
|
||||
from calibre.utils.terminal import ColoredStream
|
||||
with ColoredStream(self.stream, self.color[level]) as cs:
|
||||
kwargs['file'] = self.stream
|
||||
if cs.is_console:
|
||||
for i, arg in enumerate(args):
|
||||
if isinstance(arg, unicode):
|
||||
cs.write_unicode_text(arg)
|
||||
else:
|
||||
self._prints(arg, end='', file=self.stream)
|
||||
if i < len(args) - 1:
|
||||
self._prints(kwargs.get('sep', ' '), end='', file=self.stream)
|
||||
self._prints('', end=kwargs.get('end', '\n'), file=self.stream)
|
||||
else:
|
||||
self._prints(*args, **kwargs)
|
||||
with ColoredStream(self.stream, self.color[level]):
|
||||
self._prints(*args, **kwargs)
|
||||
|
||||
def flush(self):
|
||||
self.stream.flush()
|
||||
|
|
|
|||
Loading…
Reference in a new issue