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 , dataset_split : str , repo_or_repo_dir : str , files : Union [ List [ Path ], None ], base_dir : str
3939) -> None :
4040 dataset : Iterator [RepoInstance ] = load_dataset (dataset_name , split = dataset_split ) # type: ignore
4141 example = None
@@ -49,22 +49,23 @@ def main(
4949 assert example is not None , "No example available"
5050 assert repo_name is not None , "No repo available"
5151
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- )
52+ if files is None :
53+ repo_dir = os .path .join (base_dir , repo_name )
54+ if os .path .isdir (repo_or_repo_dir ):
55+ repo = repo_or_repo_dir
56+ elif os .path .isdir (repo_dir ):
57+ repo = repo_dir
58+ else :
59+ raise Exception (
60+ f"Neither { repo_dir } nor { repo_or_repo_dir } is a valid path.\n Usage: commit0 lint {{repo_or_repo_dir}}"
61+ )
6162
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 ))
63+ files = []
64+ repo = os .path .join (repo , example ["src_dir" ])
65+ for root , dirs , fs in os .walk (repo ):
66+ for file in fs :
67+ if file .endswith (".py" ):
68+ files .append (os .path .join (root , file ))
6869
6970 config_file = Path (".commit0.pre-commit-config.yaml" )
7071 if not config_file .is_file ():
@@ -75,7 +76,8 @@ def main(
7576 print (result .stdout )
7677 sys .exit (result .returncode )
7778 except subprocess .CalledProcessError as e :
78- raise Exception (f"Pre-commit checks failed\n { e .output } " )
79+ print (e .output )
80+ sys .exit (e .returncode )
7981 except FileNotFoundError :
8082 raise FileNotFoundError ("Error: pre-commit command not found. Is it installed?" )
8183 except Exception as e :
0 commit comments