void (@NotNull PyFromImportStatement node) { PyReferenceExpression importSource = node.getImportSource(); if (importSource != null && PyNames.FUTURE_MODULE.equals(importSource.getName())) { PsiFile file = importSource.getContainingFile(); if (file instanceof PyFile) { final List<PyStatement> statementList = ((PyFile)file).getStatements(); boolean skippedDocString = false; for (PyStatement statement : statementList) { if (statement instanceof PyExpressionStatement && ((PyExpressionStatement) statement).getExpression() instanceof PyStringLiteralExpression && !skippedDocString) { skippedDocString = true; continue; } if (statement instanceof PyFromImportStatement) { if (statement == node) { return; } PyReferenceExpression source = ((PyFromImportStatement)statement).getImportSource(); if (source != null && PyNames.FUTURE_MODULE.equals(source.getName())) { continue; } } registerProblem(node, PyPsiBundle.message("INSP.from.future.import.from.future.imports.must.occur.at.beginning.file"), new MoveFromFutureImportQuickFix()); return; } } } }