projects
/
python_utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mypy clean!
[python_utils.git]
/
text_utils.py
diff --git
a/text_utils.py
b/text_utils.py
index cfed1699dc3f29090a7846bff8dc2d3c89fa9174..0d07905be78daeb273995a0b5e131722e6e344d5 100644
(file)
--- a/
text_utils.py
+++ b/
text_utils.py
@@
-6,7
+6,7
@@
from collections import defaultdict
import logging
import math
import sys
import logging
import math
import sys
-from typing import List, NamedTuple, Optional
+from typing import
Dict, Generator,
List, NamedTuple, Optional
from ansi import fg, reset
from ansi import fg, reset
@@
-22,10
+22,10
@@
class RowsColumns(NamedTuple):
def get_console_rows_columns() -> RowsColumns:
"""Returns the number of rows/columns on the current console."""
def get_console_rows_columns() -> RowsColumns:
"""Returns the number of rows/columns on the current console."""
- from exec_utils import cmd
_with_timeout
+ from exec_utils import cmd
try:
try:
- rows, columns = cmd
_with_timeout
(
+ rows, columns = cmd(
"stty size",
timeout_seconds=1.0,
).split()
"stty size",
timeout_seconds=1.0,
).split()
@@
-69,7
+69,7
@@
def bar_graph(
reset=reset(),
left_end="[",
right_end="]",
reset=reset(),
left_end="[",
right_end="]",
-) ->
None
:
+) ->
str
:
"""Returns a string containing a bar graph.
>>> bar_graph(0.5, fgcolor='', reset='')
"""Returns a string containing a bar graph.
>>> bar_graph(0.5, fgcolor='', reset='')
@@
-87,6
+87,8
@@
def bar_graph(
if whole_width == width:
whole_width -= 1
part_char = "▉"
if whole_width == width:
whole_width -= 1
part_char = "▉"
+ elif whole_width == 0 and percentage > 0.0:
+ part_char = "▏"
else:
remainder_width = (percentage * width) % 1
part_width = math.floor(remainder_width * 8)
else:
remainder_width = (percentage * width) % 1
part_width = math.floor(remainder_width * 8)
@@
-215,8
+217,8
@@
def justify_text(text: str, *, width: int = 80, alignment: str = "c") -> str:
return retval[1:]
return retval[1:]
-def generate_padded_columns(text: List[str]) ->
st
r:
- max_width = defaultdict(int)
+def generate_padded_columns(text: List[str]) ->
Generato
r:
+ max_width
: Dict[int, int]
= defaultdict(int)
for line in text:
for pos, word in enumerate(line.split()):
max_width[pos] = max(max_width[pos], len(word))
for line in text:
for pos, word in enumerate(line.split()):
max_width[pos] = max(max_width[pos], len(word))