mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -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'
|
enc = 'utf-8'
|
||||||
for i, arg in enumerate(args):
|
for i, arg in enumerate(args):
|
||||||
if isinstance(arg, unicode):
|
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:
|
try:
|
||||||
arg = arg.encode(enc)
|
arg = arg.encode(enc)
|
||||||
except UnicodeEncodeError:
|
except UnicodeEncodeError:
|
||||||
|
@ -41,19 +41,8 @@ class ANSIStream(Stream):
|
|||||||
|
|
||||||
def prints(self, level, *args, **kwargs):
|
def prints(self, level, *args, **kwargs):
|
||||||
from calibre.utils.terminal import ColoredStream
|
from calibre.utils.terminal import ColoredStream
|
||||||
with ColoredStream(self.stream, self.color[level]) as cs:
|
with ColoredStream(self.stream, self.color[level]):
|
||||||
kwargs['file'] = self.stream
|
self._prints(*args, **kwargs)
|
||||||
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)
|
|
||||||
|
|
||||||
def flush(self):
|
def flush(self):
|
||||||
self.stream.flush()
|
self.stream.flush()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user