def _scenario_setup(config: dict): """ Creates scenario specific tmp and output directiories. Also pulls external repositories ahead of running the scenario in case the scenario itself is found in the external repository. """ runtime_paths = paths.runtime_paths() scenario_output_dir = os.path.join(runtime_paths.output_dir, config["eval_id"]) #scenario_tmp_dir = os.path.join(runtime_paths.tmp_dir, config["eval_id"]) scenario_tmp_dir = os.path.join(runtime_paths.tmp_dir) os.makedirs(scenario_output_dir, exist_ok=True) os.makedirs(scenario_tmp_dir, exist_ok=True) logger.warning(f"Outputs will be written to {scenario_output_dir}") # Download any external repositories and add them to the sys path for use if config["sysconfig"].get("external_github_repo", None): external_repo_dir = os.path.join(scenario_tmp_dir, "external") external_repo.download_and_extract_repos( config["sysconfig"]["external_github_repo"], external_repo_dir=external_repo_dir, )
def test_download(): set_github_token() test_external_repo_dir = pathlib.Path(HOST_PATHS.tmp_dir, "test-external-repo-subdir") repo = "twosixlabs/armory-example" repo_name = repo.split("/")[-1] download_and_extract_repos(repo, external_repo_dir=test_external_repo_dir) basedir = test_external_repo_dir / repo_name assert os.path.exists(basedir) assert os.path.isfile(basedir / "README.md") shutil.rmtree(basedir) os.remove(test_external_repo_dir / (repo_name + ".tar.gz")) os.rmdir(test_external_repo_dir)
def _scenario_setup(config: dict): """ Creates scenario specific tmp and output directiories. Also pulls external repositories ahead of running the scenario in case the scenario itself is found in the external repository. """ runtime_paths = paths.runtime_paths() scenario_output_dir = os.path.join(runtime_paths.output_dir, config["eval_id"]) scenario_tmp_dir = os.path.join(runtime_paths.tmp_dir, config["eval_id"]) os.makedirs(scenario_output_dir, exist_ok=True) os.makedirs(scenario_tmp_dir, exist_ok=True) logger.warning(f"Outputs will be written to {scenario_output_dir}") # Download any external repositories and add them to the sys path for use if config["sysconfig"].get("external_github_repo", None): external_repo_dir = os.path.join(scenario_tmp_dir, "external") external_repo.download_and_extract_repos( config["sysconfig"]["external_github_repo"], external_repo_dir=external_repo_dir, ) pythonpaths = config["sysconfig"].get("external_github_repo_pythonpath") if isinstance(pythonpaths, str): pythonpaths = [pythonpaths] elif pythonpaths is None: pythonpaths = [] for pythonpath in pythonpaths: external_repo.add_pythonpath(pythonpath, external_repo_dir=external_repo_dir) local_paths = config["sysconfig"].get("local_repo_path") if isinstance(local_paths, str): local_paths = [local_paths] elif local_paths is None: local_paths = [] for local_path in local_paths: external_repo.add_local_repo(local_path)