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