Fix horizontal graph

* generate_horizontal_graph() now returns a list instead of a str
This commit is contained in:
2Shirt 2018-12-17 20:16:35 -07:00
parent ec8c78197b
commit 8c5820d5aa
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C

View file

@ -608,11 +608,8 @@ def build_status_string(label, status, info_label=False):
**COLORS) **COLORS)
def generate_horizontal_graph(rates, oneline=False): def generate_horizontal_graph(rates, oneline=False):
"""Generate two-line horizontal graph from rates, returns str.""" """Generate horizontal graph from rates, returns list."""
line_1 = '' graph = ['', '', '', '']
line_2 = ''
line_3 = ''
line_4 = ''
for r in rates: for r in rates:
step = get_graph_step(r, scale=32) step = get_graph_step(r, scale=32)
if oneline: if oneline:
@ -630,33 +627,30 @@ def generate_horizontal_graph(rates, oneline=False):
# Build graph # Build graph
full_block = '{}{}'.format(r_color, IO_VARS['Graph Horizontal'][-1]) full_block = '{}{}'.format(r_color, IO_VARS['Graph Horizontal'][-1])
if step >= 24: if step >= 24:
line_1 += '{}{}'.format(r_color, IO_VARS['Graph Horizontal'][step-24]) graph[0] += '{}{}'.format(r_color, IO_VARS['Graph Horizontal'][step-24])
line_2 += full_block graph[1] += full_block
line_3 += full_block graph[2] += full_block
line_4 += full_block graph[3] += full_block
elif step >= 16: elif step >= 16:
line_1 += ' ' graph[0] += ' '
line_2 += '{}{}'.format(r_color, IO_VARS['Graph Horizontal'][step-16]) graph[1] += '{}{}'.format(r_color, IO_VARS['Graph Horizontal'][step-16])
line_3 += full_block graph[2] += full_block
line_4 += full_block graph[3] += full_block
elif step >= 8: elif step >= 8:
line_1 += ' ' graph[0] += ' '
line_2 += ' ' graph[1] += ' '
line_3 += '{}{}'.format(r_color, IO_VARS['Graph Horizontal'][step-8]) graph[2] += '{}{}'.format(r_color, IO_VARS['Graph Horizontal'][step-8])
line_4 += full_block graph[3] += full_block
else: else:
line_1 += ' ' graph[0] += ' '
line_2 += ' ' graph[1] += ' '
line_3 += ' ' graph[2] += ' '
line_4 += '{}{}'.format(r_color, IO_VARS['Graph Horizontal'][step]) graph[3] += '{}{}'.format(r_color, IO_VARS['Graph Horizontal'][step])
line_1 += COLORS['CLEAR'] graph = [line+COLORS['CLEAR'] for line in graph]
line_2 += COLORS['CLEAR']
line_3 += COLORS['CLEAR']
line_4 += COLORS['CLEAR']
if oneline: if oneline:
return line_4 return graph[:-1]
else: else:
return '\n'.join([line_1, line_2, line_3, line_4]) return graph
def get_graph_step(rate, scale=16): def get_graph_step(rate, scale=16):
"""Get graph step based on rate and scale, returns int.""" """Get graph step based on rate and scale, returns int."""