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.py31
1 files changed, 20 insertions, 11 deletions
diff --git a/glances/outputs/glances_bars.py b/glances/outputs/glances_bars.py
index 75899480..8e803fd6 100644
--- a/glances/outputs/glances_bars.py
+++ b/glances/outputs/glances_bars.py
@@ -28,7 +28,12 @@ class Bar(object):
sys.stdout.flush()
"""
- def __init__(self, size, percentage_char='|', empty_char=' ', pre_char='[', post_char=']', with_text=True):
+ def __init__(self, size,
+ percentage_char='|',
+ empty_char=' ',
+ pre_char='[', post_char=']',
+ display_value=True,
+ min_value=0, max_value=100):
# Build curses_bars
self.__curses_bars = [empty_char] * 5 + [percentage_char] * 5
# Bar size
@@ -36,20 +41,20 @@ class Bar(object):
# Bar current percent
self.__percent = 0
# Min and max value
- self.min_value = 0
- self.max_value = 100
+ self.min_value = min_value
+ self.max_value = max_value
# Char used for the decoration
self.__pre_char = pre_char
self.__post_char = post_char
self.__empty_char = empty_char
- self.__with_text = with_text
+ self.__display_value = display_value
@property
def size(self, with_decoration=False):
# Return the bar size, with or without decoration
if with_decoration:
return self.__size
- if self.__with_text:
+ if self.__display_value:
return self.__size - 6
@property
@@ -58,10 +63,8 @@ class Bar(object):
@percent.setter
def percent(self, value):
- if value <= self.min_value:
+ if value < self.min_value:
value = self.min_value
- if value >= self.max_value:
- value = self.max_value
self.__percent = value
@property
@@ -74,14 +77,20 @@ class Bar(object):
def get(self):
"""Return the bars."""
- frac, whole = modf(self.size * self.percent / 100.0)
+ value = self.percent
+ if value > self.max_value:
+ value = self.max_value
+ 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)
- if self.__with_text:
- ret = '{}{:5.1f}%'.format(ret, self.percent)
+ if self.__display_value:
+ if self.percent > self.max_value:
+ ret = '{}>{:4.0f}%'.format(ret, self.max_value)
+ else:
+ ret = '{}{:5.1f}%'.format(ret, self.percent)
return ret
def __str__(self):