logger.info('extracting features...') features = feature_extractor.transform(data) logger.info('predicting...') prediction = model.predict(features) return jsonify(prediction=prediction) def load_app_config(): config_definitions = { 'FEATURE_EXTRACTOR': str, 'MODEL': str, 'APP_PORT': int, 'ENVIRONMENT': str } config = {k: v(os.environ[k]) for k, v in config_definitions.items()} app.config.update(config) app.config['model'] = pickle.load(app.config['model']) app.config['feature_extractor'] = pickle.load( app.config['feature_extractor']) load_config() load_app_config() if __name__ == '__main__': app.run(host='0.0.0.0', port=app.config['APP_PORT'])
def test_fail_load_config(): with pytest.raises(ConfigurationError): load_config("/unknown.json")
return result def main(producers, config, args): base_hosts = config.get('base_conf', 'hosts') for producer in producers: hosts = config.get(producer, 'hosts', base_hosts).split() for host in hosts: try: producer_conf = config.get_section(producer) cmd = config.get(producer, 'cmd') lines = ssh_cmd(host, cmd).splitlines() result = handle_convert(host, lines, producer_conf, producer) # output result for nerds in result: save_to_json(nerds, args.out) except Exception as e: logger.error( "Producer '{}' on host '{}' failed with message: {}".format(producer, host, e)) if __name__ == '__main__': args = cli() config = load_config(args.config) producers = config.sections() if 'base_conf' in producers: producers.remove('base_conf') main(producers, config, args)
def test_load_config(): config = load_config(os.path.join(LOCAL, "test.json")) assert config["manager"] == {"username": "******", "secret": "secret"}