Exemplo n.º 1
0
def test_invalid_interface():
    code = """
def score():
    pass
"""
    import_module('score', code)
    with pytest.raises(exceptions.InvalidInterface):
        load_interface_from_module('score', interface_class=Metrics)
Exemplo n.º 2
0
def test_empty_module(tmpdir, syspaths):
    with tmpdir.as_cwd():
        # python allows to import an empty directoy
        # check that the error message would be helpful for debugging purposes
        tmpdir.mkdir("foomod")
        syspaths.append(str(tmpdir))

        with pytest.raises(exceptions.EmptyInterface):
            load_interface_from_module('foomod', interface_class=Metrics)
Exemplo n.º 3
0
def execute(module_name='metrics', dry_run=False):
    """Launch metrics script."""
    interface = utils.load_interface_from_module(
        module_name,
        interface_class=Metrics,
        interface_signature=REQUIRED_FUNCTIONS)
    return _execute(interface, dry_run)
Exemplo n.º 4
0
def execute(interface=None, sysargs=None):
    """Launch metrics command line interface."""
    if not interface:
        interface = utils.load_interface_from_module(
            'metrics',
            interface_class=Metrics,
            interface_signature=REQUIRED_FUNCTIONS)

    cli = _generate_cli()
    sysargs = sysargs if sysargs is not None else sys.argv[1:]
    args = cli.parse_args(sysargs)

    workspace = MetricsWorkspace(
        input_data_folder_paths=args.data_sample_paths,
        input_predictions_path=args.input_predictions_path,
        log_path=args.log_path,
        output_perf_path=args.output_perf_path,
    )
    opener_wrapper = opener.load_from_module(
        path=args.opener_path,
        workspace=workspace,
    )
    utils.configure_logging(path=workspace.log_path, debug_mode=args.debug)
    metrics_wrapper = MetricsWrapper(
        interface,
        workspace=workspace,
        opener_wrapper=opener_wrapper,
    )
    fake_data = args.fake_data or FakeDataMode.from_str(args.fake_data_mode)
    n_fake_samples = args.n_fake_samples
    return metrics_wrapper.score(
        fake_data,
        n_fake_samples,
    )
Exemplo n.º 5
0
def load_from_module(name='opener'):
    """Load opener interface based on current working directory.

    Opener can be defined as an Opener subclass or directly has a module.

    Return an OpenerWrapper instance.
    """
    interface = utils.load_interface_from_module(
        name, interface_class=Opener, interface_signature=REQUIRED_FUNCTIONS)
    return OpenerWrapper(interface)
Exemplo n.º 6
0
def load_from_module(path=None, workspace=None):
    """Load opener interface from path or from python environment.

    Opener can be defined as an Opener subclass or directly has a module.

    Return an OpenerWrapper instance.
    """
    interface = utils.load_interface_from_module(
        'opener',
        interface_class=Opener,
        interface_signature=None,  # XXX does not support interface for debugging
        path=path,
    )
    return OpenerWrapper(interface, workspace=workspace)