def test_construct_from_sequence(): source = """ --- !declare func: type: !resolve metaconfig.tests.utils.identity load: !resolve metaconfig.construct_from_sequence ... --- !let value: !func - 1 - 2 ... """ config = Config() with StringIO(dedent(source)) as stream: config.load(stream) value = config.get("value") assert_tuple_equal(value[0], (1, 2)) assert_dict_equal(value[1], {})
def test_construct_from_mapping(): source = """ --- !declare func: type: !resolve metaconfig.tests.utils.identity load: !resolve metaconfig.construct_from_mapping ... --- !let value: !func a: 1 c: 2 b: 3 d: 4 f: 5 e: 6 h: 7 g: 8 ... """ config = Config() with StringIO(dedent(source)) as stream: config.load(stream) value = config.get("value") assert_tuple_equal(value[0], ()) assert_dict_equal(value[1], {"a": 1, "c": 2, "b": 3, "d": 4, "f": 5, "e": 6, "h": 7, "g": 8})
def test_construct_from_args_kwargs(): source = """ --- !declare func: type: !resolve metaconfig.tests.utils.identity load: !resolve metaconfig.construct_from_args_kwargs ... --- !let value1: !func =: - 1 - 2 a: 1 b: 2 value2: !func a: 1 b: 2 ... """ config = Config() with StringIO(dedent(source)) as stream: config.load(stream) value1 = config.get("value1") assert_tuple_equal(value1[0], (1, 2)) assert_dict_equal(value1[1], {"a": 1, "b": 2}) value2 = config.get("value2") assert_tuple_equal(value2[0], ()) assert_dict_equal(value2[1], {"a": 1, "b": 2})
def test_declare_empty(): source = """ --- !declare {} ... """ config = Config() with StringIO(dedent(source)) as stream: config.load(stream)
def test_declare_resolve(): source = """ --- !declare type: type: !resolve builtins.type load: !resolve metaconfig.construct_from_sequence ... --- !let integer: !type - 0 string: !type - "" float: !type - 1.0 "null": !type - ~ ... """ config = Config() with StringIO(dedent(source)) as stream: config.load(stream) assert_is(int, config.get("integer")) assert_is(str, config.get("string")) assert_is(float, config.get("float")) assert_is(type(None), config.get("null"))
def test_construct_from_string(): source = """ --- !declare func: type: !resolve metaconfig.tests.utils.identity load: !resolve metaconfig.construct_from_string ... --- !let value1: !func "blabla" value2: !func 1 value3: !func 3.14 ... """ config = Config() with StringIO(dedent(source)) as stream: config.load(stream) value1 = config.get("value1") assert_tuple_equal(value1[0], ("blabla",)) assert_dict_equal(value1[1], {}) value2 = config.get("value2") assert_tuple_equal(value2[0], ("1",)) assert_dict_equal(value2[1], {}) value3 = config.get("value3") assert_tuple_equal(value3[0], ("3.14",)) assert_dict_equal(value3[1], {})
def test_construct_from_value(): source = """ --- !declare func: type: !resolve metaconfig.tests.utils.identity load: !resolve metaconfig.construct_from_value ... --- !let value1: !func a: 1 c: 2 b: 3 d: 4 f: 5 e: 6 h: 7 g: 8 value2: !func - 1 - 2 - 3 value3: !func "test" value4: !func 12345678 value5: !func 3.141592 ... """ config = Config() with StringIO(dedent(source)) as stream: config.load(stream) value1 = config.get("value1")[0] assert_dict_equal(value1[0], {"a": 1, "c": 2, "b": 3, "d": 4, "f": 5, "e": 6, "h": 7, "g": 8}) assert_list_equal(list(value1[0].keys()), ["a", "c", "b", "d", "f", "e", "h", "g"]) value2 = config.get("value2")[0] assert_list_equal(value2[0], [1, 2, 3]) value3 = config.get("value3")[0] assert_tuple_equal(value3, ("test",)) value4 = config.get("value4")[0] assert_tuple_equal(value4, (12345678, )) value5 = config.get("value5")[0] assert_tuple_equal(value5, (3.141592, ))
def main(): print(title(str(datetime.now()))) args = parse_args() config = Config() config.load(args.config) server = config.get_dependency("server") host = server.host port = server.port logger = server.logging.logger handler = server.logging.handler with handler.applicationbound(): logger.info("Starting server at http://{}:{}".format(host, port)) loop = asyncio.get_event_loop() ws_url = "ws://{}:{}".format(host, port) factory = ServerFactory(ws_url, loop=loop, model=server.model, logger=logger, debug=False) coro = loop.create_server(factory, host, port) server = loop.run_until_complete(coro) try: loop.run_forever() except KeyboardInterrupt: sys.exit(0) else: sys.exit(3) finally: server.close() loop.close() print("Stopping server.")
def test_declare_get(): source = """ --- !declare type: type: !resolve builtins.type load: !resolve metaconfig.construct_from_sequence tuple: type: !resolve builtins.tuple load: !resolve metaconfig.construct_from_value ... --- !let MyInteger: !type - MyInteger - !tuple - !resolve builtins.int - one: 1 ... --- !declare MyInteger: type: !get MyInteger load: !resolve metaconfig.construct_from_integer ... --- !let value: !MyInteger 10 ... """ config = Config() with StringIO(dedent(source)) as stream: config.load(stream) assert_equals(10, config.get("value")) assert_is_instance(config.get("value"), int) assert_equals(1, config.get("value").one)
def test_construct_from_any(): source = """ --- !declare func: type: !resolve metaconfig.tests.utils.identity load: !resolve metaconfig.construct_from_any ... --- !let value1: !func a: 1 c: 2 b: 3 d: 4 f: 5 e: 6 h: 7 g: 8 value2: !func - 1 - 2 - 3 value3: !func "test" value4: !func 12345678 value5: !func 3.141592 value6: !func =: - 1 - 2 a: 1 b: 2 value7: !func ~ ... """ config = Config() with StringIO(dedent(source)) as stream: config.load(stream) value1 = config.get("value1") assert_tuple_equal(value1[0], ()) assert_dict_equal(value1[1], {"a": 1, "c": 2, "b": 3, "d": 4, "f": 5, "e": 6, "h": 7, "g": 8}) value2 = config.get("value2") assert_tuple_equal(value2[0], (1, 2, 3)) assert_dict_equal(value2[1], {}) value3 = config.get("value3") assert_tuple_equal(value3[0], ("test",)) assert_dict_equal(value3[1], {}) value4 = config.get("value4") assert_tuple_equal(value4[0], (12345678, )) assert_dict_equal(value4[1], {}) value5 = config.get("value5") assert_tuple_equal(value5[0], (3.141592, )) assert_dict_equal(value5[1], {}) value6 = config.get("value6") assert_tuple_equal(value6[0], (1, 2)) assert_dict_equal(value6[1], {"a": 1, "b": 2}) value7 = config.get("value7") assert_tuple_equal(value7[0], (None,)) assert_dict_equal(value7[1], {})
from metaconfig import Config def parse_args(): import argparse parser = argparse.ArgumentParser(description='Repository web application.') parser.add_argument('-c', '--config', dest='config', help='path to config file (should be yaml)') return parser.parse_args() if __name__ == '__main__': args = parse_args() config = Config() config.load(args.config) server = config.get_dependency("server") server['extra_files'] = [ args.config, ] from werkzeug.serving import run_simple run_simple(**server)
sys.path.insert(0, parent_dir) import yggdrasil.app __package__ = str("yggdrasil.app") del sys, os from metaconfig import Config def parse_args(): import argparse parser = argparse.ArgumentParser(description='Repository web application.') parser.add_argument('-c', '--config', dest='config', help='path to config file (should be yaml)') return parser.parse_args() if __name__ == '__main__': args = parse_args() config = Config() config.load(args.config) server = config.get_dependency("server") server['extra_files'] = [ args.config, ] from werkzeug.serving import run_simple run_simple(**server)