Esiste un modo semplice per elencare i nomi di tutti i moduli in un pacchetto, senza utilizzarli __all__
?
Ad esempio, dato questo pacchetto:
/testpkg
/testpkg/__init__.py
/testpkg/modulea.py
/testpkg/moduleb.py
Mi chiedo se esiste un modo standard o integrato per fare qualcosa del genere:
>>> package_contents("testpkg")
['modulea', 'moduleb']
L'approccio manuale consiste nell'iterare i percorsi di ricerca del modulo per trovare la directory del pacchetto. Si potrebbe quindi elencare tutti i file in quella directory, filtrare i file py / pyc / pyo dal nome univoco, rimuovere le estensioni e restituire quell'elenco. Ma questo sembra una discreta quantità di lavoro per qualcosa che il meccanismo di importazione dei moduli sta già facendo internamente. Quella funzionalità è esposta da qualche parte?