Implement the extensible components of libtuning. This includes: - Parsers, for supporting different types of input config file formats - Generators, for supporting different types of output tuning file formats - Modules, for supporting different tuning modules for different algorithms and platforms No parsers, generators, or modules are actually implemented. Only the base classes are implemented. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
21 lines
935 B
Python
21 lines
935 B
Python
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
#
|
|
# Copyright (C) 2022, Paul Elder <paul.elder@ideasonboard.com>
|
|
#
|
|
# parser.py - Base class for a parser for a specific format of config file
|
|
|
|
class Parser(object):
|
|
def __init__(self):
|
|
pass
|
|
|
|
# @brief Parse a config file into a config dict
|
|
# @details The config dict shall have one key 'general' with a dict value
|
|
# for general configuration options, and all other entries shall
|
|
# have the module as the key with its configuration options (as a
|
|
# dict) as the value. The config dict shall prune entries that are
|
|
# for modules that are not in @a modules.
|
|
# @param config (str) Path to config file
|
|
# @param modules (list) List of modules
|
|
# @return (dict, list) Configuration and list of modules to disable
|
|
def parse(self, config_file: str, modules: list) -> (dict, list):
|
|
raise NotImplementedError
|