def _check_base_classes(self, node: ast.ClassDef) -> None:
     if len(node.bases) > self.options.max_base_classes:
         self.add_violation(
             TooManyBaseClassesViolation(
                 node,
                 text=str(len(node.bases)),
                 baseline=self.options.max_base_classes,
             ), )
    def _check_base_classes(self, node: ast.ClassDef) -> None:
        """Check 'object' class in parent list."""
        if len(node.bases) == 0:
            self.add_violation(
                RequiredBaseClassViolation(node, text=node.name), )

        if len(node.bases) >= 2:
            for base_name in node.bases:
                id_attr = getattr(base_name, 'id', None)
                if id_attr == 'object':
                    self.add_violation(
                        ObjectInBaseClassesListViolation(node, text=id_attr), )

        if len(node.bases) > self.options.max_base_classes:
            self.add_violation(
                TooManyBaseClassesViolation(node, text=node.name), )
 def _check_base_classes_number(self, node: ast.ClassDef) -> None:
     """Check number of base classes."""
     if len(node.bases) > self.options.max_base_classes:
         self.add_violation(
             TooManyBaseClassesViolation(node, text=node.name))