mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-01-18 03:56:04 +00:00
utils/misc: Clean duplicated code
- ``load_struct_from_yaml()`` has been moved to devlib [1]. - ``LoadSyntaxError()`` is already implemented in devlib. - Remove ``load_struct_from_file()`` and ``RAND_MOD_NAME_LEN`` since they are not used at all. [1] https://github.com/ARM-software/devlib/commit/591825834028 Signed-off-by: Metin Kaya <metin.kaya@arm.com>
This commit is contained in:
parent
0eb17bf8f0
commit
366f59ebf7
@ -55,7 +55,7 @@ from devlib.utils.misc import (ABI_MAP, check_output, walk_modules,
|
||||
normalize, convert_new_lines, get_cpu_mask, unique,
|
||||
isiterable, getch, as_relative, ranges_to_list, memoized,
|
||||
list_to_ranges, list_to_mask, mask_to_list, which,
|
||||
to_identifier, safe_extract)
|
||||
to_identifier, safe_extract, LoadSyntaxError)
|
||||
|
||||
check_output_logger = logging.getLogger('check_output')
|
||||
|
||||
@ -297,21 +297,6 @@ def get_random_string(length):
|
||||
return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(length))
|
||||
|
||||
|
||||
class LoadSyntaxError(Exception):
|
||||
|
||||
def __init__(self, message, filepath, lineno):
|
||||
super(LoadSyntaxError, self).__init__(message)
|
||||
self.filepath = filepath
|
||||
self.lineno = lineno
|
||||
|
||||
def __str__(self):
|
||||
message = 'Syntax Error in {}, line {}:\n\t{}'
|
||||
return message.format(self.filepath, self.lineno, self.message)
|
||||
|
||||
|
||||
RAND_MOD_NAME_LEN = 30
|
||||
|
||||
|
||||
def import_path(filepath, module_name=None):
|
||||
"""
|
||||
Programmatically import the given Python source file under the name
|
||||
@ -360,44 +345,6 @@ def load_struct_from_python(filepath):
|
||||
}
|
||||
|
||||
|
||||
def load_struct_from_yaml(filepath=None, text=None):
|
||||
"""Parses a config structure from a .yaml file. The structure should be composed
|
||||
of basic Python types (strings, ints, lists, dicts, etc.)."""
|
||||
# Import here to avoid circular imports
|
||||
# pylint: disable=wrong-import-position,cyclic-import, import-outside-toplevel
|
||||
from wa.utils.serializer import yaml
|
||||
|
||||
if not (filepath or text) or (filepath and text):
|
||||
raise ValueError('Exactly one of filepath or text must be specified.')
|
||||
try:
|
||||
if filepath:
|
||||
with open(filepath) as fh:
|
||||
return yaml.load(fh)
|
||||
else:
|
||||
return yaml.load(text)
|
||||
except yaml.YAMLError as e:
|
||||
lineno = None
|
||||
if hasattr(e, 'problem_mark'):
|
||||
lineno = e.problem_mark.line # pylint: disable=no-member
|
||||
raise LoadSyntaxError(e.message, filepath=filepath, lineno=lineno)
|
||||
|
||||
|
||||
def load_struct_from_file(filepath):
|
||||
"""
|
||||
Attempts to parse a Python structure consisting of basic types from the specified file.
|
||||
Raises a ``ValueError`` if the specified file is of unkown format; ``LoadSyntaxError`` if
|
||||
there is an issue parsing the file.
|
||||
|
||||
"""
|
||||
extn = os.path.splitext(filepath)[1].lower()
|
||||
if extn in ('.py', '.pyc', '.pyo'):
|
||||
return load_struct_from_python(filepath)
|
||||
elif extn == '.yaml':
|
||||
return load_struct_from_yaml(filepath)
|
||||
else:
|
||||
raise ValueError('Unknown format "{}": {}'.format(extn, filepath))
|
||||
|
||||
|
||||
def open_file(filepath):
|
||||
"""
|
||||
Open the specified file path with the associated launcher in an OS-agnostic way.
|
||||
|
Loading…
Reference in New Issue
Block a user