Source code for config_wrangler.validate_config_hierarchy

import inspect
from collections import defaultdict
from types import MethodType
from typing import Set

from pydantic import BaseModel

class_registry = defaultdict(set)


[docs] def get_class_that_defined_method(method: MethodType) -> str: parts = method.__qualname__.split('.') return '.'.join(parts[:-1])
[docs] def config_hierarchy_validator(validation_fn: MethodType): # validation_fn._is_config_hierarchy_validator = True def decorated_validator(*args, **kwargs): validation_fn(*args, **kwargs) decorated_validator._is_config_hierarchy_validator = True return decorated_validator
[docs] def get_validation_functions(model_level: BaseModel) -> Set[str]: return class_registry.get(model_level.__class__.__qualname__, set())