मॉड्यूल_टैब

समस्या की शिकायत करें सोर्स देखें

मॉड्यूल एक्सटेंशन का संदर्भ जिसमें हेल्पर फ़ंक्शन होते हैं. साथ ही, डिपेंडेंसी ग्राफ़ में ज़रूरी टैग के बारे में जानकारी. मॉड्यूल एक्सटेंशन बनाते समय, आपको implementation फ़ंक्शन में आर्ग्युमेंट के तौर पर एकModul_ctx ऑब्जेक्ट मिलता है.

पैसे चुकाकर बने सदस्यों के लिए

डाउनलोड करें

unknown module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)

दिए गए यूआरएल के आउटपुट पाथ पर एक फ़ाइल डाउनलोड करता है और success वाला एक स्ट्रक्चर देता है. यह एक फ़्लैग होता है, जो डाउनलोड पूरा होने पर true होता है. साथ ही, sha256 और integrity फ़ील्ड वाली फ़ाइल का हैश करता है.

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
url string; या string में बदलाव करने की सुविधा हो; ज़रूरी है
एक ही फ़ाइल का रेफ़रंस देने वाले डुप्लीकेट यूआरएल की सूची.
output string; या Label; या path; आउटपुट फ़ाइल का ''
पाथ डिफ़ॉल्ट रूप से रिपॉज़िटरी डायरेक्ट्री के हिसाब से होता है.
sha256 डिफ़ॉल्ट तौर पर, डाउनलोड की गई फ़ाइल का ''
हैश SHA-256 होना चाहिए. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. रिमोट फ़ाइलों में बदलाव हो सकता है, इसलिए SHA-256 को हटा देना सुरक्षा के लिए जोखिम हो सकता है. इस फ़ील्ड को छोड़ने से आपका बिल्ड नॉन-हर्मेटिक हो जाएगा. डेवलपमेंट को आसान बनाना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट किया जाना चाहिए.
executable Falseडिफ़ॉल्ट है
बनाई गई फ़ाइल पर एक्ज़ीक्यूटेबल फ़्लैग सेट करें, जो डिफ़ॉल्ट रूप से 'गलत' है.
allow_fail यह डिफ़ॉल्ट रूप से False पर सेट होती है
अगर यह नीति सेट की जाती है, तो अपलोड न हो पाने वाले डाउनलोड के लिए गड़बड़ी बढ़ाने के बजाय, रिटर्न वैल्यू में गड़बड़ी होने की जानकारी दें
canonical_id '' डिफ़ॉल्ट है
अगर सेट हो, तो कैश मेमोरी हिट को उन मामलों में सीमित करें जहां फ़ाइल को उसी कैननिकल आईडी के साथ कैश मेमोरी में जोड़ा गया था
auth {} डिफ़ॉल्ट है
कुछ यूआरएल के लिए पुष्टि करने की जानकारी देने वाला यह लिखवाने की सुविधा ज़रूरी नहीं है.
headers {} डिफ़ॉल्ट है
सभी यूआरएल के लिए एचटीटीपी हेडर तय करने वाला एक वैकल्पिक लिखवाने की सुविधा.
integrity डिफ़ॉल्ट तौर पर ''
सबरिसॉर्स इंटेग्रिटी फ़ॉर्मैट में, डाउनलोड की गई फ़ाइल का चेकसम (चेकसम) होना चाहिए. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को हटाने से सुरक्षा जोखिम हो सकता है, क्योंकि रिमोट फ़ाइलें बदल सकती हैं. इस फ़ील्ड को छोड़ने से आपका बिल्ड नॉन-हर्मेटिक हो जाएगा. डेवलपमेंट को आसान बनाना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट किया जाना चाहिए.
block True डिफ़ॉल्ट है
अगर कॉल को 'गलत है' पर सेट किया जाता है, तो कॉल तुरंत वापस आ जाता है. साथ ही, सामान्य रिटर्न वैल्यू के बजाय, यह सिर्फ़ एक तरीके, weather() वाला टोकन दिखाता है. यह डाउनलोड पूरा होने तक ब्लॉक होता है और सामान्य रिटर्न वैल्यू दिखाता है या सामान्य वैल्यू दिखाता है.

download_and_extract

struct module_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})

