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

Canonical source: https://maguyva.ai/hi/languages/python

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

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

## सपोर्ट स्नैपशॉट

- टियर: AST और सिंबल सपोर्ट
- प्रोग्रामिंग
- एक्सटेंशन: .py, .pyi, .pyw
- सिंटैक्स-अवेयर सर्च और स्ट्रक्चरल कॉन्टेक्स्ट के लिए असली AST पार्सिंग।
- नामित सिंबल सिमेंटिक लुकअप और क्रॉस-रेफ़रेंस को फ़ीड करते हैं। रिलेशनशिप एक्सट्रैक्शन सक्षम होने पर ग्राफ़ नेविगेशन उपलब्ध होता है।
- यह भाषा ग्राफ़-अवेयर सर्च में सिंबल्स और रिलेशनशिप्स जोड़ती है; सपोर्टेड एज प्रकार इसके नेटिव कंस्ट्रक्ट्स के अनुसार बदलते हैं।
- AST पार्सिंग और सिंबल एक्सट्रैक्शन, दोनों उपलब्ध हैं।

## सबसे उपयुक्त

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

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

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

## 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 वर्कफ़्लो

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

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

यह पैटर्न किसी एजेंट से बिना कोई कॉन्टेक्स्ट दिए "बिलिंग फ़्लो अपडेट करो" कहने से बेहतर है। इससे एजेंट पहले एक नक्शा बना सकता है और फिर कोड बदल सकता है।

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

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

## इंजन विवरण

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

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

- `intelligent_search`: 'इनवॉइस सिंक के आसपास पुनः-प्रयास तर्क' जैसी कॉन्सेप्चुअल क्वेरी से शुरू करें और अगर रिपॉज़िटरी पॉलीग्लॉट है तो `language_filter="python"` सेट करें।
- `find_symbol`: जब आपको क्लास या फ़ंक्शन का नाम पता हो और एडिट करने से पहले डेफिनिशन के साथ रेफ़रेंस चाहिए हों, तब इसका इस्तेमाल करें।
- `dependency_search`: किसी साझा सर्विस या हेल्पर को रीफ़ैक्टर करने से पहले यह देखने के लिए कि उस पर क्या निर्भर करता है, इनकमिंग दिशा का इस्तेमाल करें।
