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