Pysonar2 เป็นไลบรารีดัชนีความหมายสำหรับ Python ซึ่งออกแบบมาสำหรับการประมวลผลแบทช์ของฐานรหัสขนาดใหญ่ ดัชนีผลลัพธ์สามารถใช้ในการสร้างเบราว์เซอร์รหัสและเครื่องมือค้นหารหัส
Python เป็นภาษาที่มีพลวัตสูง เพื่อให้บรรลุความแม่นยำและคุณภาพสูง Pysonar2 ได้ทำการวิเคราะห์แบบระหว่างกันเพื่ออนุมานประเภท โดยทั่วไป Pysonar2 จะสร้างดัชนีที่ดีกว่า Python Ides ในขณะเดียวกันก็เสียสละความสามารถในการอัปเดตแบบเรียลไทม์ของ IDE
สังเกตคำว่า "การอนุมานประเภท" ที่นี่เป็นคำอธิบายมากกว่ากำหนดความหมายซึ่งหมายถึงประเภทที่อนุมานได้อธิบายถึงวิธีการใช้รหัสจริง แต่ไม่ได้กำหนดวิธีการใช้งาน ดังนั้นวิธีการทำงานประเภทการทำงานที่นี่จึงแตกต่างจากระบบประเภท (เช่นระบบ Hindley-Milner)
Pysonar2 เป็นเครื่องมือดัชนีพื้นฐานสำหรับบริการนำทางรหัสขนาดใหญ่หลายแห่งเช่นการค้นหารหัสภายในของ Google, SourceGraph.com และ Insight.io (ตอนนี้เป็นส่วนหนึ่งของความยืดหยุ่น)
mvn package -DskipTests
เพื่อให้รู้สึกถึงสิ่งที่ Pysonar2 ผลิตคุณสามารถสร้างเบราว์เซอร์รหัสง่าย ๆ ของไลบรารีมาตรฐาน Python 2.7 ด้วยบรรทัดคำสั่งต่อไปนี้:
java -jar target/pysonar-<version>.jar /usr/lib/python2.7 ./html
อาจใช้เวลาสองสามนาทีขึ้นอยู่กับเครื่องของคุณ คุณควรค้นหาไฟล์ HTML แบบโต้ตอบภายในไดเรกทอรี HTML หลังจากกระบวนการนี้ คุณสามารถย้ายเมาส์บนตัวแปรและคลิกที่พวกเขาเพื่อข้ามไปยังคำจำกัดความ ฯลฯ
โปรดทราบว่านี่เป็นเพียงโปรแกรมตัวอย่างง่ายๆตามห้องสมุด Pysonar2 ไม่ได้หมายถึงเครื่องมือผู้ใช้ปลายทาง ส่วนใหญ่ได้รับการออกแบบให้เป็นไลบรารีสำหรับ Python Ides เครื่องมือนักพัฒนาและเครื่องมือค้นหารหัสดังนั้นอินเทอร์เฟซของมันอาจไม่น่าดึงดูดเท่ากับเครื่องมือผู้ใช้ปลายทาง
หากคุณมีปัญหากับมันโปรดติดต่อฉัน
Pysonar2 ใช้แพ็คเกจ ast ในตัวของ Cpython เพื่อแยกวิเคราะห์รหัส Python ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณติดตั้ง python หรือ python3 ที่ติดตั้งและชี้ไปที่ตัวแปรสภาพแวดล้อม PATH หากคุณมีพวกเขาในชื่อที่แตกต่างกันโปรดสร้างลิงค์สัญลักษณ์
ตัวแปรสภาพแวดล้อม PYTHONPATH ใช้สำหรับค้นหาไลบรารีมาตรฐาน Python เป็นสิ่งสำคัญที่จะต้องชี้ไปที่ไลบรารี Python ที่ถูกต้องเช่น
export PYTHONPATH=/usr/lib/python2.7
หากไม่ได้ตั้งค่าอย่างถูกต้องการอ้างอิงถึงรหัสห้องสมุดจะไม่พบ
คุณยินดีที่จะให้การสนับสนุนรหัส
เนื่องจากทฤษฎีที่ซับซ้อนและไม่ได้เผยแพร่ที่อยู่เบื้องหลัง Pysonar2 สิ่งต่าง ๆ อาจผิดพลาดได้ง่ายแม้กระทั่งการเปลี่ยนแปลงที่ดูไร้เดียงสา หากคุณหวังว่าจะมีส่วนร่วมใน Pysonar2 โปรดพูดคุยกับฉันก่อนก่อนที่จะทำการเปลี่ยนแปลงที่สำคัญมิฉะนั้นฉันอาจไม่สามารถตรวจสอบการเปลี่ยนแปลงของคุณได้
สำหรับการตรวจสอบขั้นพื้นฐานคุณสามารถเรียกใช้การทดสอบหน่วย Pysonar2 มีกรอบการทดสอบพื้นฐาน คุณสามารถเรียกใช้การทดสอบโดยใช้คำสั่งนี้:
mvn test
หากคุณแก้ไขรหัสหรือการทดสอบคุณต้องสร้างผลลัพธ์ที่คาดหวังใหม่ เรียกใช้บรรทัดคำสั่งเหล่านี้:
mvn package -DskipTests
java -classpath target/pysonar-<version>.jar org.yinwang.pysonar.TestInference -generate tests
ในการเขียนการทดสอบใหม่คุณเพียงแค่ต้องเขียนรหัส Python ที่เกี่ยวข้องซึ่งแสดงให้เห็นถึงการเปลี่ยนแปลงของคุณใส่ลงในไดเรกทอรีที่มีชื่อว่า tests/testname.test (ชื่อไดเรกทอรีทดสอบต้องจบลงด้วย ".test") โปรดดูที่ไดเรกทอรี tests สำหรับตัวอย่าง
โปรดอย่าคาดหวังว่าการทดสอบจะจับข้อบกพร่องทั้งหมด ระวังให้มาก :)
ใบอนุญาต Apache 2.0 ดูไฟล์ใบอนุญาต