"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में--withargument को dynamic रूप से जोड़ने या सर्वर पोर्ट बदलने जैसे लचीले वर्कफ़्लो बनाने में किया जा सकता है।uvx(uv tool run):pipxकी तरह प्रोजेक्ट से स्वतंत्र रूप से PyPI पैकेज चलाने वाला कमांड है।justrecipes के अंदर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 टिप्पणियां
मैंने
https://github.com/gracefullight/py-starterइस्तेमाल करने के लिए एक टेम्पलेट बना रखा है.poethepoetका इस्तेमाल करने परpyproject.tomlके अंदर tasks परिभाषित करके उनका उपयोग किया जा सकता है, इसलिए मैंjustकी जगह इसका इस्तेमाल करता हूँ।धन्यवाद।
धन्यवाद। https://poethepoet.natn.io/