X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/cb690390d4f253c3bbb9c543e243cf988f39fbb3..806072055c23ebbd9fcd4f595c6129f06e803c79:/sdk/python/arvados/config.py diff --git a/sdk/python/arvados/config.py b/sdk/python/arvados/config.py index 6f3bd02790..9b2483bcfe 100644 --- a/sdk/python/arvados/config.py +++ b/sdk/python/arvados/config.py @@ -10,19 +10,38 @@ import os import re +from typing import ( + Callable, + Iterable, + Union, +) + +from . import util + _settings = None -if os.environ.get('HOME') is not None: - default_config_file = os.environ['HOME'] + '/.config/arvados/settings.conf' -else: - default_config_file = '' +default_config_file = '' +""".. WARNING: Deprecated + Default configuration initialization now searches for the "default" + configuration in several places. This value no longer has any effect. +""" KEEP_BLOCK_SIZE = 2**26 EMPTY_BLOCK_LOCATOR = 'd41d8cd98f00b204e9800998ecf8427e+0' -def initialize(config_file=default_config_file): +def initialize( + config_file: Union[ + str, + os.PathLike, + Callable[[str], Iterable[os.PathLike]], + ]=util._BaseDirectories('CONFIG').search, +) -> None: global _settings _settings = {} + if callable(config_file): + search_paths = iter(config_file('settings.conf')) + config_file = next(search_paths, '') + # load the specified config file if available try: _settings = load(config_file)