def test_ModuleAnalyzer_get_module_source(): assert ModuleAnalyzer.get_module_source('sphinx') == (sphinx.__file__, sphinx.__loader__.get_source('sphinx')) # failed to obtain source information from builtin modules with pytest.raises(PycodeError): ModuleAnalyzer.get_module_source('builtins') with pytest.raises(PycodeError): ModuleAnalyzer.get_module_source('itertools')
def get_module_filename(app: Sphinx, modname: str) -> Optional[str]: """Get module filename for *modname*.""" source_info = app.emit_firstresult('viewcode-find-source', modname) if source_info: return None else: try: filename, source = ModuleAnalyzer.get_module_source(modname) return filename except Exception: return None