modular_cli/service/initializer.py (17 lines of code) (raw):
import os
from modular_cli.service.config import ConfigurationProvider, get_credentials_folder
from modular_cli.utils.logger import get_logger
from modular_cli.utils.variables import CREDENTIALS_FILE_NAME
SYSTEM_LOG = get_logger(__name__)
def init_configuration():
from modular_cli.service.adapter_client import AdapterClient
config_path = get_credentials_folder() / CREDENTIALS_FILE_NAME
# todo refactor all this. Make composition relation between config class
# and adapter class (btw why is it called adapter?, isn't it just
# api client?). Anyway, make config class be able to read and write
# and fully manage its data. It means to remove "add_data_to_config",
# "save_configuration" functions and other such. Make config json
# instead of yaml because it's not used by humans.
if os.path.exists(config_path):
config = ConfigurationProvider()
return AdapterClient(adapter_api=config.api_link,
username=config.username,
secret=config.password,
token=config.access_token)
else:
SYSTEM_LOG.info(f'Configuration is missing by path {config_path}. '
f'Initialization skipped.')