2021.4 #19

Merged
edraft merged 237 commits from 2021.4 into master 2021-04-01 10:13:33 +02:00
2 changed files with 13 additions and 7 deletions
Showing only changes of commit 6452226b50 - Show all commits

View File

@ -134,7 +134,7 @@ class Configuration(ConfigurationABC):
exit() exit()
def add_json_file(self, name: str, optional: bool = None): def add_json_file(self, name: str, optional: bool = None, output: bool = False):
if self._hosting_environment.content_root_path.endswith('/') and not name.startswith('/'): if self._hosting_environment.content_root_path.endswith('/') and not name.startswith('/'):
file_path = f'{self._hosting_environment.content_root_path}{name}' file_path = f'{self._hosting_environment.content_root_path}{name}'
else: else:
@ -142,13 +142,17 @@ class Configuration(ConfigurationABC):
if not os.path.isfile(file_path): if not os.path.isfile(file_path):
if not optional: if not optional:
if output:
self._print_error(__name__, f'File not found: {file_path}') self._print_error(__name__, f'File not found: {file_path}')
exit() exit()
if output:
self._print_warn(__name__, f'Not Loaded config file: {file_path}') self._print_warn(__name__, f'Not Loaded config file: {file_path}')
return None return None
config_from_file = self._load_json_file(file_path) config_from_file = self._load_json_file(file_path, output)
for sub in ConfigurationModelABC.__subclasses__(): for sub in ConfigurationModelABC.__subclasses__():
for key, value in config_from_file.items(): for key, value in config_from_file.items():
if sub.__name__ == key: if sub.__name__ == key:
@ -156,13 +160,15 @@ class Configuration(ConfigurationABC):
configuration.from_dict(value) configuration.from_dict(value)
self.add_configuration(sub, configuration) self.add_configuration(sub, configuration)
def _load_json_file(self, file: str) -> dict: def _load_json_file(self, file: str, output: bool) -> dict:
try: try:
# open config file, create if not exists # open config file, create if not exists
with open(file, encoding='utf-8') as cfg: with open(file, encoding='utf-8') as cfg:
# load json # load json
json_cfg = json.load(cfg) json_cfg = json.load(cfg)
if output:
self._print_info(__name__, f'Loaded config file: {file}') self._print_info(__name__, f'Loaded config file: {file}')
return json_cfg return json_cfg
except Exception as e: except Exception as e:
self._print_error(__name__, f'Cannot load config file: {file}! -> {e}') self._print_error(__name__, f'Cannot load config file: {file}! -> {e}')

View File

@ -37,7 +37,7 @@ class ConfigurationABC(ABC):
def add_console_arguments(self): pass def add_console_arguments(self): pass
@abstractmethod @abstractmethod
def add_json_file(self, name: str, optional: bool = None): pass def add_json_file(self, name: str, optional: bool = None, output: bool = False): pass
@abstractmethod @abstractmethod
def add_configuration(self, key_type: type, value: object): pass def add_configuration(self, key_type: type, value: object): pass