diff --git a/python/helpers/pycharm_generator_utils/constants.py b/python/helpers/pycharm_generator_utils/constants.py index 1839fba532eb..7a1bc1b29682 100644 --- a/python/helpers/pycharm_generator_utils/constants.py +++ b/python/helpers/pycharm_generator_utils/constants.py @@ -783,7 +783,7 @@ MAC_SKIP_MODULES = ["test", "ctypes/test", "distutils/tests", "email/test", POSIX_SKIP_MODULES = ["vtemodule", "PAMmodule", "_snackmodule", "/quodlibet/_mmkeys"] -BIN_MODULE_FNAME_PAT = re.compile('([a-zA-Z_]+[0-9a-zA-Z]*)\\.(?:pyc|pyo|(?:[a-zA-Z_]+-\\d\\d[a-zA-Z]*\\.|.+-linux-gnu\\.)?(?:so|pyd))') +BIN_MODULE_FNAME_PAT = re.compile('([a-zA-Z_]+[0-9a-zA-Z]*)\\.(?:pyc|pyo|(?:[a-zA-Z_]+-\\d\\d[a-zA-Z]*(?:-[a-zA-Z_0-9\-]+)?\\.)?(?:so|pyd))') # possible binary module filename: letter, alphanum architecture per PEP-3149 TYPELIB_MODULE_FNAME_PAT = re.compile("([a-zA-Z_]+[0-9a-zA-Z]*)[0-9a-zA-Z-.]*\\.typelib") diff --git a/python/testData/skeletons/BinaryStandardModule.py b/python/testData/skeletons/BinaryStandardModule.py new file mode 100644 index 000000000000..ca980e61a149 --- /dev/null +++ b/python/testData/skeletons/BinaryStandardModule.py @@ -0,0 +1,5 @@ +import binascii +import nonexistent + + +print(binascii, nonexistent) diff --git a/python/testSrc/com/jetbrains/env/python/PythonSkeletonsTest.java b/python/testSrc/com/jetbrains/env/python/PythonSkeletonsTest.java index f8c90ad40b3f..45b29c51c544 100644 --- a/python/testSrc/com/jetbrains/env/python/PythonSkeletonsTest.java +++ b/python/testSrc/com/jetbrains/env/python/PythonSkeletonsTest.java @@ -175,6 +175,24 @@ public class PythonSkeletonsTest extends PyEnvTestCase { }); } + // PY-17282 + public void testBinaryStandardModule() { + runTest(new SkeletonsTask() { + @Override + protected void runTestOn(@NotNull Sdk sdk) { + myFixture.configureByFile(getTestName(false) + ".py"); + myFixture.enableInspections(PyUnresolvedReferencesInspection.class); + + edt(new Runnable() { + @Override + public void run() { + myFixture.checkHighlighting(true, false, false); + } + }); + } + }); + } + private void runTest(@NotNull PyTestTask task) { runPythonTest(task);