मॉड्यूल एक्सटेंशन का कॉन्टेक्स्ट, जिसमें हेल्पर फ़ंक्शन और डिपेंडेंसी ग्राफ़ में काम के टैग की जानकारी शामिल होती है. मॉड्यूल एक्सटेंशन बनाने पर, आपको implementation
फ़ंक्शन के आर्ग्युमेंट के तौर पर module_ctx ऑब्जेक्ट मिलता है.
सदस्य
- डाउनलोड करें
- download_and_extract
- execute
- extension_metadata
- फ़ाइल
- getenv
- is_dev_dependency
- मॉड्यूल
- os
- पाथ
- read
- report_progress
- root_module_has_non_dev_dependency
- स्मार्टवॉच
- which
डाउनलोड करें
unknown module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)दिए गए यूआरएल के लिए, आउटपुट पाथ में फ़ाइल डाउनलोड करता है. साथ ही,
success
वाला स्ट्रक्चर दिखाता है. यह एक फ़्लैग होता है, जो true
होता है, अगर डाउनलोड पूरा हो जाता है. अगर डाउनलोड पूरा हो जाता है, तो sha256
और integrity
फ़ील्ड के साथ फ़ाइल का हैश दिखाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
url
|
स्ट्रिंग या स्ट्रिंग की Iterable वैल्यू;
ज़रूरी है एक ही फ़ाइल का रेफ़रंस देने वाले मिरर यूआरएल की सूची. |
output
|
स्ट्रिंग; या लेबल; या पाथ;
डिफ़ॉल्ट रूप से '' होता है रिपॉज़िटरी डायरेक्ट्री के हिसाब से, आउटपुट फ़ाइल का पाथ. |
sha256
|
डिफ़ॉल्ट तौर पर, '' डाउनलोड की गई फ़ाइल का अनुमानित SHA-256 हैश. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. रिमोट फ़ाइलों में बदलाव हो सकता है. इसलिए, SHA-256 को हटा देना सुरक्षा के लिहाज़ से जोखिम भरा हो सकता है. इस फ़ील्ड को हटाने पर, आपका बिल्ड पूरी तरह से सुरक्षित नहीं रहेगा. डेवलपमेंट को आसान बनाना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट किया जाना चाहिए. |
executable
|
डिफ़ॉल्ट रूप से False होता है बनाई गई फ़ाइल पर, 'चलाया जा सकता है' फ़्लैग सेट करें. यह डिफ़ॉल्ट रूप से गलत होता है. |
allow_fail
|
डिफ़ॉल्ट रूप से False पर सेट होता है अगर सेट किया जाता है, तो डाउनलोड न हो पाने की गड़बड़ी दिखाने के बजाय, रिटर्न वैल्यू में गड़बड़ी की जानकारी दें |
canonical_id
|
डिफ़ॉल्ट तौर पर '' है अगर सेट किया गया है, तो कैश मेमोरी में हिट करने की सुविधा को सिर्फ़ उन मामलों तक सीमित करें जहां फ़ाइल को कैश मेमोरी में उसी कैननिकल आईडी के साथ जोड़ा गया था |
auth
|
डिफ़ॉल्ट {} है यह एक वैकल्पिक डिक्शनरी है, जिसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी गई है. |
headers
|
डिफ़ॉल्ट {} है सभी यूआरएल के लिए http हेडर की जानकारी देने वाली वैकल्पिक डिक्शनरी. |
integrity
|
डिफ़ॉल्ट रूप से '' सब-सोर्स इंटिग्रिटी फ़ॉर्मैट में, डाउनलोड की गई फ़ाइल का अनुमानित चेकसम. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को हटाना सुरक्षा के लिहाज़ से जोखिम भरा है, क्योंकि रिमोट फ़ाइलों में बदलाव हो सकता है. इस फ़ील्ड को हटाने पर, आपका बिल्ड पूरी तरह से सुरक्षित नहीं रहेगा. डेवलपमेंट को आसान बनाने के लिए, इसे सेट करना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट करना चाहिए. |
block
|
True डिफ़ॉल्ट हैअगर कॉल को 'गलत है' पर सेट किया जाता है, तो कॉल तुरंत वापस आ जाता है. साथ ही, सामान्य रिटर्न वैल्यू के बजाय, यह सिर्फ़ एक तरीके वाले वेट() का इस्तेमाल करके टोकन दिखाता है. यह तरीके, डाउनलोड पूरा होने तक ब्लॉक हो जाता है और सामान्य रिटर्न वैल्यू दिखाता है या सामान्य वैल्यू दिखाता है. |
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
|
स्ट्रिंग या स्ट्रिंग की 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
|
डिफ़ॉल्ट {} है यह एक वैकल्पिक डिक्शनरी है, जिसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी गई है. |
headers
|
डिफ़ॉल्ट {} है सभी यूआरएल के लिए http हेडर की जानकारी देने वाली वैकल्पिक डिक्शनरी. |
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_dev_deps
|
स्ट्रिंग या स्ट्रिंग या None का क्रम;
डिफ़ॉल्ट तौर पर None उन रिपॉज़िटरी के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल की सीधे तौर पर डिवेलपर डिपेंडेंसी मानता है. अगर रूट मॉड्यूल, use_extension(..., dev_dependency = True) से बनाए गए एक्सटेंशन प्रॉक्सी पर use_repo के ज़रिए अतिरिक्त रिपॉज़िटरी इंपोर्ट करता है या इन सभी रिपॉज़िटरी को इंपोर्ट नहीं करता है, तो एक्सटेंशन का आकलन करने पर Bazel एक चेतावनी प्रिंट करेगा. साथ ही, उपयोगकर्ता को use_repo कॉल को अपने-आप ठीक करने के लिए bazel mod tidy चलाने का निर्देश देगा. अगर
|
reproducible
|
bool;
डिफ़ॉल्ट रूप से यह False स्टेट है कि यह मॉड्यूल एक्सटेंशन पूरी तरह से दोबारा बनाया जा सकता है. इसलिए, इसे lockfile में सेव नहीं किया जाना चाहिए. |
फ़ाइल
None
module_ctx.file(path, content='', executable=True, legacy_utf8=True)
दिए गए कॉन्टेंट के साथ, रिपॉज़िटरी डायरेक्ट्री में एक फ़ाइल जनरेट करता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
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
|
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, *, watch='auto')फ़ाइल सिस्टम पर मौजूद किसी फ़ाइल के कॉन्टेंट को पढ़ता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
path
|
स्ट्रिंग; या लेबल; या पाथ;
ज़रूरी है उस फ़ाइल का पाथ जिसे पढ़ना है. |
watch
|
डिफ़ॉल्ट रूप से, 'auto' फ़ाइल को देखना है या नहीं. यह 'yes', 'no' या 'auto' स्ट्रिंग हो सकती है. 'yes' का इस्तेमाल करने का मतलब है कि watch() का तरीका तुरंत लागू हो जाएगा. 'no' का इस्तेमाल करने पर, फ़ाइल को देखने की कोशिश नहीं की जाएगी. 'auto' का इस्तेमाल करने पर, फ़ाइल को सिर्फ़ तब देखा जाएगा, जब ऐसा करना कानूनी हो. ज़्यादा जानकारी के लिए, watch() दस्तावेज़ देखें.
|
report_progress
None
module_ctx.report_progress(status='')
इस रिपॉज़िटरी या मॉड्यूल एक्सटेंशन को फ़ेच करने की प्रोग्रेस की स्थिति अपडेट करता है
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
status
|
स्ट्रिंग;
डिफ़ॉल्ट तौर पर '' है फ़ेच की प्रोग्रेस की मौजूदा स्थिति बताने वाली स्ट्रिंग |
root_module_has_non_dev_dependency
bool module_ctx.root_module_has_non_dev_dependencyक्या रूट मॉड्यूल, इस एक्सटेंशन का इस्तेमाल नॉन-डेवलपर डिपेंडेंसी के तौर पर करता है.
देखें
None
module_ctx.watch(path)
Bazel को दिए गए पाथ में हुए बदलावों को देखने के लिए कहता है. भले ही, वह पाथ मौजूद हो या नहीं या वह फ़ाइल हो या डायरेक्ट्री. फ़ाइल या डायरेक्ट्री में कोई भी बदलाव करने पर, इस रिपॉज़िटरी या मॉड्यूल एक्सटेंशन को अमान्य कर दिया जाएगा. साथ ही, अगली बार इसे फिर से फ़ेच किया जाएगा या इसका फिर से आकलन किया जाएगा."बदलाव" में, फ़ाइल के कॉन्टेंट में किए गए बदलाव शामिल होते हैं (अगर पाथ एक फ़ाइल है); अगर पाथ एक फ़ाइल था, लेकिन अब वह डायरेक्ट्री है या अब पाथ है, लेकिन मौजूदा पाथ शुरू या बंद होता है. ध्यान दें कि अगर पाथ कोई डायरेक्ट्री है, तो इसमें डायरेक्ट्री में मौजूद किसी भी फ़ाइल में किए गए बदलाव शामिल नहीं होते. इसके लिए, path.readdir()
का इस्तेमाल करें.
ध्यान दें कि फ़िलहाल फ़ेच किए जा रहे रेपो या मौजूदा मॉड्यूल एक्सटेंशन की काम करने वाली डायरेक्ट्री के अंदर पाथ को देखने की कोशिश करने पर गड़बड़ी दिखेगी. अगर कोई मॉड्यूल एक्सटेंशन, मौजूदा Bazel फ़ाइल फ़ोल्डर के बाहर का कोई पाथ देखने की कोशिश करता है, तो भी गड़बड़ी का मैसेज दिखेगा.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
path
|
स्ट्रिंग; या लेबल; या पाथ;
ज़रूरी देखने के लिए फ़ाइल का पाथ. |
कौनसा
path module_ctx.which(program)इससे उस प्रोग्राम का पाथ मिलता है. अगर पाथ में कोई ऐसा प्रोग्राम नहीं है, तो None दिखता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
program
|
ज़रूरी पाथ में ढूंढने के लिए प्रोग्राम. |
None
को वापस किया जा सकता है.