예제 #1
0
def create_model_env(model_name,
                     source_name,
                     env_name,
                     vep=False,
                     verbose=False):
    """kipoi test ...

    Args:
      model_name (str)
      source_name: source name
    """
    if env_exists(env_name):
        logger.info("Environment {0} exists. Removing it.".format(env_name))
        remove_env(env_name)

    # TODO - if the model is a Keras model, print the Keras config file
    # and note which config file got used

    # create the model test environment
    cmd = "kipoi"
    args = [
        "env", "create", "--source", source_name, "--env", env_name, model_name
    ]
    if verbose:
        args.append("--verbose")
    if vep:
        # Add --vep to environment installation
        args.insert(-1, "--vep")
    returncode = _call_command(cmd, args, use_stdout=True)
    assert returncode == 0
예제 #2
0
파일: env.py 프로젝트: k3nnywilliam/kipoi
def delete_envs(to_delete):
    db = get_model_env_db()
    for e in to_delete:
        try:
            kipoi_conda.remove_env(e.create_args.env)
            db.remove(e)
            db.save()
        except Exception as err:
            logger.warning(
                "Conda delete of environment {0} failed with error: {1}. This environment entry was not "
                "removed from the database.".format(e.create_args.env,
                                                    str(err)))
예제 #3
0
def rm_env(env_name):
    """Alias for remove_env
    """
    from kipoi.env_db import get_model_env_db
    if env_exists(env_name):
        logger.info("Removing environment: {0}".format(env_name))
        remove_env(env_name)
        # remove from db
        db = get_model_env_db()
        db_entries = [e for e in db.get_all() if e.create_args.env == env_name]
        [db.remove(e) for e in db_entries]
        db.save()
예제 #4
0
def test_model(model_name, caplog):
    """kipoi test ...
    """
    caplog.set_level(logging.INFO)

    source_name = "kipoi"
    assert source_name == "kipoi"

    env_name = conda_env_name(model_name, model_name, source_name)
    env_name = "test-" + env_name  # prepend "test-"

    # if environment already exists, remove it
    if env_exists(env_name):
        print("Removing the environment: {0}".format(env_name))
        remove_env(env_name)

    # create the model test environment
    args = [
        "kipoi", "env", "create", "--source", source_name, "--env", env_name,
        model_name
    ]
    returncode = subprocess.call(args=args)
    assert returncode == 0

    if model_name == "basenji":
        batch_size = str(2)
    else:
        batch_size = str(4)

    # run the tests in the environment
    args = [
        get_kipoi_bin(env_name), "test", "--batch_size", batch_size,
        "--source", source_name, model_name
    ]
    returncode = subprocess.call(args=args)
    assert returncode == 0

    for record in caplog.records:
        # there shoudn't be any warning
        assert record.levelname not in ['WARN', 'WARNING', 'ERROR', 'CRITICAL']