File tree Expand file tree Collapse file tree 1 file changed +17
-9
lines changed Expand file tree Collapse file tree 1 file changed +17
-9
lines changed Original file line number Diff line number Diff line change 22
33from __future__ import annotations
44
5- import re
6- import shutil
7-
8- _ansi_re : re .Pattern = re .compile ('\x1b \\ [(\\ d\\ d;){0,2}\\ d\\ dm' )
5+ import os
6+ import sys
97
108
119def get_terminal_width () -> int :
1210 """Return the width of the terminal in columns."""
13- return shutil .get_terminal_size ().columns - 1
11+ try :
12+ columns = int (os .environ .get ('COLUMNS' , 0 ))
13+ except ValueError :
14+ columns = 0
15+ if columns > 1 :
16+ return columns - 1
17+ try :
18+ return os .get_terminal_size (sys .__stdout__ .fileno ()).columns - 1
19+ except (AttributeError , ValueError , OSError ):
20+ # fallback
21+ return 80 - 1
1422
1523
1624_tw : int = get_terminal_width ()
1725
1826
19- def term_width_line (text : str ) -> str :
20- if not codes :
27+ def term_width_line (formatted_text : str , raw_text : str ) -> str :
28+ if formatted_text == raw_text :
2129 # if no coloring, don't output fancy backspaces
22- return text + '\n '
30+ return formatted_text + '\n '
2331 else :
2432 # codes are not displayed, this must be taken into account
25- return text .ljust (_tw + len (text ) - len (_ansi_re . sub ( '' , text ) )) + '\r '
33+ return formatted_text .ljust (_tw + len (formatted_text ) - len (raw_text )) + '\r '
You can’t perform that action at this time.
0 commit comments