Panoptisch scannt Ihre Python-Datei oder -modul, um die Importe (auch bekannt als Abhängigkeiten) zu finden, und dies für alle Abhängigkeiten und Unterabhängigkeiten rekursiv. Anschließend erzeugt es einen Abhängigkeitsbaum in JSON, damit Sie die Importrichtlinien analysieren und durchsetzen können. Die Importe werden durch Nachahmung des Importsystems von Python gelöst. Es ist neben dem Importieren von Modulen völlig statisch, um den Speicherort seiner Quelldateien zu finden. Panoptisch verfügt außerdem über eine minimale Sandbox, um Nebenwirkungen beim Importieren von Abhängigkeiten zu verhindern. Beachten Sie, dass der Sandbox nicht narrensicher ist!
In dieser Phase sind Beschränkungen und Probleme bekannt. Bitte lesen Sie dies, bevor Sie Panoptisch verwenden.
Siehe: LIMITATIONS.md Link.
Ich konnte keinen richtigen Abhängigkeitsscanner für Python finden. Panoptisch wurde aus der Notwendigkeit entstanden, die Abhängigkeitsnutzung genau zu überprüfen, um ein ganzes Projekt zu vergrößern.
Ziel ist es, einen JSON -Bericht zu erstellen, der analysiert und bewertet werden kann, um die Importrichtlinien zu gründen .
Zum Beispiel möchten Sie möglicherweise os , socket , sys und importlib -Importe auf ausgewählte Pakete einschränken.
Panoptisch in derselben virtuellen Umgebung wie Ihr Projekt. Dies ist wichtig! 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.
Ein typischer Lauf kann sein
$ panoptisch <module or file> --max-depth 5 --omit-not-found
$ more out.json
--show-stdlib-dir , um festzustellen, ob Panoptisch Ihr Standard-Bibliotheksverzeichnis automatisch auflösen kann, normalerweise /usr/local/lib/python3.x auf Linux-Installationen. Dann können Sie es mithilfe dessen ausschließen $ panoptisch <module or file> --auto-stdlib-dir
Wenn Panoptisch Ihr Standard-Bibliotheksverzeichnis nicht automatisch beheben kann, können Sie es selbst finden und als Argument für stdlib-dir angeben
$ panoptisch <module or file> --stdlib-dir /the/path/to/your/standardlibrary/
Alle Arbeiten sind unter der GNU General Public Lizenz Version 3 lizenziert.
Feedback, Beiträge und Probleme willkommen.