def __init__(self, flow_cfg_file, proj_root, args):
    super().__init__(flow_cfg_file, proj_root, args)
    self.tool = args.tool
    self.build_opts = []
    self.build_opts.extend(args.build_opts)
    self.en_build_modes = args.build_modes.copy()
    self.run_opts = []
    self.run_opts.extend(args.run_opts)
    self.en_run_modes = []
    self.en_run_modes.extend(args.run_modes)
    self.build_unique = args.build_unique
    self.build_only = args.build_only
    self.run_only = args.run_only
    self.reseed_ovrd = args.reseed
    self.reseed_multiplier = args.reseed_multiplier
    self.waves = args.waves
    self.max_waves = args.max_waves
    self.cov = args.cov
    self.cov_merge_previous = args.cov_merge_previous
    self.profile = (args.profile or '(cfg uses profile without --profile)')
    self.xprop_off = args.xprop_off
    self.no_rerun = args.no_rerun
    self.verbosity = (('{' + args.verbosity) + '}')
    self.verbose = args.verbose
    self.dry_run = args.dry_run
    self.map_full_testplan = args.map_full_testplan
    if self.build_only:
        self.cov = False
    if (self.waves is True):
        self.en_build_modes.append('waves')
    if (self.cov is True):
        self.en_build_modes.append('cov')
    if (args.profile is not None):
        self.en_build_modes.append('profile')
    if (self.xprop_off is not True):
        self.en_build_modes.append('xprop')
    self.project = ''
    self.flow = ''
    self.flow_makefile = ''
    self.build_dir = ''
    self.run_dir = ''
    self.sw_build_dir = ''
    self.pass_patterns = []
    self.fail_patterns = []
    self.name = ''
    self.dut = ''
    self.tb = ''
    self.testplan = ''
    self.fusesoc_core = ''
    self.ral_spec = ''
    self.build_modes = []
    self.run_modes = []
    self.regressions = []
    self.build_cmd = ''
    self.flist_gen_cmd = ''
    self.flist_gen_opts = []
    self.flist_file = ''
    self.run_cmd = ''
    self.links = {}
    self.build_list = []
    self.run_list = []
    self.cov_merge_deploy = None
    self.cov_report_deploy = None
    self.results_summary = OrderedDict()
    self.cov_deploys = []
    self.parse_flow_cfg(flow_cfg_file)
    self._post_parse_flow_cfg()
    self.dump_fmt = (resolve_dump_format(self.tool, args.dump) if self.waves else 'none')
    if self.build_unique:
        self.build_dir += ('_' + self.timestamp)
    self._process_overrides()
    ignored_wildcards = ['build_mode', 'index', 'test', 'seed', 'uvm_test', 'uvm_test_seq', 'cov_db_dirs', 'sw_test', 'sw_test_is_prebuilt', 'sw_build_device']
    self.__dict__ = find_and_substitute_wildcards(self.__dict__, self.__dict__, ignored_wildcards, self.is_master_cfg)
    self.results_title = (self.name.upper() + ' Simulation Results')
    if ((not self.is_master_cfg) and ((not self.select_cfgs) or (self.name in self.select_cfgs))):
        if (self.tool is None):
            log.error('Config file does not specify a default tool, and there was no --tool argument on the command line.')
            sys.exit(1)
        log.info('[scratch_dir]: [%s]: [%s]', self.name, self.scratch_path)
        self.links = {'D': ((self.scratch_path + '/') + 'dispatched'), 'P': ((self.scratch_path + '/') + 'passed'), 'F': ((self.scratch_path + '/') + 'failed'), 'K': ((self.scratch_path + '/') + 'killed')}
        if (not hasattr(self, 'build_mode')):
            setattr(self, 'build_mode', 'default')
        self._process_exports()
        self._create_objects()
    self.__post_init__()
def __init__(self, flow_cfg_file, proj_root, args):
    super().__init__(flow_cfg_file, proj_root, args)
    self.tool = args.tool
    self.build_opts = []
    self.build_opts.extend(args.build_opts)
    self.en_build_modes = args.build_modes.copy()
    self.run_opts = []
    self.run_opts.extend(args.run_opts)
    self.en_run_modes = []
    self.en_run_modes.extend(args.run_modes)
    self.build_unique = args.build_unique
    self.build_only = args.build_only
    self.run_only = args.run_only
    self.reseed_ovrd = args.reseed
    self.reseed_multiplier = args.reseed_multiplier
    self.waves = args.waves
    self.max_waves = args.max_waves
    self.cov = args.cov
    self.cov_merge_previous = args.cov_merge_previous
    self.profile = (args.profile or '(cfg uses profile without --profile)')
    self.xprop_off = args.xprop_off
    self.no_rerun = args.no_rerun
    self.verbosity = (('{' + args.verbosity) + '}')
    self.verbose = args.verbose
    self.dry_run = args.dry_run
    self.map_full_testplan = args.map_full_testplan
    if self.build_only:
        self.cov = False
    if (self.waves is True):
        self.en_build_modes.append('waves')
    if (self.cov is True):
        self.en_build_modes.append('cov')
    if (args.profile is not None):
        self.en_build_modes.append('profile')
    if (self.xprop_off is not True):
        self.en_build_modes.append('xprop')
    self.project = 
    self.flow = 
    self.flow_makefile = 
    self.build_dir = 
    self.run_dir = 
    self.sw_build_dir = 
    self.pass_patterns = []
    self.fail_patterns = []
    self.name = 
    self.dut = 
    self.tb = 
    self.testplan = 
    self.fusesoc_core = 
    self.ral_spec = 
    self.build_modes = []
    self.run_modes = []
    self.regressions = []
    self.build_cmd = 
    self.flist_gen_cmd = 
    self.flist_gen_opts = []
    self.flist_file = 
    self.run_cmd = 
    self.links = {}
    self.build_list = []
    self.run_list = []
    self.cov_merge_deploy = None
    self.cov_report_deploy = None
    self.results_summary = OrderedDict()
    self.cov_deploys = []
    self.parse_flow_cfg(flow_cfg_file)
    self._post_parse_flow_cfg()
    self.dump_fmt = (resolve_dump_format(self.tool, args.dump) if self.waves else 'none')
    if self.build_unique:
        self.build_dir += ('_' + self.timestamp)
    self._process_overrides()
    ignored_wildcards = ['build_mode', 'index', 'test', 'seed', 'uvm_test', 'uvm_test_seq', 'cov_db_dirs', 'sw_test', 'sw_test_is_prebuilt', 'sw_build_device']
    self.__dict__ = find_and_substitute_wildcards(self.__dict__, self.__dict__, ignored_wildcards, self.is_master_cfg)
    self.results_title = (self.name.upper() + ' Simulation Results')
    if ((not self.is_master_cfg) and ((not self.select_cfgs) or (self.name in self.select_cfgs))):
        if (self.tool is None):
            log.error('Config file does not specify a default tool, and there was no --tool argument on the command line.')
            sys.exit(1)
        log.info('[scratch_dir]: [%s]: [%s]', self.name, self.scratch_path)
        self.links = {'D': ((self.scratch_path + '/') + 'dispatched'), 'P': ((self.scratch_path + '/') + 'passed'), 'F': ((self.scratch_path + '/') + 'failed'), 'K': ((self.scratch_path + '/') + 'killed')}
        if (not hasattr(self, 'build_mode')):
            setattr(self, 'build_mode', 'default')
        self._process_exports()
        self._create_objects()
    self.__post_init__()