panoptisch
0.1.7
Panoptischは、Pythonファイルまたはモジュールをスキャンして、インポート(依存関係)であることを確認し、すべての依存関係とサブ依存性について再帰的に行います。次に、JSONの依存関係ツリーを生成し、インポートポリシーを解析および実施します。輸入は、Pythonのインポートシステムを模倣することにより解決されます。ソースファイルの位置を見つけるためのモジュールのインポート以外には完全に静的です。 Panoptischは、依存関係をインポートするときに副作用を防ぐための最小限のサンドボックスも備えています。サンドボックスは絶対確実ではないことに注意してください!
この段階では、既知の制限と問題があります。 Panoptischを使用する前にこれを読んでください。
参照: LIMITATIONS.mdリンク。
Python用の適切な依存関係スキャナーを見つけることができませんでした。 Panoptischは、プロジェクト全体の依存使用の使用量を正確に検証する必要性から生まれました。
それは、輸入ポリシーを主張するために解析および評価できるJSONレポートを生成することです。
たとえば、 os 、 socket 、 sysおよびimportlibインポートを選択したパッケージに制限することをお勧めします。
Panoptischをインストールすると、これは重要です! 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.
典型的な走りはそうかもしれません
$ panoptisch <module or file> --max-depth 5 --omit-not-found
$ more out.json
--show-stdlib-dir arguementを使用して、panoptischがLinuxインストールで標準ライブラリディレクトリ、通常/usr/local/lib/python3.x自動的に解決できるかどうかを確認します。その後、使用して除外できます $ panoptisch <module or file> --auto-stdlib-dir
Panoptischが標準ライブラリディレクトリを自動的に解決できない場合は、自分で見つけて、 stdlib-dirへの引数として提供できます
$ panoptisch <module or file> --stdlib-dir /the/path/to/your/standardlibrary/
すべての作業は、GNU一般公開ライセンスバージョン3に基づいてライセンスされています。
フィードバック、貢献、問題を歓迎します。