MCPcopy
hub / github.com/pydantic/pydantic / _generic_validator_basic

Function _generic_validator_basic

pydantic/v1/class_validators.py:322–352  ·  view source on GitHub ↗
(validator: AnyCallable, sig: 'Signature', args: Set[str])

Source from the content-addressed store, hash-verified

320
321
322def _generic_validator_basic(validator: AnyCallable, sig: 'Signature', args: Set[str]) -> 'ValidatorCallable':
323 has_kwargs = False
324 if 'kwargs' in args:
325 has_kwargs = True
326 args -= {'kwargs'}
327
328 if not args.issubset(all_kwargs):
329 raise ConfigError(
330 f'Invalid signature for validator {validator}: {sig}, should be: '
331 f'(value, values, config, field), "values", "config" and "field" are all optional.'
332 )
333
334 if has_kwargs:
335 return lambda cls, v, values, field, config: validator(v, values=values, field=field, config=config)
336 elif args == set():
337 return lambda cls, v, values, field, config: validator(v)
338 elif args == {'values'}:
339 return lambda cls, v, values, field, config: validator(v, values=values)
340 elif args == {'field'}:
341 return lambda cls, v, values, field, config: validator(v, field=field)
342 elif args == {'config'}:
343 return lambda cls, v, values, field, config: validator(v, config=config)
344 elif args == {'values', 'field'}:
345 return lambda cls, v, values, field, config: validator(v, values=values, field=field)
346 elif args == {'values', 'config'}:
347 return lambda cls, v, values, field, config: validator(v, values=values, config=config)
348 elif args == {'field', 'config'}:
349 return lambda cls, v, values, field, config: validator(v, field=field, config=config)
350 else:
351 # args == {'values', 'field', 'config'}
352 return lambda cls, v, values, field, config: validator(v, values=values, field=field, config=config)
353
354
355def gather_all_validators(type_: 'ModelOrDc') -> Dict[str, 'AnyClassMethod']:

Callers 1

make_generic_validatorFunction · 0.85

Calls 2

ConfigErrorClass · 0.90
validatorFunction · 0.70

Tested by

no test coverage detected