Panoptisch สแกนไฟล์หรือโมดูล Python ของคุณเพื่อค้นหาการนำเข้า (aka adpendencies) และทำซ้ำสำหรับการพึ่งพาและการพึ่งพาย่อยทั้งหมด จากนั้นจะสร้างต้นไม้การพึ่งพาใน JSON เพื่อให้คุณแยกวิเคราะห์และบังคับใช้นโยบายการนำเข้า การนำเข้าได้รับการแก้ไขโดยการเลียนแบบระบบนำเข้าของ Python มันคงที่อย่างสมบูรณ์นอกเหนือจากการนำเข้าโมดูลเพื่อค้นหาตำแหน่งของไฟล์ต้นฉบับ Panoptisch ยังมีกล่องทรายน้อยที่สุดเพื่อป้องกันผลข้างเคียงเมื่อนำเข้าการพึ่งพา โปรดทราบว่า Sandbox ไม่สามารถป้องกันได้!
มี ข้อ จำกัด และปัญหา ที่ทราบกันดีในขั้นตอนนี้ โปรดอ่านสิ่งนี้ก่อนใช้ 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 บนการติดตั้ง Linux จากนั้นคุณสามารถแยกได้โดยใช้ $ panoptisch <module or file> --auto-stdlib-dir
หาก Panoptisch ไม่สามารถแก้ไขไดเรกทอรีไลบรารีมาตรฐานของคุณได้โดยอัตโนมัติคุณสามารถค้นหาด้วยตัวเองและให้เป็นอาร์กิวเมนต์สำหรับ stdlib-dir
$ panoptisch <module or file> --stdlib-dir /the/path/to/your/standardlibrary/
งานทั้งหมดได้รับใบอนุญาตภายใต้ใบอนุญาตสาธารณะ GNU ทั่วไปเวอร์ชัน 3
ข้อเสนอแนะการมีส่วนร่วมและปัญหายินดีต้อนรับ