मॉड्यूल_टैब

समस्या की शिकायत करें सोर्स देखें Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

सदस्य

डाउनलोड करें

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

दिए गए यूआरएल के आउटपुट पाथ पर एक फ़ाइल डाउनलोड करता है और 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 डिफ़ॉल्ट {}
है यह एक वैकल्पिक डिक्शनरी है, जिसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी गई है.
integrity यह डिफ़ॉल्ट रूप से '' पर सेट होती है
डाउनलोड की गई फ़ाइल का अनुमानित चेकसम, सबरिसॉर्स इंटेग्रिटी फ़ॉर्मैट में. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को हटाना सुरक्षा के लिहाज़ से जोखिम भरा है, क्योंकि रिमोट फ़ाइलों में बदलाव हो सकता है. इस फ़ील्ड को छोड़ने से आपका बिल्ड नॉन-हर्मेटिक हो जाएगा. डेवलपमेंट को आसान बनाने के लिए, इसे सेट करना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट करना चाहिए.

download_and_extract

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

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

पैरामीटर

पैरामीटर ब्यौरा
url स्ट्रिंग या स्ट्रिंग की Iterable वैल्यू; ज़रूरी है
एक ही फ़ाइल का रेफ़रंस देने वाले मिरर यूआरएल की सूची.
output स्ट्रिंग; या लेबल; या पाथ; डिफ़ॉल्ट रूप से ''
वह पाथ जहां संग्रह को अनपैक किया जाएगा. यह पाथ, रिपॉज़िटरी डायरेक्ट्री से लिया जाता है.
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 डिफ़ॉल्ट {}
है यह एक वैकल्पिक डिक्शनरी है, जिसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी गई है.
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)

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

पैरामीटर

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

अगर 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 के ज़रिए अतिरिक्त रिपॉज़िटरी इंपोर्ट करता है या इन सभी रिपॉज़िटरी को इंपोर्ट नहीं करता है, तो एक्सटेंशन का आकलन करने पर Bazel, एक चेतावनी और ठीक करने का निर्देश प्रिंट करेगा.

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

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

फ़ाइल

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

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

पैरामीटर

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

is_dev_dependency

bool module_ctx.is_dev_dependency(tag)

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

पैरामीटर

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

मॉड्यूल

list module_ctx.modules

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

os

repository_os module_ctx.os

सिस्टम से जानकारी ऐक्सेस करने के लिए स्ट्रक्चर.

पाथ

path module_ctx.path(path)

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

पैरामीटर

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

पढ़ा गया

string module_ctx.read(path)

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

पैरामीटर

पैरामीटर ब्यौरा
path स्ट्रिंग; या लेबल; या पाथ; ज़रूरी है
उस फ़ाइल का पाथ जिसे पढ़ना है.

report_progress

None module_ctx.report_progress(status='')

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

पैरामीटर

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

root_module_has_non_dev_dependency

bool module_ctx.root_module_has_non_dev_dependency

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

कौनसा

path module_ctx.which(program)

इससे उस प्रोग्राम का पाथ मिलता है. अगर पाथ में कोई ऐसा प्रोग्राम नहीं है, तो None दिखता है.

पैरामीटर

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