30 puan yazan darjeeling 2025-07-07 | 4 yorum | WhatsApp'ta paylaş

"uv: Making Python Local Workflows FAST and BORING in 2025" video özeti

Bu video, Python paketleme aracı uv kullanarak yerel geliştirme iş akışlarını hızlı ve verimli hale getirmenin ikinci bölümünü ele alıyor. Ana noktalar şöyle:

1. uv temel komutlarını kullanma
  • uv run: pyproject.toml içinde tanımlanmış ve uv.lock dosyasına sabitlenmiş bağımlılıkları kullanarak sanal ortam içinde pytest veya fastapi gibi komutları çalıştırır.
  • uv add: Yeni bir bağımlılığı pyproject.toml dosyasına ekler ve uv.lock dosyasını otomatik olarak günceller.
  • uv run --with: Projenin çekirdek bağımlılıklarına eklemeden pdbpp gibi geliştirme yardımcı modüllerini geçici olarak ekleyip kullanmanızı sağlar.
  • uv lock --upgrade: Bağımlılık kilit dosyasını çok yüksek hızda günceller. uv run, çalıştırma sırasında değişen kilit dosyasını otomatik olarak algılar ve ortamı senkronize eder.
2. just ile iş akışını standartlaştırma
  • uv, hatch veya pdm gibi kullanıcı tanımlı komutlar tanımlama özelliğini yerleşik olarak sunmaz.
  • Videoda Makefile'ın dezavantajlarına (platform bağımlılığı, standart dışı sözdizimi vb.) dikkat çekiliyor ve alternatif olarak Rust ile yazılmış komut çalıştırıcısı just güçlü biçimde öneriliyor.
  • justfile kullanarak aşağıdaki gibi tekrar eden işler recipe olarak standartlaştırılabilir.
    • test: Testleri çalıştırma (argüman aktarımı mümkün)
    • cov: Test kapsamını kontrol etme
    • serve: Geliştirme sunucusunu çalıştırma
    • checkall: Lint, tip kontrolü vb. tüm kontrolleri tek seferde çalıştırma
3. just ve uv entegrasyonu
  • .env dosyası: just, .env dosyasını okuyarak ortam değişkenlerini ayarlayabilir. Bu sayede uv run içine --with parametresini dinamik olarak eklemek veya sunucu portunu değiştirmek gibi esnek iş akışları kurulabilir.
  • uvx (uv tool run): pipx benzeri şekilde, projeden bağımsız olarak PyPI paketlerini çalıştıran bir komuttur. just recipe'leri içinde httpie gibi araçlar, proje bağımlılıklarına eklenmeden kullanılabilir.
4. Sanal ortamı doğrudan yönetme (isteğe bağlı iş akışı)
  • uv run üzerinden gitmeden, geleneksel yöntemle sanal ortamı (.venv) etkinleştirip kullanmak isteyen geliştiriciler için bir yöntemdir.
  • uv sync: uv.lock dosyası ile .venv klasörünün durumunu senkronize eder. (bağımlılıkları kurar ve gereksiz paketleri kaldırır)
  • direnv: Belirli bir dizine girildiğinde .envrc betiğini otomatik olarak çalıştıran bir shell aracıdır. Bu araç sayesinde dizine girerken otomatik olarak uv sync çalıştırılabilir ve sanal ortam etkinleştirilebilir.
Sonuç

uv'nin hızı ile just ve direnv gibi araçlar birleştirildiğinde, bağımlılık yönetimi ve komut çalıştırma süreçleri otomatikleştirilip standartlaştırılabilir; böylece geliştiriciler temel iş mantığına daha fazla odaklanabilir. Sonuçta "hızlı ve sıkıcı (boring)", yani son derece kararlı ve öngörülebilir bir geliştirme ortamı kurulabilir.

4 yorum

 
gracefullight 2025-07-10

https://github.com/gracefullight/py-starter kullanmak için bir şablon hazırladım.

 
aabb2467 2025-07-08

poethepoet ile görevleri pyproject.toml içinde tanımlayıp kullanmak mümkün olduğu için ben just yerine bunu kullanıyorum.

 
gracefullight 2025-07-10

Teşekkürler.

 
dkmin 2025-07-09