astypes
0.2.6
Library Python เพื่อตรวจจับประเภทแบบคงที่สำหรับโหนด AST
กรณีการใช้งานที่ดีคือ linter ที่ต้องใช้กฎบางอย่างสำหรับบางประเภทเท่านั้น ตัวอย่างเช่นเพื่อตรวจสอบอาร์กิวเมนต์ของ something.format(a=b) เฉพาะในกรณีที่มี something ที่มีประเภท str
python3 -m pip install astypesAstypes ใช้ Astroid เพื่ออนุมานคำจำกัดความของโหนด ดังนั้นหากรหัสของคุณทำงานกับโหนด AST คุณจะต้องแปลงเป็น Astroid ก่อน:
import astroid
import astypes
module = astroid . parse ( source_code )
node = astypes . find_node ( module , ast_node )และเมื่อคุณมีโหนด astroid คุณจะได้รับประเภท:
node_type = astype . get_node ( node )
print ( node_type . annotation )ตัวอย่าง:
import astroid
import astypes
node = astroid . extract_node ( '1 + 2.3' )
t = astypes . get_type ( node )
print ( t . annotation ) # 'float'สำหรับตัวอย่างการใช้งานในโลกแห่งความเป็นจริงลองดูประเภท infer-types มันเป็นเครื่องมือ CLI ที่เพิ่มคำอธิบายประกอบประเภทลงในรหัส Python โดยอัตโนมัติโดยใช้ ASTYPE
คุณสามารถค้นหาตรรกะส่วนใหญ่ใน ASTYPES/_HANDLERS.PY ในระยะสั้น:
13 เป็น int เสมอlist(x) ส่งคืน list ประเภท มันอาจจะไม่เป็นความจริงถ้าคุณ list เงากับอย่างอื่น