सामग्री पर जाएँ
cd /languages
डायनैमिक सिस्टमप्रोग्रामिंगपूर्ण ग्राफ़ सपोर्ट

Maguyva में Python सपोर्ट: AI कोड सर्च और रीफ़ैक्टरिंग

Maguyva, AST पार्सिंग और सिंबल एक्सट्रैक्शन के साथ Python को सपोर्ट करता है, जिससे AI एजेंट असली Python रिपॉज़िटरी में डेकोरेटर, self/cls मेथड, इम्पोर्ट, और क्रॉस-मॉड्यूल डिपेंडेंसी का अनुसरण कर पाते हैं।

Python रिपॉज़िटरी आमतौर पर उथले AI टूल को कहां तोड़ देती हैं

Python वह जगह है जहां बहुत सारे AI कोडिंग टूल शुरुआत में अच्छे दिखते हैं और फिर प्रोडक्शन में अंदाज़ा लगाना शुरू कर देते हैं। मुश्किल हिस्से जाने-पहचाने हैं: डेकोरेटेड एंट्री पॉइंट, सर्विस क्लासेज़, टाइप स्टब, हर जगह छोटे हेल्पर मॉड्यूल, और वे मेथड जो तभी समझ में आते हैं जब आप self या cls को उस क्लास से दोबारा जोड़ें जिससे वे संबंधित हैं।

Python के लिए, असली सवाल यह नहीं है कि “क्या यह .py फ़ाइलें पढ़ सकता है?” सवाल यह है कि क्या एजेंट किसी एंडपॉइंट से सर्विस तक, किसी बैकग्राउंड टास्क से हेल्पर तक, या किसी क्लास नाम से उन मेथड तक जाते हुए साक्ष्य-आधारित बना रह सकता है जो असल में व्यवहार को इम्प्लीमेंट करते हैं।

Maguyva वास्तव में Python में क्या एक्सट्रैक्ट करता है

Maguyva, Python को एक पूर्ण संरचनात्मक भाषा के रूप में मानता है। कॉन्फ़िग .py, .pyw, और .pyi को कवर करता है; decorated_definition को वापस किसी फ़ंक्शन सिंबल से मैप करता है; और self / cls मेथड कॉल्स को वापस उस संलग्न क्लास से जोड़ता है। यह मायने रखता है क्योंकि यही वे ठीक जगहें हैं जहां Python रिपॉज़िटरी किसी इंसान को स्पष्ट और किसी LLM को धुंधली लगने लगती हैं।

यह रिलेशनशिप एक्सट्रैक्शन से बहुत सारा स्टैंडर्ड-लाइब्रेरी नॉइज़ भी फ़िल्टर करता है। इसका मतलब है कि pathlib, typing, या logging जैसे मॉड्यूल से आने वाले आम रनटाइम कॉल्स के उन रिपॉज़िटरी-विशिष्ट रिलेशनशिप को दबाने की संभावना कम होती है जिनकी आपको असल में परवाह है।

Python रिपॉज़िटरी के लिए उपयोगी MCP वर्कफ़्लो

सबसे सरल उपयोगी वर्कफ़्लो यह है:

  • “invoice sync के इर्द-गिर्द पुनः-प्रयास तर्क” या “बिलिंग एंडपॉइंट में अनुमति जाँच” जैसे व्यवहार संबंधी सवाल के लिए intelligent_search से शुरू करें।
  • जब आप उस क्लास या फ़ंक्शन का नाम जान जाएं जिसकी आपको परवाह है, तो find_symbol पर स्विच करें।
  • किसी साझा सर्विस, हेल्पर, या बेस क्लास को रीफ़ैक्टर करने से पहले इनकमिंग ट्रैवर्सल के साथ dependency_search का उपयोग करें।

यह पैटर्न किसी एजेंट से ठंडी शुरुआत में “बिलिंग flow अपडेट करो” कहने से बेहतर है। इससे एजेंट पहले एक नक्शा बना सकता है और फिर कोड बदल सकता है।

