diff --git a/python/src/com/jetbrains/python/inspections/PyClassHasNoInitInspection.java b/python/src/com/jetbrains/python/inspections/PyClassHasNoInitInspection.java index fc84e45afc76..48e168cf9c0b 100644 --- a/python/src/com/jetbrains/python/inspections/PyClassHasNoInitInspection.java +++ b/python/src/com/jetbrains/python/inspections/PyClassHasNoInitInspection.java @@ -2,7 +2,9 @@ package com.jetbrains.python.inspections; import com.intellij.codeInspection.LocalInspectionToolSession; import com.intellij.codeInspection.ProblemsHolder; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiElementVisitor; +import com.intellij.psi.util.PsiTreeUtil; import com.jetbrains.python.PyBundle; import com.jetbrains.python.PyNames; import com.jetbrains.python.inspections.quickfix.AddMethodQuickFix; @@ -44,6 +46,11 @@ public class PyClassHasNoInitInspection extends PyInspection { @Override public void visitPyClass(PyClass node) { + final PyClass outerClass = PsiTreeUtil.getParentOfType(node, PyClass.class); + assert node != null; + if (outerClass != null && StringUtil.equalsIgnoreCase("meta", node.getName())) { + return; + } final List types = node.getAncestorTypes(myTypeEvalContext); for (PyClassLikeType type : types) { if (type == null) return; diff --git a/python/testData/inspections/PyClassHasNoInitInspection/meta.py b/python/testData/inspections/PyClassHasNoInitInspection/meta.py new file mode 100644 index 000000000000..88b0044d0259 --- /dev/null +++ b/python/testData/inspections/PyClassHasNoInitInspection/meta.py @@ -0,0 +1,8 @@ +from django.db import models +class BasePage(models.Model): + title = models.CharField(max_length=50) + slug = models.CharField(max_length=50) + + + class Meta: + abstract = True diff --git a/python/testSrc/com/jetbrains/python/inspections/PyClassHasNoInitInspectionTest.java b/python/testSrc/com/jetbrains/python/inspections/PyClassHasNoInitInspectionTest.java index 3b33f84f7002..d9aa19d05db8 100644 --- a/python/testSrc/com/jetbrains/python/inspections/PyClassHasNoInitInspectionTest.java +++ b/python/testSrc/com/jetbrains/python/inspections/PyClassHasNoInitInspectionTest.java @@ -31,6 +31,10 @@ public class PyClassHasNoInitInspectionTest extends PyTestCase { doTest(); } + public void testMeta() { + doTest(); + } + public void testUnresolvedAncestor() { doTest(); }