30 पॉइंट द्वारा darjeeling 2025-07-07 | 4 टिप्पणियां | WhatsApp पर शेयर करें

"uv: Making Python Local Workflows FAST and BORING in 2025" वीडियो सारांश

यह वीडियो Python पैकेजिंग टूल uv का उपयोग करके लोकल डेवलपमेंट वर्कफ़्लो को तेज़ और अधिक कुशल बनाने के तरीके पर दूसरी कड़ी है। मुख्य बिंदु इस प्रकार हैं।

1. uv के मुख्य कमांड्स का उपयोग
  • uv run: pyproject.toml में परिभाषित और uv.lock फ़ाइल में लॉक की गई dependencies का उपयोग करके virtual environment के भीतर pytest या fastapi जैसे कमांड चलाता है।
  • uv add: नई dependency को pyproject.toml में जोड़ता है और uv.lock फ़ाइल को अपने-आप अपडेट करता है।
  • uv run --with: प्रोजेक्ट की मुख्य dependencies में जोड़े बिना pdbpp जैसे development helper modules को अस्थायी रूप से inject करके इस्तेमाल किया जा सकता है।
  • uv lock --upgrade: dependency lock फ़ाइल को बहुत तेज़ी से अपडेट करता है। uv run रनटाइम पर बदली हुई lock फ़ाइल को अपने-आप पहचान लेता है और environment को sync करता है।
2. just के साथ वर्कफ़्लो का मानकीकरण
  • uv में hatch या pdm की तरह custom commands परिभाषित करने की built-in सुविधा नहीं है।
  • वीडियो में Makefile की कमियों (platform dependency, non-standard syntax आदि) की ओर इशारा किया गया है, और विकल्प के रूप में Rust में लिखा command runner (just) मज़बूती से सुझाया गया है।
  • justfile का उपयोग करके निम्न दोहराए जाने वाले कामों को recipes के रूप में standardize किया जाता है।
    • test: टेस्ट चलाना (arguments पास किए जा सकते हैं)
    • cov: टेस्ट coverage जाँचना
    • serve: डेवलपमेंट सर्वर चलाना
    • checkall: lint, type check आदि सभी जाँचों को एक साथ चलाना
3. just और uv का इंटीग्रेशन
  • .env फ़ाइल: just .env फ़ाइल पढ़कर environment variables सेट कर सकता है। इसका उपयोग uv run में --with argument को dynamic रूप से जोड़ने या सर्वर पोर्ट बदलने जैसे लचीले वर्कफ़्लो बनाने में किया जा सकता है।
  • uvx (uv tool run): pipx की तरह प्रोजेक्ट से स्वतंत्र रूप से PyPI पैकेज चलाने वाला कमांड है। just recipes के अंदर httpie जैसे टूल्स को प्रोजेक्ट dependencies में जोड़े बिना इस्तेमाल किया जा सकता है।
4. virtual environment का सीधे प्रबंधन (वैकल्पिक वर्कफ़्लो)
  • यह उन डेवलपर्स के लिए तरीका है जो uv run के बिना पारंपरिक ढंग से virtual environment (.venv) को activate करके काम करना चाहते हैं।
  • uv sync: uv.lock फ़ाइल और .venv फ़ोल्डर की स्थिति को sync करता है। (dependencies इंस्टॉल करना और अनावश्यक पैकेज हटाना)
  • direnv: एक shell टूल जो किसी विशेष directory में प्रवेश करते समय .envrc स्क्रिप्ट को अपने-आप चलाता है। इसका उपयोग directory में प्रवेश करते ही uv sync अपने-आप चलाने और virtual environment को activate करने के लिए किया जा सकता है।
निष्कर्ष

uv की गति को just, direnv जैसे टूल्स के साथ जोड़ने पर dependency management और command execution को automate और standardize किया जा सकता है, जिससे डेवलपर्स मुख्य लॉजिक पर अधिक ध्यान दे पाते हैं और "तेज़ और boring", यानी बहुत स्थिर और अनुमानित डेवलपमेंट environment बना सकते हैं।

4 टिप्पणियां

 
gracefullight 2025-07-10

मैंने https://github.com/gracefullight/py-starter इस्तेमाल करने के लिए एक टेम्पलेट बना रखा है.

 
aabb2467 2025-07-08

poethepoet का इस्तेमाल करने पर pyproject.toml के अंदर tasks परिभाषित करके उनका उपयोग किया जा सकता है, इसलिए मैं just की जगह इसका इस्तेमाल करता हूँ।

 
gracefullight 2025-07-10

धन्यवाद।

 
dkmin 2025-07-09

धन्यवाद। https://poethepoet.natn.io/