Panoptisch memindai file atau modul python Anda untuk menemukan impornya (alias dependensi) dan secara rekursif melakukannya untuk semua dependensi dan sub-dependensi. Kemudian menghasilkan pohon ketergantungan di JSON untuk Anda purs dan menegakkan kebijakan impor. Impor diselesaikan dengan meniru sistem impor Python. Ini benar -benar statis selain mengimpor modul untuk menemukan lokasi file sumbernya. Panoptisch juga memiliki kotak pasir minimal untuk mencegah efek samping saat mengimpor dependensi. Perhatikan bahwa kotak pasir tidak mudah!
Ada keterbatasan dan masalah yang diketahui pada tahap ini. Harap baca ini sebelum menggunakan Panoptisch.
Lihat: LIMITATIONS.md Tautan.
Saya tidak dapat menemukan pemindai ketergantungan yang tepat untuk Python. Panoptisch lahir dari kebutuhan untuk secara akurat memverifikasi penggunaan ketergantungan ACCROSS seluruh proyek.
Tujuannya adalah untuk menghasilkan laporan JSON yang dapat diuraikan dan dievaluasi untuk menegaskan kebijakan impor .
Misalnya, Anda mungkin ingin membatasi impor os , socket , sys dan importlib ke paket yang dipilih.
Panoptisch di lingkungan virtual yang sama dengan proyek Anda, ini penting! pip install panoptisch
usage: panoptisch <module>
positional arguments:
module Name of module or file you wish to scan.
options:
-h, --help show this help message and exit.
--show-stdlib-dir Prints the automatically resolved stdlib directory.
--max-depth MAX_DEPTH
Maximum dependency depth.
--out OUT File to output report.
--auto-stdlib-dir Ignore stdlib modules by automatically resolving their path. MAY BE BUGGY. Try running panoptisch <module_name> --show-stdlib-dir to see the directory before using this.
--stdlib-dir STDLIB_DIR Ignore stdlib modules by providing their path.
--omit-not-found Do not include modules that could not be resolved in report.
--no-sandbox Ignore the minimal sandbox implementation.
Lari khas mungkin
$ panoptisch <module or file> --max-depth 5 --omit-not-found
$ more out.json
--show-stdlib-dir untuk melihat apakah Panoptisch dapat secara otomatis menyelesaikan direktori perpustakaan standar Anda, biasanya /usr/local/lib/python3.x pada instalasi Linux. Maka Anda dapat mengecualikannya menggunakan $ panoptisch <module or file> --auto-stdlib-dir
Jika Panoptisch tidak dapat secara otomatis menyelesaikan Direktori Perpustakaan Standar Anda, Anda dapat menemukannya sendiri dan memberikannya sebagai argumen untuk stdlib-dir
$ panoptisch <module or file> --stdlib-dir /the/path/to/your/standardlibrary/
Semua pekerjaan dilisensikan di bawah GNU Umum Lisensi Publik Versi 3.
Umpan balik, kontribusi, dan masalah diterima.