3
3
import os
4
4
from datasets import load_dataset
5
5
from pathlib import Path
6
- from typing import Iterator
6
+ from typing import Iterator , Union , List
7
7
8
8
from commit0 .harness .constants import (
9
9
RepoInstance ,
35
35
36
36
37
37
def main (
38
- dataset_name : str , dataset_split : str , repo_or_repo_dir : str , base_dir : str
38
+ dataset_name : str ,
39
+ dataset_split : str ,
40
+ repo_or_repo_dir : str ,
41
+ files : Union [List [Path ], None ],
42
+ base_dir : str ,
39
43
) -> None :
40
44
dataset : Iterator [RepoInstance ] = load_dataset (dataset_name , split = dataset_split ) # type: ignore
41
45
example = None
@@ -49,22 +53,23 @@ def main(
49
53
assert example is not None , "No example available"
50
54
assert repo_name is not None , "No repo available"
51
55
52
- repo_dir = os .path .join (base_dir , repo_name )
53
- if os .path .isdir (repo_or_repo_dir ):
54
- repo = repo_or_repo_dir
55
- elif os .path .isdir (repo_dir ):
56
- repo = repo_dir
57
- else :
58
- raise Exception (
59
- f"Neither { repo_dir } nor { repo_or_repo_dir } is a valid path.\n Usage: commit0 lint {{repo_or_repo_dir}}"
60
- )
56
+ if files is None :
57
+ repo_dir = os .path .join (base_dir , repo_name )
58
+ if os .path .isdir (repo_or_repo_dir ):
59
+ repo = repo_or_repo_dir
60
+ elif os .path .isdir (repo_dir ):
61
+ repo = repo_dir
62
+ else :
63
+ raise Exception (
64
+ f"Neither { repo_dir } nor { repo_or_repo_dir } is a valid path.\n Usage: commit0 lint {{repo_or_repo_dir}}"
65
+ )
61
66
62
- files = []
63
- repo = os .path .join (repo , example ["src_dir" ])
64
- for root , dirs , fs in os .walk (repo ):
65
- for file in fs :
66
- if file .endswith (".py" ):
67
- files .append (os .path .join (root , file ))
67
+ files = []
68
+ repo = os .path .join (repo , example ["src_dir" ])
69
+ for root , dirs , fs in os .walk (repo ):
70
+ for file in fs :
71
+ if file .endswith (".py" ):
72
+ files .append (Path ( os .path .join (root , file ) ))
68
73
69
74
config_file = Path (".commit0.pre-commit-config.yaml" )
70
75
if not config_file .is_file ():
@@ -75,7 +80,8 @@ def main(
75
80
print (result .stdout )
76
81
sys .exit (result .returncode )
77
82
except subprocess .CalledProcessError as e :
78
- raise Exception (f"Pre-commit checks failed\n { e .output } " )
83
+ print (e .output )
84
+ sys .exit (e .returncode )
79
85
except FileNotFoundError :
80
86
raise FileNotFoundError ("Error: pre-commit command not found. Is it installed?" )
81
87
except Exception as e :
0 commit comments