33import os
44from datasets import load_dataset
55from pathlib import Path
6- from typing import Iterator
6+ from typing import Iterator , Union , List
77
88from commit0 .harness .constants import (
99 RepoInstance ,
3535
3636
3737def 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 ,
3943) -> None :
4044 dataset : Iterator [RepoInstance ] = load_dataset (dataset_name , split = dataset_split ) # type: ignore
4145 example = None
@@ -49,22 +53,23 @@ def main(
4953 assert example is not None , "No example available"
5054 assert repo_name is not None , "No repo available"
5155
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+ )
6166
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 ) ))
6873
6974 config_file = Path (".commit0.pre-commit-config.yaml" )
7075 if not config_file .is_file ():
@@ -75,7 +80,8 @@ def main(
7580 print (result .stdout )
7681 sys .exit (result .returncode )
7782 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 )
7985 except FileNotFoundError :
8086 raise FileNotFoundError ("Error: pre-commit command not found. Is it installed?" )
8187 except Exception as e :
0 commit comments