दिए गए यूआरएल के आउटपुट पाथ में एक फ़ाइल डाउनलोड करता है, उसे एक्सट्रैक्ट करता है, और success वाला एक स्ट्रक्चर देता है. यह एक फ़्लैग होता है, जो डाउनलोड पूरा होने पर true होता है. साथ ही, sha256 और integrity फ़ील्ड वाली फ़ाइल का हैश भी दिखाता है.

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
url string; या string में बदलाव करने की सुविधा हो; ज़रूरी है
एक ही फ़ाइल का रेफ़रंस देने वाले डुप्लीकेट यूआरएल की सूची.
output string; या Label; या path; डिफ़ॉल्ट तौर पर, यह डायरेक्ट्री का ''
पाथ होता है, जहां रिपॉज़िटरी डायरेक्ट्री के हिसाब से संग्रह को पैक नहीं किया जाएगा.
sha256 डिफ़ॉल्ट तौर पर, डाउनलोड की गई फ़ाइल का ''
हैश SHA-256 होना चाहिए. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. रिमोट फ़ाइलों में बदलाव हो सकता है, इसलिए SHA-256 को हटा देना सुरक्षा के लिए जोखिम हो सकता है. इस फ़ील्ड को छोड़ने से आपका बिल्ड नॉन-हर्मेटिक हो जाएगा. डेवलपमेंट को आसान बनाना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट किया जाना चाहिए. अगर यह दिया जाता है, तो सबसे पहले दिए गए हैश वाली फ़ाइल के लिए रिपॉज़िटरी कैश मेमोरी की जांच की जाएगी. कैश मेमोरी में फ़ाइल न मिलने पर ही डाउनलोड की कोशिश की जाएगी. डाउनलोड हो जाने के बाद, फ़ाइल को कैश मेमोरी में जोड़ दिया जाएगा.
type डाउनलोड की गई फ़ाइल का संग्रह टाइप, डिफ़ॉल्ट तौर पर ''
है. डिफ़ॉल्ट रूप से, संग्रह का टाइप, यूआरएल के फ़ाइल एक्सटेंशन से तय होता है. अगर फ़ाइल का कोई एक्सटेंशन मौजूद नहीं है, तो यहां "zip", " Jar", "var", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" या ".tbz", ".ar" या ".tbz" यहां साफ़ तौर पर बताएं.
stripPrefix ''
एक डायरेक्ट्री प्रीफ़िक्स है, जो एक्सट्रैक्ट की गई फ़ाइलों से अलग करता है. कई संग्रह में एक शीर्ष-स्तरीय निर्देशिका होती है जिसमें संग्रह की सभी फ़ाइलें होती हैं. build_file में, इस प्रीफ़िक्स को बार-बार बताने के बजाय, इस फ़ील्ड का इस्तेमाल करके निकाली गई फ़ाइलों से इसे हटाया जा सकता है.
allow_fail यह डिफ़ॉल्ट रूप से False पर सेट होती है
अगर यह नीति सेट की जाती है, तो अपलोड न हो पाने वाले डाउनलोड के लिए गड़बड़ी बढ़ाने के बजाय, रिटर्न वैल्यू में गड़बड़ी होने की जानकारी दें
canonical_id '' डिफ़ॉल्ट है
अगर सेट हो, तो कैश मेमोरी हिट को उन मामलों में सीमित करें जहां फ़ाइल को उसी कैननिकल आईडी के साथ कैश मेमोरी में जोड़ा गया था
auth {} डिफ़ॉल्ट है
कुछ यूआरएल के लिए पुष्टि करने की जानकारी देने वाला यह लिखवाने की सुविधा ज़रूरी नहीं है.
headers {} डिफ़ॉल्ट है
सभी यूआरएल के लिए एचटीटीपी हेडर तय करने वाला एक वैकल्पिक लिखवाने की सुविधा.
integrity डिफ़ॉल्ट तौर पर ''
सबरिसॉर्स इंटेग्रिटी फ़ॉर्मैट में, डाउनलोड की गई फ़ाइल का चेकसम (चेकसम) होना चाहिए. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को हटाने से सुरक्षा जोखिम हो सकता है, क्योंकि रिमोट फ़ाइलें बदल सकती हैं. इस फ़ील्ड को छोड़ने से आपका बिल्ड नॉन-हर्मेटिक हो जाएगा. डेवलपमेंट को आसान बनाना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट किया जाना चाहिए.
rename_files यह डिफ़ॉल्ट रूप से {} पर सेट होता है
डेटा निकालने के दौरान फ़ाइलों का नाम बदलने के लिए, यह लिखवाने की सुविधा ज़रूरी नहीं है. किसी कुंजी से पूरी तरह मेल खाने वाले नामों वाली संग्रह एंट्री का नाम बदलकर, वैल्यू के तौर पर सेट कर दिया जाएगा. ऐसा, डायरेक्ट्री प्रीफ़िक्स अडजस्टमेंट से पहले किया जाएगा. इसका इस्तेमाल, ऐसे संग्रह को एक्सट्रैक्ट करने के लिए किया जा सकता है जिनमें गैर-यूनिकोड फ़ाइल नाम होते हैं या जिनमें ऐसी फ़ाइलें होती हैं जो केस-इनसेंसिटिव फ़ाइल सिस्टम के उसी पाथ पर ले जाती हैं.

