Pyre เป็นตัวตรวจสอบประเภทประสิทธิภาพสำหรับ Python ที่สอดคล้องกับ PEP 484 Pyre สามารถวิเคราะห์โค้ดเบสด้วยโค้ดหลายล้านบรรทัดแบบค่อยเป็นค่อยไป โดยให้ข้อเสนอแนะทันทีแก่นักพัฒนาในขณะที่พวกเขาเขียนโค้ด คุณสามารถลองใช้ตัวอย่างได้ที่ Pyre Playground
Pyre มาพร้อมกับ Pysa ซึ่งเป็นเครื่องมือวิเคราะห์แบบคงที่ที่เน้นความปลอดภัย ซึ่งเราสร้างไว้เหนือ Pyre ซึ่งให้เหตุผลเกี่ยวกับกระแสข้อมูลในแอปพลิเคชัน Python โปรดดูเอกสารประกอบของเราเพื่อเริ่มต้นการวิเคราะห์ความปลอดภัยของเรา
Pysa ยังมีให้บริการบน GitHub Marketplace ในรูปแบบ Github Action
ในการเริ่มต้น คุณต้องมี Python 3.8 ขึ้นไปและ Watchman ที่ทำงานบนระบบของคุณ บน MacOS คุณสามารถรับทุกสิ่งด้วยโฮมบรูว์:
$ brew install python3 watchman
บน Ubuntu , Mint หรือ Debian ; ใช้ apt-get
และ homebrew:
$ sudo apt-get install python3 python3-pip python3-venv
$ brew install watchman
เราทดสอบ Pyre บน Ubuntu 18.04.5 LTS , CentOS 7 รวมถึง OSX 10.11 และใหม่กว่า
เราเริ่มต้นด้วยการสร้างไดเร็กทอรีโปรเจ็กต์ว่างและตั้งค่าสภาพแวดล้อมเสมือน:
$ mkdir my_project && cd my_project
$ python3 -m venv ~ /.venvs/venv
$ source ~ /.venvs/venv/bin/activate
(venv) $ pip install pyre-check
ต่อไป เราจะสอน Pyre เกี่ยวกับโปรเจ็กต์ใหม่ของเรา:
(venv) $ pyre init
คำสั่งนี้จะตั้งค่าการกำหนดค่าสำหรับ Pyre ( .pyre_configuration
) รวมถึง watchman ( .watchmanconfig
) ในไดเร็กทอรีของโปรเจ็กต์ของคุณ ยอมรับค่าเริ่มต้นในตอนนี้ คุณสามารถเปลี่ยนได้ในภายหลังหากจำเป็น
ตอนนี้เราพร้อมที่จะรัน Pyre แล้ว:
(venv) $ echo " i: int = 'string' " > test.py
(venv) $ pyre
ƛ Found 1 type error !
test.py:1:0 Incompatible variable type [9]: i is declared to have type ` int ` but is used as type ` str ` .
การเรียกใช้ครั้งแรกนี้จะเริ่ม daemon เพื่อฟังการเปลี่ยนแปลงระบบไฟล์ - ให้พิมพ์การตรวจสอบโปรเจ็กต์ของคุณทีละน้อยเมื่อคุณทำการแก้ไขโค้ด คุณจะสังเกตเห็นว่าการเรียกใช้ pyre
ครั้งต่อไปจะเร็วกว่าครั้งแรก
สำหรับเอกสารประกอบโดยละเอียดเพิ่มเติม โปรดดู https://pyre-check.org
ดู CONTRIBUTING.md สำหรับวิธีการช่วยเหลือ
Pyre ได้รับอนุญาตภายใต้ใบอนุญาต MIT