Merevolusi Workflow Pengembangan Python dengan UV
(youtube.com)Ringkasan video "uv: Making Python Local Workflows FAST and BORING in 2025"
Video ini adalah bagian kedua tentang cara menggunakan alat packaging Python uv untuk membuat workflow pengembangan lokal lebih cepat dan efisien. Poin-poin utamanya adalah sebagai berikut.
1. Memanfaatkan perintah inti uv
uv run: Menjalankan perintah sepertipytestataufastapidi dalam virtual environment dengan menggunakan dependensi yang didefinisikan dipyproject.tomldan dikunci dalam fileuv.lock.uv add: Menambahkan dependensi baru kepyproject.tomldan memperbarui fileuv.locksecara otomatis.uv run --with: Memungkinkan penyuntikan sementara modul helper pengembangan sepertipdbpptanpa menambahkannya ke dependensi inti proyek.uv lock --upgrade: Memperbarui file lock dependensi dengan sangat cepat.uv runsecara otomatis mendeteksi perubahan pada file lock saat dijalankan dan menyinkronkan environment.
2. Menstandarkan workflow dengan just
uvtidak memiliki fitur bawaan untuk mendefinisikan perintah kustom sepertihatchataupdm.- Video ini menyoroti kekurangan
Makefile(ketergantungan pada platform, sintaks nonstandar, dan sebagainya), lalu sangat merekomendasikan runner perintah yang ditulis dengan Rust, yaitujust, sebagai alternatif. - Dengan
justfile, tugas-tugas berulang berikut dapat distandarkan sebagai recipe.test: Menjalankan pengujian (dapat menerima argumen)cov: Memeriksa cakupan pengujianserve: Menjalankan server pengembangancheckall: Menjalankan semua pemeriksaan sekaligus, seperti lint dan type check
3. Integrasi just dan uv
.envfile:justdapat membaca file.envuntuk menetapkan environment variable. Dengan ini, workflow yang fleksibel bisa dibangun, misalnya dengan menambahkan argumen--withkeuv runsecara dinamis atau mengubah port server.uvx(uv tool run): Perintah untuk menjalankan paket PyPI secara independen dari proyek, mirippipx. Di dalam recipejust, alat sepertihttpiedapat digunakan tanpa menambahkannya ke dependensi proyek.
4. Mengelola virtual environment secara langsung (workflow opsional)
- Ini adalah pendekatan untuk developer yang ingin mengaktifkan dan menggunakan virtual environment (
.venv) dengan cara tradisional tanpa melaluiuv run. uv sync: Menyinkronkan status fileuv.lockdan folder.venv. (menginstal dependensi dan menghapus paket yang tidak diperlukan)direnv: Alat shell yang secara otomatis menjalankan skrip.envrcsaat masuk ke direktori tertentu. Dengan ini,uv syncdapat dijalankan otomatis saat memasuki direktori dan virtual environment dapat langsung diaktifkan.
Kesimpulan
Dengan menggabungkan kecepatan uv dan alat seperti just serta direnv, otomatisasi dan standardisasi pengelolaan dependensi serta eksekusi perintah dapat ditingkatkan, sehingga developer bisa lebih fokus pada logika inti dan membangun lingkungan pengembangan yang "cepat dan membosankan (boring)", yakni sangat stabil dan mudah diprediksi.
4 komentar
Saya membuat sebuah template untuk dipakai dengan https://github.com/gracefullight/py-starter.
Dengan menggunakan poethepoet, kita bisa mendefinisikan task di dalam
pyproject.toml, jadi saya memakainya sebagai pengganti just.Terima kasih.
Terima kasih. https://poethepoet.natn.io/