Allow partial facefusion.ini file (#325)

This commit is contained in:
Henry Ruhs 2024-01-21 14:41:59 +01:00 committed by GitHub
parent 7e990ac5e5
commit 906c78126a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,5 +1,5 @@
from configparser import ConfigParser from configparser import ConfigParser
from typing import Optional, List from typing import Any, Optional, List
from facefusion.filesystem import resolve_relative_path 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]: def get_str_value(key : str, fallback : Optional[str] = None) -> Optional[str]:
section, option = key.split('.') value = find_value_by_section(key)
value = get_config()[section].get(option)
if value or fallback: if value or fallback:
return str(value or fallback) return str(value or fallback)
return None return None
def get_int_value(key : str, fallback : Optional[str] = None) -> Optional[int]: def get_int_value(key : str, fallback : Optional[str] = None) -> Optional[int]:
section, option = key.split('.') value = find_value_by_section(key)
value = get_config()[section].get(option)
if value or fallback: if value or fallback:
return int(value or fallback) return int(value or fallback)
return None return None
def get_float_value(key : str, fallback : Optional[str] = None) -> Optional[float]: def get_float_value(key : str, fallback : Optional[str] = None) -> Optional[float]:
section, option = key.split('.') value = find_value_by_section(key)
value = get_config()[section].get(option)
if value or fallback: if value or fallback:
return float(value or fallback) return float(value or fallback)
return None return None
def get_bool_value(key : str, fallback : Optional[str] = None) -> Optional[bool]: def get_bool_value(key : str, fallback : Optional[str] = None) -> Optional[bool]:
section, option = key.split('.') value = find_value_by_section(key)
value = get_config()[section].get(option, fallback)
if value == 'True' or fallback == 'True': if value == 'True' or fallback == 'True':
return True return True
if value == 'False' or fallback == 'False': 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]]: def get_str_list(key : str, fallback : Optional[str] = None) -> Optional[List[str]]:
section, option = key.split('.') value = find_value_by_section(key)
value = get_config()[section].get(option)
if value or fallback: if value or fallback:
return [ str(value) for value in (value or fallback).split(' ') ] return [ str(value) for value in (value or fallback).split(' ') ]
return None return None
def get_int_list(key : str, fallback : Optional[str] = None) -> Optional[List[int]]: def get_int_list(key : str, fallback : Optional[str] = None) -> Optional[List[int]]:
section, option = key.split('.') value = find_value_by_section(key)
value = get_config()[section].get(option)
if value or fallback: if value or fallback:
return [ int(value) for value in (value or fallback).split(' ') ] return [ int(value) for value in (value or fallback).split(' ') ]
return None return None
def get_float_list(key : str, fallback : Optional[str] = None) -> Optional[List[float]]: def get_float_list(key : str, fallback : Optional[str] = None) -> Optional[List[float]]:
section, option = key.split('.') value = find_value_by_section(key)
value = get_config()[section].get(option)
if value or fallback: if value or fallback:
return [ float(value) for value in (value or fallback).split(' ') ] return [ float(value) for value in (value or fallback).split(' ') ]
return None 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