Skip to content

Commit ca5f874

Browse files
committed
fixed all hydra related errors
1 parent ac667a9 commit ca5f874

5 files changed

Lines changed: 52 additions & 33 deletions

File tree

commit0/__main__.py

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,40 @@
11
import commit0.harness.run_pytest_ids
22
import commit0.harness.build
33
import commit0.harness.setup
4+
import copy
45
import sys
6+
import hydra
57

68

79
def main() -> None:
810
command = sys.argv[1]
11+
# have hydra to ignore all command-line arguments
12+
sys_argv = copy.deepcopy(sys.argv)
13+
sys.argv = [sys.argv[0]]
14+
hydra.initialize(version_base=None, config_path="../configs")
15+
config = hydra.compose(config_name="base")
16+
# after hydra gets all configs, put command-line arguments back
17+
sys.argv = sys_argv
918

1019
if command == "clone":
11-
commit0.harness.setup.main()
20+
commit0.harness.setup.main(
21+
config.dataset_name, config.dataset_split, config.base_dir
22+
)
1223
elif command == "build":
13-
commit0.harness.build.main()
24+
commit0.harness.build.main(config.dataset_name, config.dataset_split)
1425
elif command == "test":
15-
commit0.harness.run_pytest_ids.main()
26+
repo = sys.argv[2]
27+
test_ids = sys.argv[3]
28+
commit0.harness.run_pytest_ids.main(
29+
config.dataset_name,
30+
config.dataset_split,
31+
config.base_dir,
32+
repo,
33+
config.branch,
34+
test_ids,
35+
config.backend,
36+
config.timeout,
37+
)
1638

1739

1840
if __name__ == "__main__":

commit0/harness/build.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,18 @@
44
from datasets import load_dataset
55
from typing import Iterator
66

7-
from omegaconf import DictConfig
87
from commit0.harness.docker_build import build_repo_images
98
from commit0.harness.spec import make_spec
109
from commit0.harness.constants import RepoInstance
11-
import hydra
1210

1311
logging.basicConfig(
1412
level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
1513
)
1614
logger = logging.getLogger(__name__)
1715

1816

19-
@hydra.main(version_base=None, config_path="configs", config_name="base")
20-
def main(config: DictConfig) -> None:
21-
dataset: Iterator[RepoInstance] = load_dataset(hf_name, split="test") # type: ignore
17+
def main(dataset_name: str, dataset_split: str) -> None:
18+
dataset: Iterator[RepoInstance] = load_dataset(dataset_name, split=dataset_split) # type: ignore
2219
specs = []
2320
for example in dataset:
2421
spec = make_spec(example)

commit0/harness/docker_utils.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,6 @@ def log_error(x: str) -> None:
330330
def log_info(x: str) -> None:
331331
print(x)
332332

333-
raise_error = True
334333
elif logger == "quiet":
335334
# if logger is "quiet", don't print anything
336335
def log_info(x: str) -> None:

commit0/harness/run_pytest_ids.py

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66
from pathlib import Path
77
import logging
88

9-
from omegaconf import DictConfig, OmegaConf
10-
import hydra
11-
129
from commit0.harness.constants import RUN_PYTEST_LOG_DIR
1310
from commit0.harness.docker_build import (
1411
close_logger,
@@ -196,39 +193,46 @@ def run_modal(
196193
)
197194

198195

199-
@hydra.main(version_base=None, config_path="configs", config_name="base")
200-
def main(config: DictConfig) -> None:
201-
OmegaConf.to_yaml(config)
202-
dataset = load_dataset(config.dataset_name, split="test")
196+
def main(
197+
dataset_name: str,
198+
dataset_split: str,
199+
base_dir: str,
200+
repo: str,
201+
branch: str,
202+
test_ids: str,
203+
backend: str,
204+
timeout: int,
205+
) -> None:
206+
dataset = load_dataset(dataset_name, split="test")
203207
spec = None
204208
for example in dataset:
205-
if example["repo"].endswith(config.repo):
209+
if example["repo"].endswith(repo):
206210
spec = make_spec(example)
207211
break
208212
assert spec is not None, "No spec available"
209213

210-
hashed_test_ids = get_hash_string(config.test_ids)
214+
hashed_test_ids = get_hash_string(test_ids)
211215
# set up logging
212-
log_dir = RUN_PYTEST_LOG_DIR / config.repo / hashed_test_ids
216+
log_dir = RUN_PYTEST_LOG_DIR / repo / hashed_test_ids
213217
log_dir.mkdir(parents=True, exist_ok=True)
214218
log_file = log_dir / "run_pytest.log"
215-
logger = setup_logger(config.repo, log_file)
219+
logger = setup_logger(repo, log_file)
216220

217221
# make eval file
218222
eval_script = spec.eval_script.format(
219-
local_repo=f"{config.base_dir}/{config.repo}",
220-
branch_name=config.branch,
221-
test_ids=config.test_ids,
222-
ip=get_ip(config.backend),
223+
local_repo=f"{base_dir}/{repo}",
224+
branch_name=branch,
225+
test_ids=test_ids,
226+
ip=get_ip(backend),
223227
user=get_user(),
224228
)
225229
eval_file = Path(log_dir / "eval.sh")
226230
eval_file.write_text(eval_script)
227231

228-
if ExecutionBackend(config.backend) == ExecutionBackend.LOCAL:
229-
run_docker(spec, logger, eval_file, config.timeout, log_dir)
230-
elif ExecutionBackend(config.backend) == ExecutionBackend.MODAL:
231-
run_modal(spec, logger, eval_file, config.timeout, log_dir)
232+
if ExecutionBackend(backend) == ExecutionBackend.LOCAL:
233+
run_docker(spec, logger, eval_file, timeout, log_dir)
234+
elif ExecutionBackend(backend) == ExecutionBackend.MODAL:
235+
run_modal(spec, logger, eval_file, timeout, log_dir)
232236

233237

234238
__all__ = []

commit0/harness/setup.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
import os
33

44
import docker
5-
import hydra
65
from datasets import load_dataset
7-
from omegaconf import DictConfig
86

97
from typing import Iterator
108
from commit0.harness.utils import clone_repo
@@ -19,9 +17,8 @@
1917
logger = logging.getLogger(__name__)
2018

2119

22-
@hydra.main(version_base=None, config_path="configs", config_name="base")
23-
def main(config: DictConfig) -> None:
24-
dataset: Iterator[RepoInstance] = load_dataset(hf_name, split="test") # type: ignore
20+
def main(dataset_name: str, dataset_split: str, base_dir: str) -> None:
21+
dataset: Iterator[RepoInstance] = load_dataset(dataset_name, split="test") # type: ignore
2522
out = dict()
2623
specs = []
2724
for example in dataset:

0 commit comments

Comments
 (0)