यह पेज कब उपयोगी है

यह पेज उन Python रिपॉज़िटरी के लिए है जिनमें पहले से कुछ उम्र और जटिलता है: सर्विस कोड, जॉब, स्क्रिप्ट, जनरेट किए गए टाइप, और आस-पास का कॉन्फ़िग। अगर आपकी मुख्य तुलना पॉलीग्लॉट वेब मोनोरेपो में है, तो TypeScript मार्गदर्शिका भी पढ़ें। अगर आपको बस पूरा सपोर्ट मैट्रिक्स चाहिए, तो compatibility का उपयोग करें।

सबसे उपयुक्त

  • >FastAPI, Django, डेटा-प्लेटफ़ॉर्म, या आंतरिक टूलिंग रिपॉज़िटरी जहां एप्लिकेशन कोड और ऑपरेशनल स्क्रिप्ट साथ रहती हैं।
  • >दीर्घजीवी Python सर्विसेज़ को रीफ़ैक्टर करने वाली टीमें, जिनमें पहले से डेकोरेटर, बैकग्राउंड जॉब, और बहुत सारी अंतर्निहित वायरिंग मौजूद है।
  • >एजेंट वर्कफ़्लो जिन्हें किसी हैंडलर, सर्विस, मॉडल, या हेल्पर को बदलने से पहले grep से कहीं ज़्यादा चाहिए।

एजेंट वर्कफ़्लो

  • >एडिट करने से पहले किसी एंडपॉइंट, टास्क, या CLI कमांड को हेल्पर और साझा मॉड्यूल के ज़रिए ट्रेस करें।
  • >यह पता करें कि पूरे रिपॉज़िटरी में कोई सर्विस, क्लास, या यूटिलिटी फ़ंक्शन कहां इंस्टैंशिएट और पुनः उपयोग होता है।
  • >यह सुनिश्चित करने के लिए आस-पास के इम्प्लीमेंटेशन की तुलना करें कि एजेंट निकटतम स्ट्रिंग मैच के बजाय सही एब्स्ट्रैक्शन को एडिट करे।

इंजन विवरण

  • >डेकोरेटेड डेफिनिशन को अब भी फ़ंक्शन माना जाता है, इसलिए डेकोरेटेड व्यू और टास्क सिंबल के रूप में सर्च करने लायक़ बने रहते हैं।
  • >`self` और `cls` मेथड कॉल को वापस उनकी एनक्लोज़िंग क्लास से जोड़ा जाता है, जिससे क्लास-हैवी सर्विस कोड में ग्राफ़ उपयोगी बना रहता है।
  • >इम्पोर्ट, कॉल, और सिंबल नॉर्मलाइज़र सक्षम हैं, जबकि `pathlib.*`, `typing.*`, और `logging.*` जैसी आम stdlib नॉइज़ को संबंधों से फ़िल्टर कर दिया जाता है।

उपयोगी MCP एंट्री पॉइंट

  • intelligent_search

    'इनवॉइस सिंक के आसपास पुनः-प्रयास तर्क' जैसी कॉन्सेप्चुअल क्वेरी से शुरू करें और अगर रिपॉज़िटरी पॉलीग्लॉट है तो `language_filter="python"` सेट करें।

  • find_symbol

    जब आपको क्लास या फ़ंक्शन का नाम पता हो और एडिट करने से पहले डेफिनिशन के साथ रेफ़रेंस चाहिए हों, तब इसका इस्तेमाल करें।

  • dependency_search

    किसी साझा सर्विस या हेल्पर को रीफ़ैक्टर करने से पहले यह देखने के लिए कि उस पर क्या निर्भर करता है, इनकमिंग दिशा का इस्तेमाल करें।

संबंधित गाइड

सटे हुए रिपॉज़िटरी क्षेत्र

सभी गाइड ब्राउज़ करें