Ejemplo n.º 1
0
def run_main(main_function, configuration_requirements=Namespace()):
    required_config = Namespace()
    required_config.add_option(
        'rule_system_class',
        doc='the fully qualified name of the RuleSystem class',
        default=RuleSystem,
        from_string_converter=class_converter,
    )
    required_config.update(logging_config)
    required_config.update(configuration_requirements)
    config = configuration(required_config)

    logging.basicConfig(level=config.logging_level,
                        format=config.logging_format)
    log_config(config)

    rule_system = config.rule_system_class(config)
    loop = asyncio.get_event_loop()
    loop.run_until_complete(rule_system.initialize())
    main_function(config, rule_system)
    loop.run_until_complete(rule_system.go())

    try:
        loop.run_forever()
    except KeyboardInterrupt:
        pass
Ejemplo n.º 2
0
    required_config.server = Namespace()
    required_config.server.add_option(
        name='wot_server_class',
        default="pywot.WoTServer",
        doc="the fully qualified name of the WoT Server class",
        from_string_converter=class_converter)
    required_config.add_option(
        name="scene_thing_class",
        default=SceneThing,
        doc="the fully qualified name of the class that implents scene control",
        from_string_converter=class_converter)
    required_config.add_option(
        'things_gateway_auth_key',
        doc='the api key to access the Things Gateway',
        short_form="G",
        default='THINGS GATEWAY AUTH KEY',
    )
    required_config.update(logging_config)
    config = configuration(required_config)

    logging.basicConfig(level=config.logging_level,
                        format=config.logging_format)
    log_config(config)

    scene_thing = config.scene_thing_class(config)

    server = config.server.wot_server_class(config, [scene_thing],
                                            port=config.server.service_port)
    server.run()
    logging.debug('done.')