def raise_for_invalid_class_variable(cls):
    """typed.Dynaconf only allows typed variables or dynaconf_options attr"""
    for name, value in vars(cls).items():
        if (
            name.startswith(("_", "dynaconf_options"))
            or name in cls.__annotations__
        ):
            continue
        msg = (
            f"Invalid assignment on `{ut.get_type_name(cls)}:"
            f" {name} = {ut.get_type_name(value)}`. "
            "All attributes must include type annotations or "
            "be a `dynaconf_options = Options(...)`. "
        )
        if ut.is_type(value):
            msg += f"Did you mean '{name}: {ut.get_type_name(value)}'?"
        else:
            msg += f"Did you mean '{name}: T = {value}'?"

        raise ex.DynaconfSchemaError(msg)
typed.Dynaconf only allows typed variables or dynaconf_options attr
dynaconf/typed/guards.py