diff options
Diffstat (limited to 'glances/outputs/glances_bars.py')
-rw-r--r-- | glances/outputs/glances_bars.py | 31 |
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): |