يقوم Panoptisch بمسح ملف Python أو الوحدة النمطية للعثور على واردات (ويعرف أيضًا باسم التبعيات) ويقوم بذلك بشكل متكرر لجميع التبعيات والاعتماد الفرعي. ثم يولد شجرة تبعية في JSON لك لتحليل وإنفاذ سياسات الاستيراد. يتم حل الواردات عن طريق محاكاة نظام استيراد بيثون. إنه ثابت تمامًا إلى جانب استيراد الوحدات النمطية للعثور على موقع ملفات (ملفات) المصدر. يتميز 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 لمعرفة ما إذا كان يمكن لـ PANOPTISCH حل دليل المكتبة القياسي تلقائيًا ، عادة /usr/local/lib/python3.x LOCAL/LIB/PYTHON3.X على تثبيتات Linux. ثم يمكنك استبعاده باستخدام $ panoptisch <module or file> --auto-stdlib-dir
إذا لم يتمكن Panoptisch تلقائيًا حل دليل المكتبة القياسي ، فيمكنك العثور عليه بنفسك وتقديمه كوسيطة لـ stdlib-dir
$ panoptisch <module or file> --stdlib-dir /the/path/to/your/standardlibrary/
يتم ترخيص جميع الأعمال بموجب الإصدار 3 ترخيص GNU General.
ردود الفعل والمساهمات والقضايا موضع ترحيب.