summaryrefslogtreecommitdiffstats
path: root/glances/outputs/glances_bars.py
diff options
context:
space:
mode:
Diffstat (limited to 'glances/outputs/glances_bars.py')
-rw-r--r--glances/outputs/glances_bars.py35
1 files changed, 28 insertions, 7 deletions
diff --git a/glances/outputs/glances_bars.py b/glances/outputs/glances_bars.py
index 171099bf..632efed9 100644
--- a/glances/outputs/glances_bars.py
+++ b/glances/outputs/glances_bars.py
@@ -34,6 +34,19 @@ class Bar(object):
unit_char='%',
display_value=True,
min_value=0, max_value=100):
+ """Init a bar (used in Quicllook plugin)
+
+ Args:
+ size (_type_): Bar size
+ bar_char (str, optional): Bar character. Defaults to '|'.
+ empty_char (str, optional): Empty character. Defaults to ' '.
+ pre_char (str, optional): Display this char before the bar. Defaults to '['.
+ post_char (str, optional): Display this char after the bar. Defaults to ']'.
+ unit_char (str, optional): Unit char to be displayed. Defaults to '%'.
+ display_value (bool, optional): Do i need to display the value. Defaults to True.
+ min_value (int, optional): Minimum value. Defaults to 0.
+ max_value (int, optional): Maximum value (percent can be higher). Defaults to 100.
+ """
# Build curses_bars
self.__curses_bars = [empty_char] * 5 + [bar_char] * 5
# Bar size
@@ -77,26 +90,34 @@ class Bar(object):
def post_char(self):
return self.__post_char
- def get(self, overwrite=''):
+ def get(self, overlay: str = None):
"""Return the bars."""
value = self.max_value if self.percent > self.max_value else self.percent
+
+ # Build the bar
frac, whole = modf(self.size * value / 100.0)
ret = self.__curses_bars[8] * int(whole)
if frac > 0:
ret += self.__curses_bars[int(frac * 8)]
whole += 1
ret += self.__empty_char * int(self.size - whole)
+
+ # Add the value
if self.__display_value:
- if self.percent > self.max_value:
- ret = '{}>{:4.0f}{}'.format(ret,
- self.max_value,
- self.__unit_char)
+ if self.percent >= self.max_value:
+ ret = '{} {}{:3.0f}{}'.format(ret,
+ '>' if self.percent > self.max_value else ' ',
+ self.max_value,
+ self.__unit_char)
else:
ret = '{}{:5.1f}{}'.format(ret,
self.percent,
self.__unit_char)
- if overwrite and len(overwrite) < len(ret) - 6:
- ret = overwrite + ret[len(overwrite):]
+
+ # Add overlay
+ if overlay and len(overlay) < len(ret) - 6:
+ ret = overlay + ret[len(overlay):]
+
return ret
def __str__(self):