मॉड्यूल_टैब

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

extension_metadata

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

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

पैरामीटर

पैरामीटर ब्यौरा
root_module_direct_deps sequence of strings; or string; or 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; डिफ़ॉल्ट = कोई नहीं
डेटा स्टोर करने की उन जगहों के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल की डायरेक्ट डेवलपर डिपेंडेंसी मानता है. अगर रूट मॉड्यूल अतिरिक्त रिपॉज़िटरी इंपोर्ट करता है या use_repo की मदद से बनाए गए एक्सटेंशन प्रॉक्सी पर 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 डिफ़ॉल्ट = 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; 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; डिफ़ॉल्ट = ''
स्ट्रिंग जिसमें फ़ेच की प्रोग्रेस की मौजूदा स्थिति बताई गई है

कौनसा

path module_ctx.which(program)

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

पैरामीटर

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