def load_config(): """ Loads the config files merging the defaults with the file defined in environ.LINTREVIEW_SETTINGS if it exists. """ config = Config(os.getcwd()) if 'LINTREVIEW_SETTINGS' in os.environ: config.from_envvar('LINTREVIEW_SETTINGS') elif os.path.exists(os.path.join(os.getcwd(), 'settings.py')): config.from_pyfile('settings.py') else: msg = ("Unable to load configuration file. Please " "either create ./settings.py or set LINTREVIEW_SETTINGS " "in your environment before running.") raise ImportError(msg) if config.get('LOGGING_CONFIG'): logging.config.fileConfig( config.get('LOGGING_CONFIG'), disable_existing_loggers=False) if config.get('SSL_CA_BUNDLE'): os.environ['REQUESTS_CA_BUNDLE'] = config.get('SSL_CA_BUNDLE') return config
def make_config(self, instance_relative=False): config = Flask.make_config(self, instance_relative) if not config.get('SESSION_COOKIE_NAME'): config['SESSION_COOKIE_NAME'] = self.name + '-session' # during testing DATA_DIR is not created by instance app, but we still need # this attribute to be set self.DATA_DIR = Path(self.instance_path, 'data') if self._ABILIAN_INIT_TESTING_FLAG: # testing: don't load any config file! return config if instance_relative: self.check_instance_folder(create=True) cfg_path = os.path.join(config.root_path, 'config.py') logger.info('Try to load config: "%s"', cfg_path) try: config.from_pyfile(cfg_path, silent=False) except IOError: return config config.from_envvar(self.CONFIG_ENVVAR, silent=True) if 'WTF_CSRF_ENABLED' not in config: config['WTF_CSRF_ENABLED'] = config.get('CSRF_ENABLED', True) return config
def make_config(self, instance_relative=False): config = Flask.make_config(self, instance_relative) if not config.get('SESSION_COOKIE_NAME'): config['SESSION_COOKIE_NAME'] = self.name + '-session' # during testing DATA_DIR is not created by instance app, but we still need # this attribute to be set self.DATA_DIR = Path(self.instance_path, 'data') if self._ABILIAN_INIT_TESTING_FLAG: # testing: don't load any config file! return config if instance_relative: self.check_instance_folder(create=True) cfg_path = os.path.join(config.root_path, 'config.py') logger.info('Try to load config: "%s"', cfg_path) try: config.from_pyfile(cfg_path, silent=False) except IOError: return config # If the env var specifies a configuration file, it must exist # (and execute with no exceptions) - we don't want the application # to run with an unprecised or insecure configuration. if self.CONFIG_ENVVAR in os.environ: config.from_envvar(self.CONFIG_ENVVAR, silent=False) if 'WTF_CSRF_ENABLED' not in config: config['WTF_CSRF_ENABLED'] = config.get('CSRF_ENABLED', True) return config
def load_config(settings_file='./test_settings.py'): """ Loads the config files merging the defaults with the file defined in environ.PULLSBURY_SETTINGS if it exists. """ config = Config(os.getcwd()) if 'PULLSBURY_SETTINGS' in os.environ: config.from_envvar('PULLSBURY_SETTINGS') else: config.from_pyfile(settings_file) if config.get('LOGGING_CONFIG'): logging.config.fileConfig( config.get('LOGGING_CONFIG'), disable_existing_loggers=False) json_values = [ 'TEAMS', 'HAPPY_SLACK_EMOJIS', 'REPO_BLACKLIST', 'SLACK_CUSTOM_EMOJI_MAPPING' ] for value in json_values: config.update({ value: json.loads(config.get(value, '{}')) }) return config