Bir paketteki tüm modüllerin adlarını kullanmadan listelemenin basit bir yolu var mı __all__
?
Örneğin, bu paket verildiğinde:
/testpkg
/testpkg/__init__.py
/testpkg/modulea.py
/testpkg/moduleb.py
Bunun gibi bir şey yapmanın standart veya yerleşik bir yolu olup olmadığını merak ediyorum:
>>> package_contents("testpkg")
['modulea', 'moduleb']
Manuel yaklaşım, paketin dizinini bulmak için modül arama yollarını yinelemek olacaktır. Daha sonra bu dizindeki tüm dosyalar listelenebilir, benzersiz şekilde adlandırılmış py / pyc / pyo dosyalarını filtreleyebilir, uzantıları çıkarabilir ve bu listeyi geri döndürebilir. Ancak bu, modül içe aktarma mekanizmasının zaten dahili olarak yaptığı bir şey için makul miktarda çalışma gibi görünüyor. Bu işlevsellik herhangi bir yerde açığa çıkıyor mu?