Python’s collections.ChainMap
class groups multiple dict
s or other mappings together to create a single, updateable view. So it is suitable to let user-specified command-line arguments take precedence over environment variables by collections.ChainMap
:
import builtins
pylookup = ChainMap(locals(), globals(), vars(builtins))
import os, argparse
defaults = {'color': 'red', 'user': 'guest'}
parser = argparse.ArgumentParser()
parser.add_argument('-u', '--user')
parser.add_argument('-c', '--color')
namespace = parser.parse_args()
command_line_args = {k:v for k, v in vars(namespace).items() if v}
combined = ChainMap(command_line_args, os.environ, defaults)
print(combined['color'])
print(combined['user'])
Is there a Julia equivalent to ChainMap
?