1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-09-01 19:02:31 +01:00

Initial implementation of state tracking and output handling.

This commit is contained in:
Sergei Trofimov
2017-03-16 17:54:48 +00:00
parent 6e13c96d9c
commit 24402660c4
10 changed files with 443 additions and 435 deletions

View File

@@ -232,6 +232,7 @@ def read_pod(source, fmt=None):
message = 'source must be a path or an open file handle; got {}'
raise ValueError(message.format(type(source)))
def write_pod(pod, dest, fmt=None):
if isinstance(dest, basestring):
with open(dest, 'w') as wfh:

View File

@@ -78,9 +78,10 @@ def list_of_bools(value, interpret_strings=True):
"""
Value must be iterable. All elements will be converted to ``bool``\ s.
.. note:: By default, ``boolean()`` conversion function will be used, which means that
strings like ``"0"`` or ``"false"`` will be interpreted as ``False``. If this
is undesirable, set ``interpret_strings`` to ``False``.
.. note:: By default, ``boolean()`` conversion function will be used, which
means that strings like ``"0"`` or ``"false"`` will be
interpreted as ``False``. If this is undesirable, set
``interpret_strings`` to ``False``.
"""
if not isiterable(value):
@@ -133,8 +134,8 @@ def list_or_string(value):
def list_or_caseless_string(value):
"""
Converts the value into a list of ``caseless_string``'s. If the value is not iterable
a one-element list with stringified value will be returned.
Converts the value into a list of ``caseless_string``'s. If the value is
not iterable a one-element list with stringified value will be returned.
"""
if isinstance(value, basestring):
@@ -148,9 +149,10 @@ def list_or_caseless_string(value):
def list_or(type_):
"""
Generator for "list or" types. These take either a single value or a list values
and return a list of the specfied ``type_`` performing the conversion on the value
(if a single value is specified) or each of the elemented of the specified list.
Generator for "list or" types. These take either a single value or a list
values and return a list of the specfied ``type_`` performing the
conversion on the value (if a single value is specified) or each of the
elemented of the specified list.
"""
list_type = list_of(type_)
@@ -176,8 +178,8 @@ none_type = type(None)
def regex(value):
"""
Regular expression. If value is a string, it will be complied with no flags. If you
want to specify flags, value must be precompiled.
Regular expression. If value is a string, it will be complied with no
flags. If you want to specify flags, value must be precompiled.
"""
if isinstance(value, regex_type):
@@ -480,13 +482,13 @@ class obj_dict(MutableMapping):
class level(object):
"""
A level has a name and behaves like a string when printed,
however it also has a numeric value which is used in comparisons.
A level has a name and behaves like a string when printed, however it also
has a numeric value which is used in ordering comparisons.
"""
def __init__(self, name, value):
self.name = name
self.name = caseless_string(name)
self.value = value
def __str__(self):
@@ -555,7 +557,7 @@ def enum(args, start=0):
levels = []
for i, v in enumerate(args, start):
name = string.upper(identifier(v))
name = caseless_string(identifier(v))
lv = level(v, i)
setattr(Enum, name, lv)
levels.append(lv)