execute

exec_result module_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")

आर्ग्युमेंट की सूची से दिए गए निर्देश को एक्ज़ीक्यूट करता है. निर्देश के चलने का समय timeout से तय होता है (सेकंड में, डिफ़ॉल्ट रूप से 600 सेकंड). यह तरीका, कमांड के आउटपुट वाला exec_result स्ट्रक्चर दिखाता है. environment मैप का इस्तेमाल, कुछ एनवायरमेंट वैरिएबल को बदलने के लिए किया जा सकता है, ताकि प्रोसेस को पास किया जा सके.

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
arguments ज़रूरी है
आर्ग्युमेंट की सूची. पहला एलिमेंट, प्रोग्राम का पाथ होना चाहिए.
timeout डिफ़ॉल्ट तौर पर, 600
निर्देश की ज़्यादा से ज़्यादा अवधि सेकंड में होती है (डिफ़ॉल्ट समय 600 सेकंड है).
environment डिफ़ॉल्ट तौर पर, {}
है. कुछ एनवायरमेंट वैरिएबल को ज़बरदस्ती सेट करके प्रोसेस में पास किया जा सकता है.
quiet डिफ़ॉल्ट वैल्यू True है
अगर stdout और stderr को टर्मिनल पर प्रिंट किया जाना चाहिए.
working_directory डिफ़ॉल्ट तौर पर, ""
निर्देश लागू करने के लिए वर्किंग डायरेक्ट्री है. यह रिपॉज़िटरी रूट या ऐब्सलूट के हिसाब से हो सकता है.

extension_metadata

extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None, reproducible=False)

यह एक ओपेक ऑब्जेक्ट बनाता है, जिसे मॉड्यूल एक्सटेंशन के लागू करने के फ़ंक्शन से वापस किया जा सकता है. इससे, बेज़ल के एक्सटेंशन से जनरेट हुए डेटा स्टोर करने की जगहों के बारे में मेटाडेटा उपलब्ध होता है.

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
root_module_direct_deps strings; या string; या None का सीक्वेंस; डिफ़ॉल्ट None है
ऐसे डेटा स्टोर करने की जगहों के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल के लिए डायरेक्ट डिपेंडेंसी मानता है. अगर रूट मॉड्यूल अतिरिक्त डेटा स्टोर करने की जगह इंपोर्ट करता है या use_repo के ज़रिए ये सभी डेटा स्टोर करने की जगह इंपोर्ट नहीं करता है, तो एक्सटेंशन का आकलन होने पर Baज़ल, डेटा स्टोर करने की जगह को एक चेतावनी प्रिंट कर देगा. इसमें उपयोगकर्ता को bazel mod tidy चलाने के लिए निर्देश दिया जाएगा, ताकि वह use_repo कॉल को अपने-आप ठीक कर सके.

अगर root_module_direct_deps में से कोई एक है और एक्सटेंशन का आकलन होते समय, चेतावनी और ठीक करने का निर्देश प्रिंट किया जाएगा.

अगर root_module_direct_deps और root_module_direct_dev_deps में से कोई एक बताया गया है, तो दूसरा भी तय होना चाहिए. इन दो पैरामीटर के ज़रिए तय की गई सूचियां अलग-अलग होनी चाहिए.

root_module_direct_deps और root_module_direct_dev_deps में से किसी एक को खास वैल्यू "all" पर सेट किया जा सकता है. इसे ऐसे माना जाता है कि एक्सटेंशन से जनरेट हुए सभी डेटा स्टोर करने की जगहों के नाम वाली सूची को वैल्यू के तौर पर सेट किया गया हो.

root_module_direct_dev_deps strings; या string; या None का सीक्वेंस; डिफ़ॉल्ट None है
ऐसे डेटा स्टोर करने की जगहों के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल के लिए डायरेक्ट डेवलपर डिपेंडेंसी मानता है. अगर रूट मॉड्यूल अतिरिक्त रिपॉज़िटरी इंपोर्ट करता है या use_extension(..., dev_dependency = True) के साथ बनाए गए एक्सटेंशन प्रॉक्सी पर use_repo के ज़रिए ये सभी रिपॉज़िटरी इंपोर्ट नहीं करता है, तो एक्सटेंशन का आकलन होने पर Basel एक चेतावनी प्रिंट कर देगा. साथ ही, उपयोगकर्ता को use_repo कॉल को अपने-आप ठीक करने के लिए bazel mod tidy चलाने के लिए निर्देश देगा.

