Existe-t-il un moyen simple de lister les noms de tous les modules d'un package, sans utiliser __all__
?
Par exemple, étant donné ce package:
/testpkg
/testpkg/__init__.py
/testpkg/modulea.py
/testpkg/moduleb.py
Je me demande s'il existe un moyen standard ou intégré de faire quelque chose comme ceci:
>>> package_contents("testpkg")
['modulea', 'moduleb']
L'approche manuelle consisterait à parcourir les chemins de recherche du module afin de trouver le répertoire du paquet. On pourrait alors lister tous les fichiers dans ce répertoire, filtrer les fichiers py / pyc / pyo de nom unique, supprimer les extensions et renvoyer cette liste. Mais cela semble être un travail considérable pour quelque chose que le mécanisme d'importation de modules fait déjà en interne. Cette fonctionnalité est-elle exposée quelque part?