मॉड्यूल_टैब

मॉड्यूल एक्सटेंशन का कॉन्टेक्स्ट, जिसमें हेल्पर फ़ंक्शन और डिपेंडेंसी ग्राफ़ में काम के टैग की जानकारी शामिल होती है. मॉड्यूल एक्सटेंशन बनाने पर, आपको 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; or Iterable of strings; ज़रूरी है
एक ही फ़ाइल का रेफ़रंस देने वाले मिरर यूआरएल की सूची.
output string; or Label; or path; डिफ़ॉल्ट = ''
रिपॉज़िटरी डायरेक्ट्री के हिसाब से, आउटपुट फ़ाइल का पाथ.
sha256 डिफ़ॉल्ट = ''
डाउनलोड की गई फ़ाइल का अनुमानित SHA-256 हैश. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. SHA-256 को हटाना सुरक्षा के लिहाज़ से जोखिम भरा है, क्योंकि रिमोट फ़ाइलों में बदलाव हो सकता है. इस फ़ील्ड को हटाने पर, आपका बिल्ड पूरी तरह से सुरक्षित नहीं रहेगा. डेवलपमेंट को आसान बनाने के लिए, इसे सेट करना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट करना चाहिए.
executable default = False
बनाई गई फ़ाइल पर, 'चलाया जा सकता है' फ़्लैग को डिफ़ॉल्ट रूप से गलत पर सेट करें.
allow_fail default = 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 string; or Iterable of strings; ज़रूरी है
एक ही फ़ाइल का रेफ़रंस देने वाले डुप्लीकेट यूआरएल की सूची.
output string; or Label; or path; डिफ़ॉल्ट = ''
उस डायरेक्ट्री का पाथ जहां रिपॉज़िटरी डायरेक्ट्री के हिसाब से, संग्रह को अनपैक किया जाएगा.
sha256 डिफ़ॉल्ट = ''
डाउनलोड की गई फ़ाइल का अनुमानित SHA-256 हैश. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. SHA-256 को हटाना सुरक्षा के लिहाज़ से जोखिम भरा है, क्योंकि रिमोट फ़ाइलों में बदलाव हो सकता है. इस फ़ील्ड को हटाने पर, आपका बिल्ड पूरी तरह से सुरक्षित नहीं रहेगा. डेवलपमेंट को आसान बनाने के लिए, इसे सेट करना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट करना चाहिए. अगर हैश दिया गया है, तो पहले रिपॉज़िटरी कैश में उस हैश वाली फ़ाइल की जांच की जाएगी. अगर फ़ाइल कैश में नहीं मिली, तो ही उसे डाउनलोड करने की कोशिश की जाएगी. डाउनलोड हो जाने के बाद, फ़ाइल को कैश मेमोरी में जोड़ दिया जाएगा.
type डिफ़ॉल्ट = ''
डाउनलोड की गई फ़ाइल का संग्रह टाइप. डिफ़ॉल्ट रूप से, यूआरएल के फ़ाइल एक्सटेंशन से यह तय होता है कि संग्रह किस तरह का है. अगर फ़ाइल का कोई एक्सटेंशन नहीं है, तो यहां "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".ar" या ".deb" में से कोई एक एक्सटेंशन डालें.
stripPrefix डिफ़ॉल्ट = ''
निकाली गई फ़ाइलों से हटाने के लिए डायरेक्ट्री प्रीफ़िक्स. कई संग्रह में एक शीर्ष-स्तरीय निर्देशिका होती है जिसमें संग्रह की सभी फ़ाइलें होती हैं. build_file में इस प्रीफ़िक्स को बार-बार बताने के बजाय, इस फ़ील्ड का इस्तेमाल करके, निकाली गई फ़ाइलों से इसे हटाया जा सकता है.
allow_fail default = False
अगर सेट किया जाता है, तो फ़ेल हो चुके डाउनलोड के लिए गड़बड़ी बढ़ाने के बजाय, रिटर्न वैल्यू में गड़बड़ी दिखाएं
canonical_id डिफ़ॉल्ट = ''
अगर सेट किया गया है, तो कैश मेमोरी में हिट करने की सुविधा को सिर्फ़ उन मामलों तक सीमित करें जहां फ़ाइल को कैश मेमोरी में उसी कैननिकल आईडी के साथ जोड़ा गया था
auth डिफ़ॉल्ट = {}
कुछ यूआरएल के लिए पुष्टि करने की जानकारी देने वाला वैकल्पिक डिक्शनरी.
integrity डिफ़ॉल्ट = ''
सब-रिसोर्स इंटिग्रिटी फ़ॉर्मैट में, डाउनलोड की गई फ़ाइल का अनुमानित चेकसम. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को हटाने से सुरक्षा जोखिम हो सकता है, क्योंकि रिमोट फ़ाइलें बदल सकती हैं. इस फ़ील्ड को हटाने पर, आपका बिल्ड पूरी तरह से सुरक्षित नहीं रहेगा. डेवलपमेंट को आसान बनाने के लिए, इसे सेट करना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट करना चाहिए.
rename_files default = {}
एक्सट्रैक्शन के दौरान फ़ाइलों का नाम बदलने के बारे में बताने वाला वैकल्पिक डिक्शनरी. किसी कुंजी से पूरी तरह मेल खाने वाले नामों वाली संग्रह एंट्री का नाम बदलकर, वैल्यू के तौर पर सेट कर दिया जाएगा. ऐसा, डायरेक्ट्री प्रीफ़िक्स अडजस्टमेंट से पहले किया जाएगा. इसका इस्तेमाल उन संग्रहों को निकालने के लिए किया जा सकता है जिनमें यूनिकोड फ़ाइल नाम नहीं हैं या जिनमें ऐसी फ़ाइलें हैं जो केस-इनसेंसिटिव फ़ाइल सिस्टम पर एक ही पाथ में निकाली जाएंगी.

execute

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

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

पैरामीटर

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

extension_metadata

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

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

पैरामीटर

पैरामीटर ब्यौरा
root_module_direct_deps sequence of strings; or string; or None; default = 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 sequence of strings; or string; or None; default = 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; or Label; or path; ज़रूरी है
रिपॉज़िटरी डायरेक्ट्री के हिसाब से, बनाई जाने वाली फ़ाइल का पाथ.
content डिफ़ॉल्ट = ''
वह कॉन्टेंट जिसे फ़ाइल में जोड़ना है. यह डिफ़ॉल्ट रूप से खाली होता है.
executable default = True
बनाई गई फ़ाइल पर, 'चलाया जा सकता है' फ़्लैग को डिफ़ॉल्ट रूप से 'सही' पर सेट करें.
legacy_utf8 default = True
फ़ाइल के कॉन्टेंट को UTF-8 में एन्कोड करें. यह डिफ़ॉल्ट रूप से 'सही' होता है. आने वाले वर्शन में, डिफ़ॉल्ट पैरामीटर बदल जाएगा और यह पैरामीटर हट जाएगा.

is_dev_dependency

bool module_ctx.is_dev_dependency(tag)

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

पैरामीटर

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

is_isolated

bool module_ctx.is_isolated

क्या एक्सटेंशन के इस खास इस्तेमाल के लिए isolate = True की जानकारी दी गई थी और इसलिए, इसे अन्य सभी इस्तेमाल से अलग रखा गया है.

मॉड्यूल

list module_ctx.modules

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

os

repository_os module_ctx.os

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

पाथ

path module_ctx.path(path)

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

पैरामीटर

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

पढ़ा गया

string module_ctx.read(path)

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

पैरामीटर

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

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

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

कौनसा

path module_ctx.which(program)

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

पैरामीटर

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