Есть ли простой способ перечислить имена всех модулей в пакете без использования __all__
?
Например, с учетом этого пакета:
/testpkg
/testpkg/__init__.py
/testpkg/modulea.py
/testpkg/moduleb.py
Мне интересно, есть ли стандартный или встроенный способ сделать что-то вроде этого:
>>> package_contents("testpkg")
['modulea', 'moduleb']
Ручной подход заключался бы в переборе путей поиска модулей, чтобы найти каталог пакета. Затем можно было бы перечислить все файлы в этом каталоге, отфильтровать файлы py / pyc / pyo с уникальными именами, удалить расширения и вернуть этот список. Но это похоже на изрядную работу для того, что механизм импорта модулей уже выполняет внутри. Эта функция доступна где-нибудь?