Use OrderedDicts to avoid lambda sorting

This commit is contained in:
2Shirt 2018-12-08 17:50:11 -07:00
parent 0390290f10
commit 49471663f5
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C

View file

@ -4,6 +4,7 @@ import json
import re import re
import time import time
from collections import OrderedDict
from functions.sensors import * from functions.sensors import *
from functions.tmux import * from functions.tmux import *
@ -109,7 +110,7 @@ class DiskObj():
self.path = disk_path self.path = disk_path
self.smart_attributes = {} self.smart_attributes = {}
self.smartctl = {} self.smartctl = {}
self.tests = {} self.tests = OrderedDict()
self.get_details() self.get_details()
self.get_smart_details() self.get_smart_details()
@ -188,32 +189,28 @@ class State():
self.panes = {} self.panes = {}
self.progress_out = '{}/progress.out'.format(global_vars['LogDir']) self.progress_out = '{}/progress.out'.format(global_vars['LogDir'])
self.quick_mode = False self.quick_mode = False
self.tests = { self.tests = OrderedDict({
'Prime95 & Temps': { 'Prime95 & Temps': {
'Enabled': False, 'Enabled': False,
'Function': run_mprime_test, 'Function': run_mprime_test,
'Objects': [], 'Objects': [],
'Order': 1,
}, },
'NVMe / SMART': { 'NVMe / SMART': {
'Enabled': False, 'Enabled': False,
'Function': run_nvme_smart_tests, 'Function': run_nvme_smart_tests,
'Objects': [], 'Objects': [],
'Order': 2,
}, },
'badblocks': { 'badblocks': {
'Enabled': False, 'Enabled': False,
'Function': run_badblocks_test, 'Function': run_badblocks_test,
'Objects': [], 'Objects': [],
'Order': 3,
}, },
'I/O Benchmark': { 'I/O Benchmark': {
'Enabled': False, 'Enabled': False,
'Function': run_io_benchmark, 'Function': run_io_benchmark,
'Objects': [], 'Objects': [],
'Order': 4,
}, },
} })
def init(self): def init(self):
"""Set log and add devices.""" """Set log and add devices."""
@ -579,9 +576,7 @@ def run_hw_tests(state):
# Show selected tests and create TestObj()s # Show selected tests and create TestObj()s
print_info('Selected Tests:') print_info('Selected Tests:')
for k, v in sorted( for k, v in state.tests.items():
state.tests.items(),
key=lambda kv: kv[1]['Order']):
print_standard(' {:<15} {}{}{} {}'.format( print_standard(' {:<15} {}{}{} {}'.format(
k, k,
COLORS['GREEN'] if v['Enabled'] else COLORS['RED'], COLORS['GREEN'] if v['Enabled'] else COLORS['RED'],
@ -606,9 +601,7 @@ def run_hw_tests(state):
disk.safety_check() disk.safety_check()
# Run tests # Run tests
for k, v in sorted( for k, v in state.tests.items():
state.tests.items(),
key=lambda kv: kv[1]['Order']):
if v['Enabled']: if v['Enabled']:
# TODO # TODO
pass pass
@ -890,9 +883,7 @@ def update_progress_pane(state):
output.append(' ') output.append(' ')
# Disks # Disks
for k, v in sorted( for k, v in state.tests.items():
state.tests.items(),
key=lambda kv: kv[1]['Order']):
if 'Prime95' not in k and v['Enabled']: if 'Prime95' not in k and v['Enabled']:
output.append('{BLUE}{test_name}{CLEAR}'.format( output.append('{BLUE}{test_name}{CLEAR}'.format(
test_name=k, **COLORS)) test_name=k, **COLORS))