diff --git a/facefusion/config.py b/facefusion/config.py index 7eb00d7d..7f3dcee8 100644 --- a/facefusion/config.py +++ b/facefusion/config.py @@ -1,5 +1,5 @@ from configparser import ConfigParser -from typing import Optional, List +from typing import Any, Optional, List from facefusion.filesystem import resolve_relative_path @@ -23,32 +23,32 @@ def clear_config() -> None: def get_str_value(key : str, fallback : Optional[str] = None) -> Optional[str]: - section, option = key.split('.') - value = get_config()[section].get(option) + value = find_value_by_section(key) + if value or fallback: return str(value or fallback) return None def get_int_value(key : str, fallback : Optional[str] = None) -> Optional[int]: - section, option = key.split('.') - value = get_config()[section].get(option) + value = find_value_by_section(key) + if value or fallback: return int(value or fallback) return None def get_float_value(key : str, fallback : Optional[str] = None) -> Optional[float]: - section, option = key.split('.') - value = get_config()[section].get(option) + value = find_value_by_section(key) + if value or fallback: return float(value or fallback) return None def get_bool_value(key : str, fallback : Optional[str] = None) -> Optional[bool]: - section, option = key.split('.') - value = get_config()[section].get(option, fallback) + value = find_value_by_section(key) + if value == 'True' or fallback == 'True': return True if value == 'False' or fallback == 'False': @@ -57,24 +57,33 @@ def get_bool_value(key : str, fallback : Optional[str] = None) -> Optional[bool] def get_str_list(key : str, fallback : Optional[str] = None) -> Optional[List[str]]: - section, option = key.split('.') - value = get_config()[section].get(option) + value = find_value_by_section(key) + if value or fallback: return [ str(value) for value in (value or fallback).split(' ') ] return None def get_int_list(key : str, fallback : Optional[str] = None) -> Optional[List[int]]: - section, option = key.split('.') - value = get_config()[section].get(option) + value = find_value_by_section(key) + if value or fallback: return [ int(value) for value in (value or fallback).split(' ') ] return None def get_float_list(key : str, fallback : Optional[str] = None) -> Optional[List[float]]: - section, option = key.split('.') - value = get_config()[section].get(option) + value = find_value_by_section(key) + if value or fallback: return [ float(value) for value in (value or fallback).split(' ') ] return None + + +def find_value_by_section(key : str) -> Optional[Any]: + config = get_config() + section, option = key.split('.') + + if section in config and option in config[section]: + return config[section][option] + return None