mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-02-20 11:58:55 +00:00
fw/instrument: use signal priorities
Use signal priorities to define priority decorators, rather than defining own priority enum.
This commit is contained in:
parent
d79e8324f0
commit
864ded60ae
@ -18,7 +18,8 @@ import sys
|
||||
import string
|
||||
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
|
||||
|
||||
|
||||
@ -36,7 +37,7 @@ def escape_trailing_underscore(value):
|
||||
def generate_instrument_method_map(outfile):
|
||||
signal_table = format_simple_table([(k, v) for k, v in SIGNAL_MAP.iteritems()],
|
||||
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='<>')
|
||||
with open(OUTPUT_TEMPLATE_FILE) as fh:
|
||||
template = string.Template(fh.read())
|
||||
|
@ -7,8 +7,8 @@ from wa.framework.exception import (CommandError, ConfigError, HostError, Instru
|
||||
PluginLoaderError, ResourceError, TargetError,
|
||||
TargetNotRespondingError, TimeoutError, ToolError,
|
||||
ValidationError, WAError, WorkloadError, WorkerThreadError)
|
||||
from wa.framework.instrument import (Instrument, very_slow, slow, normal, fast,
|
||||
very_fast)
|
||||
from wa.framework.instrument import (Instrument, extremely_slow, very_slow, slow, normal, fast,
|
||||
very_fast, extremely_fast)
|
||||
from wa.framework.output import RunOutput, discover_wa_outputs
|
||||
from wa.framework.output_processor import OutputProcessor
|
||||
from wa.framework.plugin import Plugin, Parameter, Alias
|
||||
|
@ -108,7 +108,7 @@ from wa.framework.exception import (WAError, TargetNotRespondingError, TimeoutEr
|
||||
WorkloadError, TargetError)
|
||||
from wa.utils.log import log_error
|
||||
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')
|
||||
@ -156,9 +156,6 @@ SIGNAL_MAP = OrderedDict([
|
||||
])
|
||||
|
||||
|
||||
Priority = enum(['very_slow', 'slow', 'normal', 'fast', 'very_fast'], -20, 10)
|
||||
|
||||
|
||||
def get_priority(func):
|
||||
return getattr(getattr(func, 'im_func', func),
|
||||
'priority', Priority.normal)
|
||||
@ -169,8 +166,8 @@ def priority(priority):
|
||||
def wrapper(*args, **kwargs):
|
||||
return func(*args, **kwargs)
|
||||
wrapper.func_name = func.func_name
|
||||
if priority in Priority.levels:
|
||||
wrapper.priority = Priority(priority)
|
||||
if priority in signal.CallbackPriority.levels:
|
||||
wrapper.priority = signal.CallbackPriority(priority)
|
||||
else:
|
||||
if not isinstance(priority, int):
|
||||
msg = 'Invalid priorty "{}"; must be an int or one of {}'
|
||||
@ -180,11 +177,13 @@ def priority(priority):
|
||||
return decorate
|
||||
|
||||
|
||||
very_slow = priority(Priority.very_slow)
|
||||
slow = priority(Priority.slow)
|
||||
normal = priority(Priority.normal)
|
||||
fast = priority(Priority.fast)
|
||||
very_fast = priority(Priority.very_fast)
|
||||
extremely_slow = priority(signal.CallbackPriority.extremely_low)
|
||||
very_slow = priority(signal.CallbackPriority.very_low)
|
||||
slow = priority(signal.CallbackPriority.low)
|
||||
normal = priority(signal.CallbackPriority.normal)
|
||||
fast = priority(signal.CallbackPriority.high)
|
||||
very_fast = priority(signal.CallbackPriority.very_high)
|
||||
extremely_fast = priority(signal.CallbackPriority.extremely_high)
|
||||
|
||||
|
||||
installed = []
|
||||
|
Loading…
x
Reference in New Issue
Block a user