Fitur pemformatan kode diperkenalkan secara eksperimental ke uv
(pydevtools.com)- Pada versi baru uv, fitur pemformatan kode disediakan secara eksperimental
- Perintah
uv formatsecara internal menggunakan formatter milik Ruff untuk menata gaya kode Python secara konsisten - Kini pekerjaan merapikan kode dapat dilakukan dengan mudah hanya dengan uv tanpa alat terpisah
- Pengguna dapat menyesuaikan perilaku pemformatan secara rinci melalui argumen tambahan
- Karena masih merupakan fitur eksperimental, masih ada kemungkinan perubahan pada cara perintah, penanganan error, dan lainnya
Ikhtisar
Rilis terbaru uv (0.8.13) memperkenalkan fitur uv format, sebuah perintah eksperimental yang telah lama dinantikan oleh pengembang Python. Dengan fitur ini, penataan gaya kode dapat dilakukan hanya dengan alat uv tanpa perlu mengelola alat pemformatan tambahan di dalam proyek
Apa itu uv format?
- Perintah
uv formatmenyediakan pemformatan kode Python melalui antarmuka uv - Secara internal, perintah ini memanggil formatter Ruff untuk merapikan kode secara otomatis dan konsisten
Catatan untuk pengembang
Charlie Marsh (pengembang uv) menjelaskan hal berikut di Hacker News
Ruff dan uv tidak digabungkan, dan tetap merupakan alat yang terpisah.
Tujuannya semata-mata untuk meningkatkan pengalaman agar pengguna dapat memanfaatkan formatter tanpa harus menganggapnya sebagai alat terpisah.
Hubungannya mirip dengan cargo fmt dan rustfmt di ekosistem Rust.
Cara penggunaan
- Harus menggunakan uv versi 0.8.13 atau lebih baru
- Menjalankan perintah
uv formatdi root proyek akan memberikan efek yang sama dengan menjalankan ruff format - Cara eksekusinya mengikuti antarmuka perintah uv
Meneruskan argumen tambahan
- Dengan bentuk
uv format -- [argumen tambahan], Anda dapat menetapkan opsi detail yang diteruskan ke Ruff - Anda dapat memanfaatkan kemudahan uv sekaligus pengaturan rinci dari Ruff
Panduan tahap eksperimental
- Saat ini fitur tersebut masih berada pada tahap eksperimental, dan ke depannya cara perintah atau metode integrasi dengan struktur proyek dapat berubah
- Penanganan error, format output, dan hal lainnya juga akan terus ditingkatkan
- Fitur ini akan berkembang dengan mencerminkan umpan balik pengguna
Penutup
- Jika Anda memerlukan penataan gaya kode yang mudah dan konsisten untuk proyek Python,
uv formatlayak untuk dicoba secara aktif - Karena ini adalah penerapan eksperimental, mencoba langsung lalu memberikan umpan balik dapat membantu perkembangan uv ke depannya
1 komentar
Komentar Hacker News
ruffdigabung denganty;uvsebaiknya fokus pada manajemen paket atau proyek, dan menurut saya tidak perlu ikut campur sampai ke pengaturan gaya kode. Satu-satunya kasus di manauvboleh memodifikasi file kode mestinya hanya saat pembaruan dependensi (PEP 723)ruffdanuvtidak digabung dan akan tetap menjadi alat terpisah. Tujuannya adalah memberi pengalaman yang lebih sederhana bagi pengguna yang tidak ingin repot memikirkan formatter terpisah. Konfigurasinya mirip seperticargo fmtdi Rust yang secara internal menjalankanrustfmtcargo fmttyjuga digabung keuv; semuanya berasal dari astral.sh jadi mungkin memang itu visinya, tetapi ty sendiri masih belum cukup matanguv lintyang secara internal menjalankanty. Idealnya, akan bagus jika menyiapkan proyek Python—format, lint, test, deploy—bisa dilakukan lewat satu perintah standar atau serangkaian command yang konsisten. Mungkin memang itulah visi di balik iniuv run --no-projectdanuv run --active, misalnya). Daripada terus menambah fitur baru yang kurang perlu, saya berharap mereka lebih fokus memperbaiki tool yang ada dan dokumentasinyauv syncsangat berguna karena secara teori hanya membangun set paket yang bisa direproduksi ulang, tetapi paket rumit seperti torch-tensorrt atau flash-attn tetap tak bisa lepas dari perbedaan lingkungan. Komunitas Python sering cenderung mempersonalisasi masalah dengan sikap seperti "berjalan di komputer saya", tetapi biaya untuk membuat perangkat lunak bisa didistribusikan, aman, repeatable, dan andal tidak pernah benar-benar hilang; pada akhirnya seseorang akan membayar biaya itu nanti dalam situasi yang lebih terbatas. Memenuhi beragam pengguna dan kebutuhan operasional seperti ini memang sangat sulituvx ruff formatyang lebih panjang satu kata bukanlah masalah besar. Justru bisa lebih membingungkan apakah formatter yang dijalankan menjadi kurang jelas, apakah ruff dipasang otomatis, atau apakah tool-nya diunduh dan di-cache seperti sebelumnyauv formatjadi tidak bergunauv <fitur>sangat membantu tim. Akan bagus juga kalau bisa terhubung dengan formatter lain, dan kalau sampai mendukung formatting model SQL/dbt, rasanya tidak ada lagi yang perlu diminta. Untuk sekarang saya ingin mencobanya dulu dan melihat potensinyajust formatbisa memformat Python/SQL/Bash/TypeScript sekaligusuv formatyang baru pada dasarnya hanyalah singkatan untukuv run --with ruff ruffuv fmt, dan mungkinuv vetjuga bagus dimasukkan ke roadmapuv formatpada dasarnya hanya frontend untukruff format, bukan menambahkan formatter baruruff format, yang sudah dipakai banyak orang, bisa digunakan dengan lebih mudah