अगर root_module_direct_deps और root_module_direct_dev_deps में से कोई एक बताया गया है, तो दूसरा भी तय होना चाहिए. इन दो पैरामीटर के ज़रिए तय की गई सूचियां अलग-अलग होनी चाहिए.

root_module_direct_deps और root_module_direct_dev_deps में से किसी एक को खास वैल्यू "all" पर सेट किया जा सकता है. इसे ऐसे माना जाता है कि एक्सटेंशन से जनरेट हुए सभी डेटा स्टोर करने की जगहों के नाम वाली सूची को वैल्यू के तौर पर सेट किया गया हो.

reproducible bool; डिफ़ॉल्ट रूप से यह False
स्टेट है कि यह मॉड्यूल एक्सटेंशन पूरी तरह से दोबारा बनाया जा सकता है. इसलिए, इसे lockfile में सेव नहीं किया जाना चाहिए.

फ़ाइल

None module_ctx.file(path, content='', executable=True, legacy_utf8=True)

दिए गए कॉन्टेंट के साथ, रिपॉज़िटरी डायरेक्ट्री में फ़ाइल जनरेट करता है.

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
path string; या Label; या path; ज़रूरी है
फ़ाइल का पाथ, जिसे रिपॉज़िटरी डायरेक्ट्री से जोड़ा जाना है.
content फ़ाइल का कॉन्टेंट ''
डिफ़ॉल्ट पर सेट होता है. यह डिफ़ॉल्ट रूप से खाली होता है.
executable Trueडिफ़ॉल्ट है
बनाई गई फ़ाइल पर एक्ज़ीक्यूटेबल फ़्लैग सेट करें, जो डिफ़ॉल्ट रूप से 'सही' पर सेट होता है.
legacy_utf8 यह डिफ़ॉल्ट रूप से True
फ़ाइल के कॉन्टेंट को UTF-8 में एन्कोड करता है. यह डिफ़ॉल्ट रूप से 'सही' होता है. आने वाले समय में डिफ़ॉल्ट सेटिंग, इस पैरामीटर को हटा देगी.

गेटेनव

string module_ctx.getenv(name, default=None)

एनवायरमेंट वैरिएबल name का मान स्ट्रिंग के रूप में दिखाता है. अगर ऐसा नहीं है, तो यह default दिखाता है.

अगर वैरिएबल की वैल्यू को बढ़ाया जाता है, तो name के नाम वाले वैरिएबल की वैल्यू में कोई भी बदलाव करने पर, डेटा स्टोर करने की इस जगह को फिर से फ़ेच किया जाएगा.

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
name string; ज़रूरी है
एनवायरमेंट वैरिएबल का नाम
default string; या None; None
डिफ़ॉल्ट वैल्यू होती है, जिसे `name` नहीं मिलने पर दिखाया जाता है
None को वापस किया जा सकता है.

is_dev_dependency

bool module_ctx.is_dev_dependency(tag)

यह बताता है कि दिया गया टैग, devDependency = True के साथ use_extension कॉल के नतीजे में तय हुआ था या नहीं.

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
tag baaz_module_tag; ज़रूरी है
bazel_module.tags से मिला टैग.

मॉड्यूल

list module_ctx.modules

बाहरी डिपेंडेंसी ग्राफ़ में मौजूद उन सभी Basel मॉड्यूल की एक सूची जो इस मॉड्यूल एक्सटेंशन का इस्तेमाल करते हैं. हर मॉड्यूल, एक bazel_module ऑब्जेक्ट है, जो इस एक्सटेंशन के लिए तय किए गए सभी टैग दिखाता है. इस शब्दकोश के दोहराने का क्रम, रूट मॉड्यूल से शुरू होने वाले वाइड-फ़र्स्ट सर्च के समान होने की गारंटी है.

os

repository_os module_ctx.os

सिस्टम से जानकारी ऐक्सेस करने का निर्देश.

पाथ

path module_ctx.path(path)

