# Dukungan Python di Maguyva: Pencarian Kode dan Refactoring dengan AI

Canonical source: https://maguyva.ai/id/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 mendukung Python dengan parsing AST dan ekstraksi simbol, membantu agen AI mengikuti decorator, method self/cls, import, dan dependensi lintas-module dalam repositori Python sungguhan.

## Snapshot dukungan

- Tier: Dukungan AST dan simbol
- Pemrograman
- Ekstensi: .py, .pyi, .pyw
- Parsing AST sungguhan untuk pencarian sadar-syntax dan konteks struktural.
- Simbol bernama menggerakkan pencarian semantik dan cross-reference. Navigasi graf tersedia saat ekstraksi relasi diaktifkan.
- Bahasa ini menyumbangkan simbol dan relasi ke pencarian berbasis graf; jenis edge yang didukung bervariasi sesuai konstruk bawaan bahasa tersebut.
- Parsing AST dan ekstraksi simbol sama-sama tersedia.

## Paling cocok untuk

- Repo FastAPI, Django, data-platform, atau tooling internal tempat kode aplikasi dan script operasional hidup berdampingan.
- Tim yang me-refactor service Python berumur panjang yang sudah punya decorator, background job, dan banyak wiring yang tersirat.
- Alur kerja agen yang butuh lebih dari sekadar grep sebelum mengubah handler, service, model, atau helper.

## Workflow agen

- Menelusuri endpoint, task, atau perintah CLI melalui helper dan module bersama sebelum mengeditnya.
- Menemukan di mana service, class, atau fungsi utilitas diinstansiasi dan digunakan ulang di seluruh repo.
- Membandingkan implementasi yang bertetangga sehingga agen mengedit abstraksi yang tepat, bukan sekadar kecocokan string terdekat.

## Di mana repo Python biasanya membuat tool AI dangkal keteteran

Python adalah tempat banyak tool coding AI terlihat bagus pada awalnya, lalu mulai menebak-nebak di produksi. Bagian sulitnya sudah tidak asing: entry point ber-decorator, service class, type stub, module helper kecil di mana-mana, dan method yang baru masuk akal setelah Anda menyambungkan kembali `self` atau `cls` ke class tempatnya berada.

Untuk Python, pertanyaan sesungguhnya bukan "bisakah ia membaca file `.py`?" Pertanyaannya adalah apakah agen bisa tetap berpijak pada kode yang sebenarnya saat berpindah dari endpoint ke service, dari background task ke helper, atau dari nama class ke method yang benar-benar mengimplementasikan perilaku tersebut.

## Apa yang sebenarnya diekstraksi Maguyva dari Python

Maguyva menyediakan dukungan analisis struktur yang lengkap untuk Python. Konfigurasinya mencakup `.py`, `.pyw`, dan `.pyi`; memetakan `decorated_definition` kembali ke simbol fungsi; dan melengkapi panggilan method `self` / `cls` dengan nama class yang menaunginya. Ini penting karena justru di titik-titik itulah repositori Python mulai terasa jelas bagi manusia tetapi kabur bagi LLM.

Maguyva juga menyaring banyak noise pustaka standar dari ekstraksi relasi. Artinya, panggilan runtime umum dari module seperti `pathlib`, `typing`, atau `logging` lebih kecil kemungkinannya menenggelamkan relasi spesifik-repositori yang sebenarnya Anda pedulikan.

## Alur kerja MCP yang berguna untuk repo Python

Alur kerja paling sederhana dan berguna adalah:

- Mulai dengan `intelligent_search` untuk pertanyaan seputar perilaku seperti "logika retry di sekitar sinkronisasi invoice" atau "pemeriksaan izin di endpoint billing".
- Beralih ke `find_symbol` setelah Anda tahu nama class atau fungsi yang Anda pedulikan.
- Gunakan `dependency_search` dengan penelusuran incoming sebelum me-refactor service, helper, atau base class bersama.

Pola ini lebih baik daripada meminta agen "perbarui alur billing" dari nol sama sekali. Ini memungkinkan agen membangun peta terlebih dahulu, baru mengubah kode.

## Kapan halaman ini berguna

Halaman ini untuk repo Python yang sudah punya usia dan kompleksitas tertentu: kode service, job, script, tipe hasil generate, dan config di sekitarnya. Jika perbandingan utama Anda lintas monorepo web polyglot, baca juga [panduan TypeScript](/id/languages/typescript). Jika Anda hanya butuh matriks dukungan lengkap, gunakan [kompatibilitas](/id/docs/compatibility).

## Detail engine

- Definisi yang di-decorate tetap diperlakukan sebagai fungsi, jadi view dan task yang di-decorate tetap bisa dicari sebagai simbol.
- Pemanggilan method `self` dan `cls` dilengkapi dengan nama class tempat method tersebut didefinisikan, yang membantu grafnya tetap berguna di kode service yang padat class.
- Normalizer import, call, dan simbol diaktifkan, sementara noise stdlib umum seperti `pathlib.*`, `typing.*`, dan `logging.*` disaring dari relasi-relasinya.

## Titik masuk MCP yang berguna

- `intelligent_search`: Mulai dengan query konseptual seperti “logika retry di sekitar sinkronisasi invoice” dan set `language_filter="python"` kalau repo-nya poliglot.
- `find_symbol`: Gunakan kalau Anda sudah tahu nama class atau fungsinya dan butuh definisi plus referensinya sebelum mengedit.
- `dependency_search`: Gunakan arah incoming sebelum me-refactor service atau helper bersama untuk melihat apa yang bergantung padanya.
