Type Server Protocol (TSP) adalah protokol JSON-RPC yang dirancang untuk meminta data analisis Python dari sebuah server tipe. Server tipe bertugas memelihara status analisis tipe untuk sebuah ruang kerja serta merespons permintaan terkait versi protokol, snapshot, jalur pencarian Python, resolusi impor, dan kueri tipe.
Model Koneksi dan Urutan Memulai
Klien bertugas menjalankan server tipe dan berkomunikasi melaluinya menggunakan koneksi JSON-RPC utama dengan transpor yang didukung seperti stdio atau Node IPC. Saat menggunakan stdio, stdout harus dicadangkan secara khusus untuk pesan protokol JSON-RPC. Sesi tipikal dimulai saat klien terhubung ke server, menginisialisasi status ruang kerja bersama, memanggil versi protokol yang didukung, serta memperoleh pengenal snapshot pertama.
TSP juga menyediakan fitur opsional berupa koneksi baca-saja ekstra untuk meningkatkan performa. Mode multi-koneksi ini dinegosiasikan melalui permintaan dan tanggapan inisialisasi LSP normal. Klien membuka saluran ekstra dengan mengirimkan permintaan pengendali koneksi pada koneksi utama. Seluruh lalu lintas yang mengubah status tetap menjadi tanggung jawab mutlak dari koneksi utama.
Manajemen Snapshot dan Kueri Tipe
Sebuah snapshot direpresentasikan sebagai angka bulat non-negatif yang menandakan tampilan titik waktu dari status analisis server tipe. Server tipe wajib memajukan nomor snapshot setiap kali hasil analisis tipe sebelumnya menjadi tidak valid, seperti adanya perubahan berkas yang dibuka, penutupan berkas, perubahan konfigurasi, atau modifikasi dependensi. Permintaan yang menggunakan snapshot kedaluwarsa akan gagal dengan kesalahan pembatalan agar klien dapat mencoba ulang.
Konvensi posisi dan rentang pada TSP mengikuti standar LSP di mana baris dan offset karakter dihitung berbasis nol menggunakan unit kode UTF-16. Permintaan kueri tipe terdiri dari tiga jenis utama, yakni tipe terkomputasi yang disimpulkan dari alur kode, tipe yang dideklarasikan secara tertulis di sumber, serta tipe yang diharapkan oleh konteks sekitar.
Pembaruan konten terakhir dari spesifikasi ini diselaraskan dengan Pylance 2026.4.1.
Sumber: Hacker News: Front Page







