mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
Add support for windows unicode console to prints()
This commit is contained in:
parent
07802d913c
commit
31d4b7924a
@ -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,18 +41,7 @@ class ANSIStream(Stream):
|
||||
|
||||
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:
|
||||
with ColoredStream(self.stream, self.color[level]):
|
||||
self._prints(*args, **kwargs)
|
||||
|
||||
def flush(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user