| 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 | |
import sys, os |
|
|
def get_terminal_width(): |
try: |
import termios,fcntl,struct |
call = fcntl.ioctl(0,termios.TIOCGWINSZ,"\000"*8) |
height,width = struct.unpack( "hhhh", call ) [:2] |
terminal_width = width |
except (SystemExit, KeyboardInterrupt), e: |
raise |
except: |
|
terminal_width = int(os.environ.get('COLUMNS', 80))-1 |
return terminal_width |
|
|
terminal_width = get_terminal_width() |
|
|
def ansi_print(text, esc, file=None, newline=True, flush=False): |
if file is None: |
file = sys.stderr |
text = text.rstrip() |
if esc and sys.platform != "win32" and file.isatty(): |
if not isinstance(esc, tuple): |
esc = (esc,) |
text = (''.join(['\x1b[%sm' % cod for cod in esc]) + |
text + |
'\x1b[0m') |
if newline: |
text += '\n' |
file.write(text) |
if flush: |
file.flush() |
|
|
|
|
|
| |