# Maguyva'da Python Desteği: Yapay Zeka Kod Araması ve Yeniden Yapılandırma

Canonical source: https://maguyva.ai/tr/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 ayrıştırma ve sembol çıkarımıyla Python'ı destekler; yapay zeka ajanlarının gerçek Python repolarında dekoratörleri, self/cls metotlarını, import'ları ve modüller arası bağımlılıkları takip etmesine yardımcı olur.

## Destek anlık görüntüsü

- Katman: AST ve sembol desteği
- Programlama
- Uzantılar: .py, .pyi, .pyw
- Sözdizimi farkında arama ve yapısal bağlam için gerçek AST ayrıştırması.
- Adlandırılmış semboller anlamsal aramayı ve çapraz referansı besler. İlişki çıkarımı etkinleştirildiğinde graf gezinmesi kullanılabilir.
- Bu dil, graf farkındalıklı aramaya semboller ve ilişkiler sağlar; desteklenen kenar türleri dilin yerel yapılarına göre değişir.
- Hem AST ayrıştırma hem de sembol çıkarma kullanılabilir.

## En uygun kullanım

- Uygulama kodunun ve operasyonel betiklerin bir arada yaşadığı FastAPI, Django, veri platformu veya iç araç repoları.
- Zaten dekoratörlere, arka plan işlerine ve çok sayıda üstü kapalı bağlantıya sahip uzun ömürlü Python servislerini yeniden yapılandıran ekipler.
- Bir handler'ı, servisi, modeli veya yardımcıyı değiştirmeden önce grep'ten daha fazlasına ihtiyaç duyan ajan iş akışları.

## Ajan iş akışları

- Düzenlemeden önce bir uç noktayı, görevi veya CLI komutunu yardımcılar ve paylaşılan modüller boyunca izleyin.
- Bir servisin, sınıfın veya yardımcı fonksiyonun repo genelinde nerede örneklerinin oluşturulduğunu ve yeniden kullanıldığını bulun.
- Ajanın en yakın metin eşleşmesi yerine doğru soyutlamayı düzenlemesi için komşu uygulamaları karşılaştırın.

## Yüzeysel yapay zeka araçları Python repolarında nerede yetersiz kalıyor

Python, pek çok yapay zeka kodlama aracının başta iyi göründüğü ama sonra üretimde tahmin yürütmeye başladığı yerdir. Zor kısımlar tanıdıktır: dekore edilmiş giriş noktaları, servis sınıfları, tip taslakları, her yerdeki küçük yardımcı modüller ve yalnızca `self` veya `cls`'i ait oldukları sınıfla yeniden bağladığınızda anlam kazanan metotlar.

Python için gerçek soru "`.py` dosyalarını okuyabilir mi?" değildir. Soru, ajanın bir uç noktadan bir servise, bir arka plan görevinden bir yardımcıya veya bir sınıf adından davranışı gerçekten uygulayan metotlara geçerken temellendirilmiş kalıp kalamayacağıdır.

## Maguyva Python'da gerçekte neyi çıkarıyor

Maguyva, Python'ı tam bir yapısal dil olarak ele alır. Yapılandırma `.py`, `.pyw` ve `.pyi`'i kapsar; `decorated_definition`'yı bir fonksiyon sembolüne geri eşler; ve `self` / `cls` metot çağrılarını çevreleyen sınıfa geri niteler. Bu önemlidir çünkü bunlar, Python repolarının bir insana açık, bir LLM'e ise belirsiz gelmeye başladığı tam yerlerdir.

Ayrıca ilişki çıkarımından standart kütüphane gürültüsünün büyük bir kısmını filtreler. Bu, `pathlib`, `typing` veya `logging` gibi modüllerden gelen yaygın çalışma zamanı çağrılarının, gerçekten önemsediğiniz repoya özgü ilişkileri boğma olasılığının daha düşük olduğu anlamına gelir.

## Python repoları için yararlı MCP iş akışları

En basit yararlı iş akışı şudur:

- "fatura senkronizasyonu etrafındaki yeniden deneme mantığı" veya "faturalama uç noktalarındaki izin kontrolleri" gibi bir davranış sorusu için `intelligent_search` ile başlayın.
- Önemsediğiniz sınıf veya fonksiyon adını bildiğinizde `find_symbol`'e geçin.
- Paylaşılan bir servisi, yardımcıyı veya temel sınıfı yeniden yapılandırmadan önce gelen bağımlılıkları izleyerek `dependency_search`'ü kullanın.

Bu desen, bir ajandan önceden bağlam edinmeden "faturalama akışını güncelle" istemekten daha iyidir. Ajanın önce bir harita çıkarmasına, sonra kodu değiştirmesine olanak tanır.

## Bu sayfa ne zaman yararlı

Bu sayfa, zaten belirli bir yaşa ve karmaşıklığa sahip Python repoları içindir: servis kodu, işler, betikler, üretilmiş türler ve çevredeki yapılandırma. Ana karşılaştırmanız çok dilli web monorepo'ları arasındaysa, [TypeScript kılavuzunu](/tr/languages/typescript) da okuyun. Yalnızca tam destek matrisine ihtiyacınız varsa [uyumluluk](/tr/docs/compatibility)'u kullanın.

## Motor ayrıntıları

- Dekore edilmiş tanımlar hâlâ fonksiyon olarak ele alınır, bu yüzden dekore edilmiş view'lar ve task'lar sembol olarak aranabilir kalır.
- `self` ve `cls` metod çağrıları çevreleyen sınıfa yeniden nitelendirilir, bu da grafın sınıf ağırlıklı servis kodunda kullanışlı kalmasına yardımcı olur.
- Import, çağrı ve sembol normalize edicileri etkinken, `pathlib.*`, `typing.*` ve `logging.*` gibi yaygın stdlib gürültüsü ilişkilerden filtrelenir.

## Yararlı MCP giriş noktaları

- `intelligent_search`: "fatura senkronizasyonu etrafındaki yeniden deneme mantığı" gibi kavramsal bir sorguyla başlayın ve repo çok dilliyse `language_filter="python"` ayarlayın.
- `find_symbol`: Sınıf ya da fonksiyon adını bildiğinizde ve düzenlemeden önce tanım artı referanslara ihtiyacınız olduğunda kullanın.
- `dependency_search`: Paylaşılan bir servis ya da yardımcı fonksiyonu yeniden düzenlemeden önce, ona neyin bağımlı olduğunu görmek için gelen yönü kullanın.
