PanoptiSch scanne votre fichier ou module Python pour trouver ses importations (aka dépendances) et le fait récursivement pour toutes les dépendances et les sous-dépendances. Il génère ensuite un arbre de dépendance dans JSON pour que vous analysez et appliquez les politiques d'importation. Les importations sont résolues en imitant le système d'importation de Python. Il est complètement statique en plus de l'importation de modules pour trouver l'emplacement de ses fichiers source. Panoptisch dispose également d'un bac à sable minimal pour éviter les effets secondaires lors de l'importation de dépendances. Notez que le bac à sable n'est pas infaillible!
Il y a des limitations et des problèmes connus à ce stade. Veuillez lire ceci avant d'utiliser Panoptisch.
Voir: LIMITATIONS.md Lien.
Je n'ai pas pu trouver de scanner de dépendance approprié pour Python. Panoptisch est né de la nécessité de vérifier avec précision l'utilisation de la dépendance accrocher un projet entier.
L'objectif est de générer un rapport JSON qui peut être analysé et évalué pour affirmer les politiques d'importation .
Par exemple, vous souhaiterez peut-être restreindre les importations os , socket , sys et importlib dans des packages sélectionnés.
Panoptisch dans le même environnement virtuel que votre projet, c'est important! 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.
Une course typique peut être
$ panoptisch <module or file> --max-depth 5 --omit-not-found
$ more out.json
--show-stdlib-dir pour voir si Panoptisch peut automatiquement résoudre votre répertoire de bibliothèque standard, généralement /usr/local/lib/python3.x sur les installations Linux. Alors vous pouvez l'exclure en utilisant $ panoptisch <module or file> --auto-stdlib-dir
Si Panoptisch ne peut pas résoudre automatiquement votre répertoire de bibliothèque standard, vous pouvez le trouver vous-même et le fournir comme argument à stdlib-dir
$ panoptisch <module or file> --stdlib-dir /the/path/to/your/standardlibrary/
Tous les travaux sont concédés sous licence GNU General Public License version 3.
Les commentaires, les contributions et les problèmes sont les bienvenus.