Apakah ada cara mudah untuk membuat daftar nama semua modul dalam sebuah paket, tanpa menggunakan __all__
?
Misalnya, diberikan paket ini:
/testpkg
/testpkg/__init__.py
/testpkg/modulea.py
/testpkg/moduleb.py
Saya ingin tahu apakah ada cara standar atau bawaan untuk melakukan sesuatu seperti ini:
>>> package_contents("testpkg")
['modulea', 'moduleb']
Pendekatan manual akan melakukan iterasi melalui jalur pencarian modul untuk menemukan direktori paket. Seseorang kemudian dapat membuat daftar semua file dalam direktori itu, menyaring file py / pyc / pyo yang dinamai unik, menghapus ekstensi, dan mengembalikan daftar itu. Tapi ini sepertinya cukup banyak pekerjaan untuk sesuatu yang mekanisme impor modul sudah lakukan secara internal. Apakah fungsi itu terpapar di mana saja?