diff --git a/python/python-psi-impl/resources/intellij.python.psi.impl.xml b/python/python-psi-impl/resources/intellij.python.psi.impl.xml
index 60f32d75c10f..59c2f5683592 100644
--- a/python/python-psi-impl/resources/intellij.python.psi.impl.xml
+++ b/python/python-psi-impl/resources/intellij.python.psi.impl.xml
@@ -586,7 +586,6 @@
-
diff --git a/python/python-psi-impl/src/com/jetbrains/python/numpy/codeInsight/NumpyModuleMembersProvider.java b/python/python-psi-impl/src/com/jetbrains/python/numpy/codeInsight/NumpyModuleMembersProvider.java
deleted file mode 100644
index 3ca7f6fb1927..000000000000
--- a/python/python-psi-impl/src/com/jetbrains/python/numpy/codeInsight/NumpyModuleMembersProvider.java
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.jetbrains.python.numpy.codeInsight;
-
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.util.QualifiedName;
-import com.jetbrains.python.codeInsight.PyCustomMember;
-import com.jetbrains.python.codeInsight.PyPsiPath;
-import com.jetbrains.python.psi.PyFile;
-import com.jetbrains.python.psi.PyUtil;
-import com.jetbrains.python.psi.resolve.PyQualifiedNameResolveContext;
-import com.jetbrains.python.psi.resolve.PyResolveContext;
-import com.jetbrains.python.psi.resolve.PyResolveImportUtil;
-import com.jetbrains.python.psi.types.PyModuleMembersProvider;
-import com.jetbrains.python.psi.types.TypeEvalContext;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Provides 'numpy' module dynamic members for numeric types.
- *
- * @author avereshchagin
- */
-public final class NumpyModuleMembersProvider extends PyModuleMembersProvider {
- private static final String[] NUMERIC_TYPES = {
- "int8", "int16", "int32", "int64", "int128",
- "uint8", "uint16", "uint32", "uint64", "uint128",
- "float16", "float32", "float64", "float80", "float96", "float128", "float256",
- "complex32", "complex64", "complex128", "complex160", "complex192", "complex256", "complex512", "double"
- };
- private static final String[] PYTHON_TYPES = {
- "int_", "bool_", "float_", "cfloat", "string_", "str_",
- "unicode_", "object_", "complex_", "bytes_", "byte", "ubyte", "void",
- "short", "ushort", "intc", "uintc", "intp", "uintp", "uint",
- "longlong", "ulonglong", "single", "csingle",
- "longfloat", "clongfloat"};
-
- private static final String DTYPE = "numpy.core.multiarray.dtype";
-
- @Override
- protected @NotNull Collection getMembersByQName(@NotNull PyFile module, @NotNull String qName, @NotNull TypeEvalContext context) {
- if ("numpy".equals(qName)) {
- final PyResolveContext resolveContext = PyResolveContext.defaultContext(context);
- final PsiElement clazz = new PyPsiPath.ToClassQName(DTYPE).resolve(module, resolveContext);
- if (clazz != null) {
- final List members = new ArrayList<>();
- for (String type : NUMERIC_TYPES) {
- members.add(new PyCustomMember(type, clazz, DTYPE));
- }
- for (String type : PYTHON_TYPES) {
- members.add(new PyCustomMember(type, clazz, DTYPE));
- }
- addTestingModule(module, members);
- return members;
- }
- }
- return Collections.emptyList();
- }
-
- private static void addTestingModule(PyFile module, List members) {
- final PyQualifiedNameResolveContext context = PyResolveImportUtil.fromFoothold(module).copyWithPlainDirectories();
- final PsiElement resolved = PyResolveImportUtil.resolveQualifiedName(QualifiedName.fromDottedString("numpy.testing"), context)
- .stream().findFirst().orElse(null);
- final PsiElement testingModule = PyUtil.turnDirIntoInit(resolved);
- members.add(new PyCustomMember("testing", testingModule));
- }
-}