New submission from Eric Snow: (see issue26569)
The pyclbr module is showing its age (born 1995). It assumes there are only 2 module types (builtin and source-based), particularly in readmodule() and readmodule_ex(). Really it should be source-based and "everything else". For instance, it does not handle namespace packages correctly, since the spec.loader is set to None there. It also doesn't handle frozen modules (e.g. "./python Lib/pyclbr.py _frozen_importlib"). This is likewise a problem for other/custom loaders that don't match the expectations of pyclbr. Here are some things that should be done: * replace custom introspection code with newer tools like importlib.util.module_from_spec() * special-case namespace modules (since their spec.loader is None); this is probably a moot point if module_from_spec() gets used * ignore more than just builtins; explicitly check for importlib.abc.SourceLoader? * make use of similar tools in the inspect module? ---------- components: Library (Lib) messages: 261924 nosy: brett.cannon, eric.snow, ncoghlan priority: normal severity: normal stage: test needed status: open title: pyclbr module needs to be more flexible on loader support type: behavior versions: Python 3.6 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue26584> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com