From 340cac39996ed9cb9f0522993cdd259ce4b99480 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Sat, 25 Mar 2023 11:19:29 -0400 Subject: [PATCH] Filter non-identifiers from module names. Fixes #442. --- importlib_metadata/__init__.py | 7 ++++++- tests/test_main.py | 3 --- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/importlib_metadata/__init__.py b/importlib_metadata/__init__.py index 8d9f0016..e44ea31a 100644 --- a/importlib_metadata/__init__.py +++ b/importlib_metadata/__init__.py @@ -902,4 +902,9 @@ def _top_level_inferred(dist): f.parts[0] if len(f.parts) > 1 else inspect.getmodulename(f) for f in always_iterable(dist.files) } - return filter(None, opt_names) + + @pass_none + def valid_module(name): + return name.isidentifier() + + return filter(valid_module, opt_names) diff --git a/tests/test_main.py b/tests/test_main.py index 73747405..ba752d88 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -323,9 +323,6 @@ def test_packages_distributions_neither_toplevel_nor_files(self): ) packages_distributions() - import pytest - - @pytest.mark.xfail(reason="442") def test_packages_distributions_all_module_types(self): """ Test top-level modules detected on a package without 'top-level.txt'.