Spaces:
Running
Running
from configparser import ConfigParser | |
from typing import List, Optional | |
from facefusion import state_manager | |
from facefusion.common_helper import cast_bool, cast_float, cast_int | |
CONFIG_PARSER = None | |
def get_config_parser() -> ConfigParser: | |
global CONFIG_PARSER | |
if CONFIG_PARSER is None: | |
CONFIG_PARSER = ConfigParser() | |
CONFIG_PARSER.read(state_manager.get_item('config_path'), encoding = 'utf-8') | |
return CONFIG_PARSER | |
def clear_config_parser() -> None: | |
global CONFIG_PARSER | |
CONFIG_PARSER = None | |
def get_str_value(section : str, option : str, fallback : Optional[str] = None) -> Optional[str]: | |
config_parser = get_config_parser() | |
if config_parser.has_option(section, option) and config_parser.get(section, option).strip(): | |
return config_parser.get(section, option) | |
return fallback | |
def get_int_value(section : str, option : str, fallback : Optional[str] = None) -> Optional[int]: | |
config_parser = get_config_parser() | |
if config_parser.has_option(section, option) and config_parser.get(section, option).strip(): | |
return config_parser.getint(section, option) | |
return cast_int(fallback) | |
def get_float_value(section : str, option : str, fallback : Optional[str] = None) -> Optional[float]: | |
config_parser = get_config_parser() | |
if config_parser.has_option(section, option) and config_parser.get(section, option).strip(): | |
return config_parser.getfloat(section, option) | |
return cast_float(fallback) | |
def get_bool_value(section : str, option : str, fallback : Optional[str] = None) -> Optional[bool]: | |
config_parser = get_config_parser() | |
if config_parser.has_option(section, option) and config_parser.get(section, option).strip(): | |
return config_parser.getboolean(section, option) | |
return cast_bool(fallback) | |
def get_str_list(section : str, option : str, fallback : Optional[str] = None) -> Optional[List[str]]: | |
config_parser = get_config_parser() | |
if config_parser.has_option(section, option) and config_parser.get(section, option).strip(): | |
return config_parser.get(section, option).split() | |
if fallback: | |
return fallback.split() | |
return None | |
def get_int_list(section : str, option : str, fallback : Optional[str] = None) -> Optional[List[int]]: | |
config_parser = get_config_parser() | |
if config_parser.has_option(section, option) and config_parser.get(section, option).strip(): | |
return list(map(int, config_parser.get(section, option).split())) | |
if fallback: | |
return list(map(int, fallback.split())) | |
return None | |