Source code for swh.scheduler.cli.config
# Copyright (C) 2024  The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU General Public License version 3, or any later version
# See top-level LICENSE file for more information
from __future__ import annotations
from typing import TYPE_CHECKING
# WARNING: do not import unnecessary things here to keep cli startup time under
# control
if TYPE_CHECKING:
    from typing import Any, Dict, Optional
[docs]
def read_config(config_file: Optional[Any] = None) -> Dict:
    """Read configuration from config_file if provided, from the SWH_CONFIG_FILENAME if
    set or fallback to the DEFAULT_CONFIG.
    """
    from os import environ
    from swh.core import config
    from swh.scheduler import DEFAULT_CONFIG, DEFAULT_CONFIG_RAW
    if config_file:
        conf = config.read(config_file, DEFAULT_CONFIG)
    elif "SWH_CONFIG_FILENAME" in environ:
        conf = config.load_from_envvar(DEFAULT_CONFIG_RAW)
    else:
        conf = config.read(None, DEFAULT_CONFIG)
    return conf