किसी स्ट्रिंग, लेबल या पाथ से पाथ दिखाता है. अगर पाथ मिलता-जुलता है, तो इसका समाधान रिपॉज़िटरी डायरेक्ट्री से किया जाएगा. अगर पाथ कोई लेबल है, तो उससे जुड़ी फ़ाइल के पाथ पर ले जाया जाएगा. ध्यान दें कि रिमोट रिपॉज़िटरी, विश्लेषण के दौरान चलाए जाते हैं. इसलिए, ये टारगेट किए गए नतीजे के हिसाब से नहीं होने चाहिए. लेबल को किसी ऐसी फ़ाइल पर ले जाना चाहिए जो जनरेट नहीं हुई है. अगर पाथ एक पाथ है, तो वह उसी पाथ को पहले जैसा करेगा.

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
path string; या Label; या path; ज़रूरी है
स्ट्रिंग, लेबल या पाथ जिससे पाथ बनाना है

पढ़ना

string module_ctx.read(path, *, watch='auto')

फ़ाइल सिस्टम पर मौजूद किसी फ़ाइल के कॉन्टेंट को पढ़ता है.

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
path string; या Label; या path; फ़ाइल का वह पाथ जिससे पढ़ना ज़रूरी है
.
watch डिफ़ॉल्ट रूप से यह 'auto'
सेट होता है कि फ़ाइल को देखना है या नहीं. यह स्ट्रिंग 'हां', 'नहीं' या 'ऑटो' स्ट्रिंग हो सकती है. 'हां' पास करना watch() विधि को तुरंत शुरू करने के समान है; 'नहीं' पास करना फ़ाइल को देखने का प्रयास नहीं करता; 'ऑटो' पास करना फ़ाइल को देखने का केवल तभी प्रयास करेगा जब ऐसा करना कानूनी हो (ज़्यादा जानकारी के लिए watch() दस्तावेज़ देखें.

report_progress

None module_ctx.report_progress(status='')

इस डेटा स्टोर करने की जगह या मॉड्यूल एक्सटेंशन को फ़ेच करने की प्रोग्रेस की स्थिति को अपडेट करता है

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
status string; फ़ेच की गई प्रोसेस की मौजूदा स्थिति की जानकारी देने वाली ''
स्ट्रिंग डिफ़ॉल्ट होती है

root_module_has_non_dev_dependency

bool module_ctx.root_module_has_non_dev_dependency

रूट मॉड्यूल इस एक्सटेंशन का इस्तेमाल गैर-डेवलपर डिपेंडेंसी के तौर पर करता है या नहीं.

स्मार्टवॉच

None module_ctx.watch(path)

बेज़ेल को दिए गए पथ में हुए बदलावों पर नज़र रखने के लिए कहता है, चाहे यह मौजूद हो या नहीं, या यह कोई फ़ाइल है या निर्देशिका है. फ़ाइल या डायरेक्ट्री में कोई भी बदलाव करने पर, डेटा स्टोर करने की इस जगह या मॉड्यूल एक्सटेंशन अमान्य हो जाएगा. इसकी वजह से, अगली बार इसे फिर से फ़ेच किया जाएगा या उसकी फिर से जांच की जाएगी.

"बदलाव" में, फ़ाइल के कॉन्टेंट में किए जाने वाले बदलाव शामिल होते हैं (अगर पाथ एक फ़ाइल है); अगर पाथ एक फ़ाइल था, लेकिन अब वह डायरेक्ट्री है या पाथ मौजूदा पाथ के शुरू होता है या बंद हो जाता है. ध्यान दें, अगर पाथ एक डायरेक्ट्री है, तो इसमें डायरेक्ट्री के तहत आने वाली किसी भी फ़ाइल में किए गए बदलाव शामिल नहीं होते. इसके लिए, path.readdir() का इस्तेमाल करें.

ध्यान दें कि इस समय फ़ेच किए जा रहे रेपो या मौजूदा मॉड्यूल एक्सटेंशन की काम करने वाली डायरेक्ट्री के अंदर पाथ को देखने की कोशिश करने पर गड़बड़ी हो सकती है. मौजूदा बेज़ल फ़ाइल फ़ोल्डर के बाहर पाथ देखने की कोशिश करने वाले मॉड्यूल एक्सटेंशन की वजह से भी गड़बड़ी हो सकती है.

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
path string; या Label; या path; फ़ाइल का देखने के लिए पाथ
ज़रूरी है.

कौनसा

path module_ctx.which(program)

यह फ़ंक्शन, इससे जुड़े प्रोग्राम का पाथ दिखाता है या अगर पाथ में कोई ऐसा प्रोग्राम नहीं है, तो यह विकल्प दिखाता है.

पैरामीटर

पैरामीटर कंपनी का ब्यौरा
program ज़रूरी है
पाथ में खोजने के लिए प्रोग्राम.
None को वापस किया जा सकता है.