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
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)))
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()
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']