@classmethod
def validate_override(cls, name, config: dict, **override_options):
    """validate the provided option are valid"""
    options = {}
    for key, value in override_options.items():
        lookup_key = key.lower().replace('-', '').replace('_', '')
        obj = cls._OPTIONS_TABLE.get(lookup_key)
        if obj is not None:
            if obj.get('abbreviation'):
                obj = cls._OPTIONS_TABLE.get(obj.get('abbreviation'))
            if obj.get('readonly'):
                raise ValueError(
                    f"option '{key}' in {name} is readony, cannot be set")
            cls._convert(name, obj, key, value)
            cls._validate_config_trait(name, obj, key, value, config)
            options[obj.get('flag') or lookup_key] = value
        else:
            raise ValueError(f"unknown option '{key}' in {name}")
    return options
