#!/usr/bin/env python3 # -*- coding: utf-8 -*- """Check environments for an environmental variable value.""" import os def check_environment(env_var, default=None): """Check environments for an environmental variable.""" def boolify(var): if isinstance(default, bool): if var in [0, '0', 'FALSE', 'False', 'false', 'F', 'f']: return False if var in [1, '1', 'TRUE', 'True', 'true', 'T', 't']: return True raise TypeError(f'Unable to evaluate expected boolean: {env_var}') if env_var in os.environ: return_var = os.environ[env_var] elif env_var in globals(): return_var = globals()[env_var] elif env_var in locals(): return_var = locals()[env_var] else: return default if isinstance(default, bool) and not isinstance(return_var, bool): return boolify(return_var) if isinstance(default, int) and not isinstance(return_var, int): return int(return_var) if isinstance(default, float) and not isinstance(return_var, float): return float(return_var) return return_var