def _check_proper_bases(self, node):
for base in node.bases:<EOL><INDENT>ancestor = safe_infer(base)<EOL>if ancestor in (astroid.Uninferable, None):<EOL><INDENT>continue<EOL><DEDENT>if isinstance(ancestor, astroid.Instance) and ancestor.is_subtype_of(<EOL>"<STR_LIT>" % (BUILTINS,)<EOL>):<EOL><INDENT>continue<EOL><DEDENT>if not isinstance(ancestor, astroid.ClassDef) or _is_invalid_base_class(<EOL>ancestor<EOL>):<EOL><INDENT>self.add_message("<STR_LIT>", args=base.as_string(), node=node)<EOL><DEDENT>if ancestor.name == object.__name__:<EOL><INDENT>self.add_message(<EOL>"<STR_LIT>", args=node.name, node=node<EOL>)<EOL><DEDENT><DEDENT>
Detect that a class inherits something which is not
a class or a type.