mirror of https://github.com/aristocratos/bpytop
Changed: Net graphs will now round up any value above 0 to register on graph
parent
e187e06a8e
commit
a1316d4d33
16
bpytop.py
16
bpytop.py
|
@ -1430,22 +1430,26 @@ class Graph:
|
||||||
color_max_value: int
|
color_max_value: int
|
||||||
offset: int
|
offset: int
|
||||||
no_zero: bool
|
no_zero: bool
|
||||||
|
round_up_low: bool
|
||||||
current: bool
|
current: bool
|
||||||
last: int
|
last: int
|
||||||
|
lowest: int = 0
|
||||||
symbol: Dict[float, str]
|
symbol: Dict[float, str]
|
||||||
|
|
||||||
def __init__(self, width: int, height: int, color: Union[List[str], Color, None], data: List[int], invert: bool = False, max_value: int = 0, offset: int = 0, color_max_value: Union[int, None] = None, no_zero: bool = False):
|
def __init__(self, width: int, height: int, color: Union[List[str], Color, None], data: List[int], invert: bool = False, max_value: int = 0, offset: int = 0, color_max_value: Union[int, None] = None, no_zero: bool = False, round_up_low: bool = False):
|
||||||
self.graphs: Dict[bool, List[str]] = {False : [], True : []}
|
self.graphs: Dict[bool, List[str]] = {False : [], True : []}
|
||||||
self.current: bool = True
|
self.current: bool = True
|
||||||
self.width = width
|
self.width = width
|
||||||
self.height = height
|
self.height = height
|
||||||
self.invert = invert
|
self.invert = invert
|
||||||
self.offset = offset
|
self.offset = offset
|
||||||
self.no_zero = no_zero
|
self.round_up_low = round_up_low
|
||||||
|
self.no_zero = no_zero or round_up_low
|
||||||
if not data: data = [0]
|
if not data: data = [0]
|
||||||
if max_value:
|
if max_value:
|
||||||
|
self.lowest = 1 if self.round_up_low else 0
|
||||||
self.max_value = max_value
|
self.max_value = max_value
|
||||||
data = [ min(100, (v + offset) * 100 // (max_value + offset)) for v in data ] #* Convert values to percentage values of max_value with max_value as ceiling
|
data = [ min_max((v + offset) * 100 // (max_value + offset), self.lowest, 100) for v in data ] #* Convert values to percentage values of max_value with max_value as ceiling
|
||||||
else:
|
else:
|
||||||
self.max_value = 0
|
self.max_value = 0
|
||||||
if color_max_value:
|
if color_max_value:
|
||||||
|
@ -1504,7 +1508,7 @@ class Graph:
|
||||||
else:
|
else:
|
||||||
if self.height == 1: value[side] = round(val * 4 / 100 + 0.5)
|
if self.height == 1: value[side] = round(val * 4 / 100 + 0.5)
|
||||||
else: value[side] = round((val - h_low) * 4 / (h_high - h_low) + 0.1)
|
else: value[side] = round((val - h_low) * 4 / (h_high - h_low) + 0.1)
|
||||||
if self.no_zero and not (new and v == 0 and side == "left") and h == self.height - 1 and value[side] < 1: value[side] = 1
|
if self.no_zero and not (new and v == 0 and side == "left") and h == self.height - 1 and value[side] < 1 and not (self.round_up_low and val == 0): value[side] = 1
|
||||||
if new: self.last = data[v]
|
if new: self.last = data[v]
|
||||||
self.graphs[self.current][h] += self.symbol[float(value["left"] + value["right"] / 10)]
|
self.graphs[self.current][h] += self.symbol[float(value["left"] + value["right"] / 10)]
|
||||||
if data: self.last = data[-1]
|
if data: self.last = data[-1]
|
||||||
|
@ -1529,7 +1533,7 @@ class Graph:
|
||||||
else:
|
else:
|
||||||
for n in range(self.height):
|
for n in range(self.height):
|
||||||
self.graphs[self.current][n] = self.graphs[self.current][n][1:]
|
self.graphs[self.current][n] = self.graphs[self.current][n][1:]
|
||||||
if self.max_value: value = (value + self.offset) * 100 // (self.max_value + self.offset) if value < self.max_value else 100
|
if self.max_value: value = min_max((value + self.offset) * 100 // (self.max_value + self.offset), self.lowest, 100)
|
||||||
self._create([value])
|
self._create([value])
|
||||||
return self.out
|
return self.out
|
||||||
|
|
||||||
|
@ -2362,7 +2366,7 @@ class NetBox(Box, SubBox):
|
||||||
if cls.redraw: stats["redraw"] = True
|
if cls.redraw: stats["redraw"] = True
|
||||||
if stats["redraw"] or cls.resized:
|
if stats["redraw"] or cls.resized:
|
||||||
Graphs.net[direction] = Graph(w - bw - 3, cls.graph_height[direction], THEME.gradient[direction], stats["speed"], max_value=net.sync_top if CONFIG.net_sync else stats["graph_top"],
|
Graphs.net[direction] = Graph(w - bw - 3, cls.graph_height[direction], THEME.gradient[direction], stats["speed"], max_value=net.sync_top if CONFIG.net_sync else stats["graph_top"],
|
||||||
invert=direction != "download", color_max_value=net.net_min.get(direction) if CONFIG.net_color_fixed else None)
|
invert=direction != "download", color_max_value=net.net_min.get(direction) if CONFIG.net_color_fixed else None, round_up_low=True)
|
||||||
out += f'{Mv.to(y if direction == "download" else y + cls.graph_height["download"], x)}{Graphs.net[direction](None if stats["redraw"] else stats["speed"][-1])}'
|
out += f'{Mv.to(y if direction == "download" else y + cls.graph_height["download"], x)}{Graphs.net[direction](None if stats["redraw"] else stats["speed"][-1])}'
|
||||||
|
|
||||||
out += (f'{Mv.to(by+cy, bx)}{THEME.main_fg}{cls.symbols[direction]} {strings["byte_ps"]:<10.10}' +
|
out += (f'{Mv.to(by+cy, bx)}{THEME.main_fg}{cls.symbols[direction]} {strings["byte_ps"]:<10.10}' +
|
||||||
|
|
Loading…
Reference in New Issue