# Copyright (C) The Arvados Authors. All rights reserved. # # SPDX-License-Identifier: Apache-2.0 # config.py - configuration settings and global variables for Arvados clients # # Arvados configuration settings are taken from $HOME/.config/arvados. # Environment variables override settings in the config file. import os import re _settings = None if os.environ.get('HOME') is not None: default_config_file = os.environ['HOME'] + '/.config/arvados/settings.conf' else: default_config_file = '' KEEP_BLOCK_SIZE = 2**26 EMPTY_BLOCK_LOCATOR = 'd41d8cd98f00b204e9800998ecf8427e+0' def initialize(config_file=default_config_file): global _settings _settings = {} # load the specified config file if available try: _settings = load(config_file) except IOError: pass # override any settings with environment vars for var in os.environ: if var.startswith('ARVADOS_'): _settings[var] = os.environ[var] def load(config_file): cfg = {} with open(config_file, "r") as f: for config_line in f: if re.match('^\s*$', config_line): continue if re.match('^\s*#', config_line): continue var, val = config_line.rstrip().split('=', 2) cfg[var] = val return cfg def flag_is_true(key, d=None): if d is None: d = settings() return d.get(key, '').lower() in set(['1', 't', 'true', 'y', 'yes']) def get(key, default_val=None): return settings().get(key, default_val) def settings(): if _settings is None: initialize() return _settings