1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-09-09 06:42:35 +01:00

fw/instrument: use signal priorities

Use signal priorities to define priority decorators, rather than
defining own priority enum.
This commit is contained in:
Sergei Trofimov
2018-05-30 11:22:14 +01:00
committed by Marc Bonnici
parent d79e8324f0
commit 864ded60ae
3 changed files with 15 additions and 15 deletions

View File

@@ -18,7 +18,8 @@ import sys
import string import string
from copy import copy from copy import copy
from wa.framework.instrument import SIGNAL_MAP, Priority from wa.framework.instrument import SIGNAL_MAP
from wa.framework.signal import CallbackPriority
from wa.utils.doc import format_simple_table from wa.utils.doc import format_simple_table
@@ -36,7 +37,7 @@ def escape_trailing_underscore(value):
def generate_instrument_method_map(outfile): def generate_instrument_method_map(outfile):
signal_table = format_simple_table([(k, v) for k, v in SIGNAL_MAP.iteritems()], signal_table = format_simple_table([(k, v) for k, v in SIGNAL_MAP.iteritems()],
headers=['method name', 'signal'], align='<<') headers=['method name', 'signal'], align='<<')
priority_table = format_simple_table(zip(Priority.names, Priority.values), priority_table = format_simple_table(zip(CallbackPriority.names, CallbackPriority.values),
headers=['decorator', 'priority'], align='<>') headers=['decorator', 'priority'], align='<>')
with open(OUTPUT_TEMPLATE_FILE) as fh: with open(OUTPUT_TEMPLATE_FILE) as fh:
template = string.Template(fh.read()) template = string.Template(fh.read())

View File

@@ -7,8 +7,8 @@ from wa.framework.exception import (CommandError, ConfigError, HostError, Instru
PluginLoaderError, ResourceError, TargetError, PluginLoaderError, ResourceError, TargetError,
TargetNotRespondingError, TimeoutError, ToolError, TargetNotRespondingError, TimeoutError, ToolError,
ValidationError, WAError, WorkloadError, WorkerThreadError) ValidationError, WAError, WorkloadError, WorkerThreadError)
from wa.framework.instrument import (Instrument, very_slow, slow, normal, fast, from wa.framework.instrument import (Instrument, extremely_slow, very_slow, slow, normal, fast,
very_fast) very_fast, extremely_fast)
from wa.framework.output import RunOutput, discover_wa_outputs from wa.framework.output import RunOutput, discover_wa_outputs
from wa.framework.output_processor import OutputProcessor from wa.framework.output_processor import OutputProcessor
from wa.framework.plugin import Plugin, Parameter, Alias from wa.framework.plugin import Plugin, Parameter, Alias

View File

@@ -108,7 +108,7 @@ from wa.framework.exception import (WAError, TargetNotRespondingError, TimeoutEr
WorkloadError, TargetError) WorkloadError, TargetError)
from wa.utils.log import log_error from wa.utils.log import log_error
from wa.utils.misc import isiterable from wa.utils.misc import isiterable
from wa.utils.types import identifier, enum, level from wa.utils.types import identifier, level
logger = logging.getLogger('instruments') logger = logging.getLogger('instruments')
@@ -156,9 +156,6 @@ SIGNAL_MAP = OrderedDict([
]) ])
Priority = enum(['very_slow', 'slow', 'normal', 'fast', 'very_fast'], -20, 10)
def get_priority(func): def get_priority(func):
return getattr(getattr(func, 'im_func', func), return getattr(getattr(func, 'im_func', func),
'priority', Priority.normal) 'priority', Priority.normal)
@@ -169,8 +166,8 @@ def priority(priority):
def wrapper(*args, **kwargs): def wrapper(*args, **kwargs):
return func(*args, **kwargs) return func(*args, **kwargs)
wrapper.func_name = func.func_name wrapper.func_name = func.func_name
if priority in Priority.levels: if priority in signal.CallbackPriority.levels:
wrapper.priority = Priority(priority) wrapper.priority = signal.CallbackPriority(priority)
else: else:
if not isinstance(priority, int): if not isinstance(priority, int):
msg = 'Invalid priorty "{}"; must be an int or one of {}' msg = 'Invalid priorty "{}"; must be an int or one of {}'
@@ -180,11 +177,13 @@ def priority(priority):
return decorate return decorate
very_slow = priority(Priority.very_slow) extremely_slow = priority(signal.CallbackPriority.extremely_low)
slow = priority(Priority.slow) very_slow = priority(signal.CallbackPriority.very_low)
normal = priority(Priority.normal) slow = priority(signal.CallbackPriority.low)
fast = priority(Priority.fast) normal = priority(signal.CallbackPriority.normal)
very_fast = priority(Priority.very_fast) fast = priority(signal.CallbackPriority.high)
very_fast = priority(signal.CallbackPriority.very_high)
extremely_fast = priority(signal.CallbackPriority.extremely_high)
installed = [] installed = []