@@ -55,7 +55,7 @@ def _make_argparser(filenames_help):
5555 cfgv .Optional ('always_run' , cfgv .check_bool , False ),
5656 cfgv .Optional ('pass_filenames' , cfgv .check_bool , True ),
5757 cfgv .Optional ('description' , cfgv .check_string , '' ),
58- cfgv .Optional ('language_version' , cfgv .check_string , 'default' ),
58+ cfgv .Optional ('language_version' , cfgv .check_string , C . DEFAULT ),
5959 cfgv .Optional ('log_file' , cfgv .check_string , '' ),
6060 cfgv .Optional ('minimum_pre_commit_version' , cfgv .check_string , '0' ),
6161 cfgv .Optional ('require_serial' , cfgv .check_bool , False ),
@@ -90,8 +90,8 @@ def validate_manifest_main(argv=None):
9090 return ret
9191
9292
93- _LOCAL = 'local'
94- _META = 'meta'
93+ LOCAL = 'local'
94+ META = 'meta'
9595
9696
9797class MigrateShaToRev (object ):
@@ -100,12 +100,12 @@ def _cond(key):
100100 return cfgv .Conditional (
101101 key , cfgv .check_string ,
102102 condition_key = 'repo' ,
103- condition_value = cfgv .NotIn (_LOCAL , _META ),
103+ condition_value = cfgv .NotIn (LOCAL , META ),
104104 ensure_absent = True ,
105105 )
106106
107107 def check (self , dct ):
108- if dct .get ('repo' ) in {_LOCAL , _META }:
108+ if dct .get ('repo' ) in {LOCAL , META }:
109109 self ._cond ('rev' ).check (dct )
110110 self ._cond ('sha' ).check (dct )
111111 elif 'sha' in dct and 'rev' in dct :
@@ -159,12 +159,11 @@ def _entry(modname):
159159
160160META_HOOK_DICT = cfgv .Map (
161161 'Hook' , 'id' ,
162+ cfgv .Required ('id' , cfgv .check_string ),
163+ cfgv .Required ('id' , cfgv .check_one_of (tuple (k for k , _ in _meta ))),
164+ # language must be system
165+ cfgv .Optional ('language' , cfgv .check_one_of ({'system' }), 'system' ),
162166 * ([
163- cfgv .Required ('id' , cfgv .check_string ),
164- cfgv .Required ('id' , cfgv .check_one_of (tuple (k for k , _ in _meta ))),
165- # language must be system
166- cfgv .Optional ('language' , cfgv .check_one_of ({'system' }), 'system' ),
167- ] + [
168167 # default to the hook definition for the meta hooks
169168 cfgv .ConditionalOptional (key , cfgv .check_any , value , 'id' , hook_id )
170169 for hook_id , values in _meta
@@ -200,36 +199,36 @@ def _entry(modname):
200199
201200 cfgv .ConditionalRecurse (
202201 'hooks' , cfgv .Array (CONFIG_HOOK_DICT ),
203- 'repo' , cfgv .NotIn (_LOCAL , _META ),
202+ 'repo' , cfgv .NotIn (LOCAL , META ),
204203 ),
205204 cfgv .ConditionalRecurse (
206205 'hooks' , cfgv .Array (MANIFEST_HOOK_DICT ),
207- 'repo' , _LOCAL ,
206+ 'repo' , LOCAL ,
208207 ),
209208 cfgv .ConditionalRecurse (
210209 'hooks' , cfgv .Array (META_HOOK_DICT ),
211- 'repo' , _META ,
210+ 'repo' , META ,
212211 ),
213212
214213 MigrateShaToRev (),
215214)
215+ DEFAULT_LANGUAGE_VERSION = cfgv .Map (
216+ 'DefaultLanguageVersion' , None ,
217+ cfgv .NoAdditionalKeys (all_languages ),
218+ * [cfgv .Optional (x , cfgv .check_string , C .DEFAULT ) for x in all_languages ]
219+ )
216220CONFIG_SCHEMA = cfgv .Map (
217221 'Config' , None ,
218222
219223 cfgv .RequiredRecurse ('repos' , cfgv .Array (CONFIG_REPO_DICT )),
224+ cfgv .OptionalRecurse (
225+ 'default_language_version' , DEFAULT_LANGUAGE_VERSION , {},
226+ ),
220227 cfgv .Optional ('exclude' , cfgv .check_regex , '^$' ),
221228 cfgv .Optional ('fail_fast' , cfgv .check_bool , False ),
222229)
223230
224231
225- def is_local_repo (repo_entry ):
226- return repo_entry ['repo' ] == _LOCAL
227-
228-
229- def is_meta_repo (repo_entry ):
230- return repo_entry ['repo' ] == _META
231-
232-
233232class InvalidConfigError (FatalError ):
234233 pass
235234
0 commit comments