File size: 2,202 Bytes
e04e4d5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from configparser import ConfigParser
from typing import Optional, List

from facefusion.filesystem import resolve_relative_path

CONFIG = None


def get_config() -> ConfigParser:
	global CONFIG

	if CONFIG is None:
		config_path = resolve_relative_path('../facefusion.ini')
		CONFIG = ConfigParser()
		CONFIG.read(config_path)
	return CONFIG


def clear_config() -> None:
	global CONFIG

	CONFIG = None


def get_str_value(key : str, fallback : Optional[str] = None) -> Optional[str]:
	section, option = key.split('.')
	value = get_config()[section].get(option)
	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)
	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)
	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)
	if value == 'True' or fallback == 'True':
		return True
	if value == 'False' or fallback == 'False':
		return False
	return None


def get_str_list(key : str, fallback : Optional[str] = None) -> Optional[List[str]]:
	section, option = key.split('.')
	value = get_config()[section].get(option)
	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)
	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)
	if value or fallback:
		return [ float(value) for value in (value or fallback).split(' ') ]
	return None