blob: e7552c7ee97029ef1cb9fb0e5cf6bb1fb5d435d7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
import sys
import click
class Printer(object):
"""Wrap click.echo_via_pager() so it accepts binary data."""
def write(self, data):
if isinstance(data, bytes):
data = data.decode('utf-8')
# echo_via_pager() already appends a '\n' at the end of text,
# so we use rstrip() to remove extra newlines (#89)
click.echo_via_pager(data.rstrip())
def flush(self):
pass
def close(self):
pass
def isatty(self):
return True
def fileno(self):
return sys.stdout.fileno()
def clear(self):
click.clear()
class TextWriter(object):
"""Wrap a file-like object, opened with 'wb' or 'ab', so it accepts text
data.
"""
def __init__(self, fp):
self.fp = fp
def write(self, data):
if isinstance(data, str):
data = data.encode('utf-8')
self.fp.write(data)
def flush(self):
self.fp.flush()
def close(self):
self.fp.close()
def isatty(self):
return self.fp.isatty()
def fileno(self):
return self.fp.fileno()
|