Expand source code
# 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