(validator: AnyCallable, sig: 'Signature', args: Set[str])
| 320 | |
| 321 | |
| 322 | def _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 | |
| 355 | def gather_all_validators(type_: 'ModelOrDc') -> Dict[str, 'AnyClassMethod']: |
no test coverage detected