मॉड्यूल एक्सटेंशन का कॉन्टेक्स्ट, जिसमें हेल्पर फ़ंक्शन और डिपेंडेंसी ग्राफ़ में काम के टैग की जानकारी शामिल होती है. मॉड्यूल एक्सटेंशन बनाते समय, आपको implementation
फ़ंक्शन में आर्ग्युमेंट के तौर पर एकModul_ctx ऑब्जेक्ट मिलता है.
सदस्य
- डाउनलोड करें
- download_and_extract
- लागू करें
- extension_metadata
- फ़ाइल
- getenv
- is_dev_dependency
- मॉड्यूल
- os
- path
- पढ़ें
- 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
|
string; या string में बदलाव करने की सुविधा हो;
ज़रूरी है एक ही फ़ाइल का रेफ़रंस देने वाले डुप्लीकेट यूआरएल की सूची. |
output
|
string; या Label; या path;
आउटपुट फ़ाइल का '' पाथ डिफ़ॉल्ट रूप से रिपॉज़िटरी डायरेक्ट्री के हिसाब से होता है. |
sha256
|
डाउनलोड की गई फ़ाइल का हैश SHA-256 डिफ़ॉल्ट तौर पर '' है. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. रिमोट फ़ाइलों में बदलाव हो सकता है. इसलिए, SHA-256 को हटा देना सुरक्षा के लिहाज़ से जोखिम भरा हो सकता है. इस फ़ील्ड को हटाने पर, आपका बिल्ड पूरी तरह से सुरक्षित नहीं रहेगा. डेवलपमेंट को आसान बनाने के लिए, इसे सेट करना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट करना चाहिए. |
executable
|
डिफ़ॉल्ट रूप से False होता है बनाई गई फ़ाइल पर, 'चलाया जा सकता है' फ़्लैग सेट करें. यह डिफ़ॉल्ट रूप से गलत होता है. |
allow_fail
|
डिफ़ॉल्ट रूप से False पर सेट होता है अगर सेट किया जाता है, तो डाउनलोड न हो पाने की गड़बड़ी दिखाने के बजाय, रिटर्न वैल्यू में गड़बड़ी की जानकारी दें |
canonical_id
|
'' डिफ़ॉल्ट हैअगर सेट हो, तो कैश मेमोरी हिट को उन मामलों में सीमित करें जहां फ़ाइल को उसी कैननिकल आईडी के साथ कैश मेमोरी में जोड़ा गया था |
auth
|
डिफ़ॉल्ट {} है यह एक वैकल्पिक डिक्शनरी है, जिसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी गई है. |
headers
|
डिफ़ॉल्ट {} है सभी यूआरएल के लिए http हेडर की जानकारी देने वाली वैकल्पिक डिक्शनरी. |
integrity
|
डिफ़ॉल्ट रूप से '' सब-सोर्स इंटिग्रिटी फ़ॉर्मैट में, डाउनलोड की गई फ़ाइल का अनुमानित चेकसम. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को हटाना सुरक्षा के लिहाज़ से जोखिम भरा है, क्योंकि रिमोट फ़ाइलों में बदलाव हो सकता है. इस फ़ील्ड को हटाने पर, आपका बिल्ड पूरी तरह से सुरक्षित नहीं रहेगा. डेवलपमेंट को आसान बनाने के लिए, इसे सेट करना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट करना चाहिए. |
block
|
डिफ़ॉल्ट तौर पर, यह True पर सेट होता है अगर इसे false पर सेट किया जाता है, तो कॉल तुरंत रिटर्न हो जाता है. साथ ही, सामान्य रिटर्न वैल्यू के बजाय, यह एक ही तरीके, wait() के साथ एक टोकन दिखाता है. यह टोकन, डाउनलोड पूरा होने तक ब्लॉक करता है और सामान्य रिटर्न वैल्यू दिखाता है या सामान्य तौर पर थ्रो करता है. |
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
|
स्ट्रिंग; या लेबल; या पाथ;
डिफ़ॉल्ट रूप से '' वह पाथ जहां संग्रह को अनपैक किया जाएगा. यह पाथ, रिपॉज़िटरी डायरेक्ट्री से लिया जाता है. |
sha256
|
डिफ़ॉल्ट तौर पर, '' डाउनलोड की गई फ़ाइल का अनुमानित SHA-256 हैश. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. SHA-256 को हटाना सुरक्षा के लिहाज़ से जोखिम भरा है, क्योंकि रिमोट फ़ाइलों में बदलाव हो सकता है. इस फ़ील्ड को छोड़ने से आपका बिल्ड नॉन-हर्मेटिक हो जाएगा. डेवलपमेंट को आसान बनाने के लिए, इसे सेट करना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट करना चाहिए. अगर हैश दिया गया है, तो पहले रिपॉज़िटरी कैश में उस हैश वाली फ़ाइल की जांच की जाएगी. अगर फ़ाइल कैश में नहीं मिली, तो ही उसे डाउनलोड करने की कोशिश की जाएगी. डाउनलोड होने के बाद, फ़ाइल को कैश मेमोरी में जोड़ दिया जाएगा. |
type
|
डिफ़ॉल्ट तौर पर, '' डाउनलोड की गई फ़ाइल का संग्रह टाइप. डिफ़ॉल्ट रूप से, यूआरएल के फ़ाइल एक्सटेंशन से यह तय होता है कि संग्रह किस तरह का है. अगर फ़ाइल का कोई एक्सटेंशन नहीं है, तो यहां "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" या ".deb" में से कोई एक एक्सटेंशन डालें. |
stripPrefix
|
'' एक डायरेक्ट्री प्रीफ़िक्स है, जो एक्सट्रैक्ट की गई फ़ाइलों से अलग करता है. कई संग्रहों में एक टॉप-लेवल डायरेक्ट्री होती है, जिसमें संग्रह की सभी फ़ाइलें होती हैं. build_file में इस प्रीफ़िक्स को बार-बार बताने के बजाय, इस फ़ील्ड का इस्तेमाल करके, निकाली गई फ़ाइलों से इसे हटाया जा सकता है.
|
allow_fail
|
डिफ़ॉल्ट रूप से False पर सेट होता है अगर सेट किया जाता है, तो डाउनलोड न हो पाने की गड़बड़ी दिखाने के बजाय, रिटर्न वैल्यू में गड़बड़ी की जानकारी दें |
canonical_id
|
'' डिफ़ॉल्ट हैअगर सेट हो, तो कैश मेमोरी हिट को उन मामलों में सीमित करें जहां फ़ाइल को उसी कैननिकल आईडी के साथ कैश मेमोरी में जोड़ा गया था |
auth
|
डिफ़ॉल्ट {} है यह एक वैकल्पिक डिक्शनरी है, जिसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी गई है. |
headers
|
डिफ़ॉल्ट {} है सभी यूआरएल के लिए http हेडर की जानकारी देने वाली वैकल्पिक डिक्शनरी. |
integrity
|
यह डिफ़ॉल्ट रूप से '' पर सेट होती हैडाउनलोड की गई फ़ाइल का अनुमानित चेकसम, सबरिसॉर्स इंटेग्रिटी फ़ॉर्मैट में. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को हटाने से सुरक्षा जोखिम हो सकता है, क्योंकि रिमोट फ़ाइलें बदल सकती हैं. इस फ़ील्ड को छोड़ने से आपका बिल्ड नॉन-हर्मेटिक हो जाएगा. डेवलपमेंट को आसान बनाने के लिए, इसे सेट करना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट करना चाहिए. |
rename_files
|
डिफ़ॉल्ट रूप से {} एक वैकल्पिक डिक्शनरी, जिसमें एक्सट्रैक्ट करने के दौरान फ़ाइलों के नाम बदलने के बारे में बताया गया है. किसी कीवर्ड से पूरी तरह मेल खाने वाले नाम वाली संग्रहित एंट्री का नाम, डायरेक्ट्री के प्रीफ़िक्स में बदलाव करने से पहले, वैल्यू पर बदल दिया जाएगा. इसका इस्तेमाल उन संग्रहों को निकालने के लिए किया जा सकता है जिनमें यूनिकोड फ़ाइल नाम नहीं हैं या जिनमें ऐसी फ़ाइलें हैं जो केस-इनसेंसिटिव फ़ाइल सिस्टम पर एक ही पाथ में निकाली जाएंगी. |
लागू करना
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
|
स्ट्रिंग या स्ट्रिंग या None का क्रम;
डिफ़ॉल्ट None हैउन रिपॉज़िटरी के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल की डायरेक्ट डिपेंडेंसी मानता है. अगर रूट मॉड्यूल, अतिरिक्त रिपॉज़िटरी इंपोर्ट करता है या use_repo के ज़रिए इन सभी रिपॉज़िटरी को इंपोर्ट नहीं करता है, तो एक्सटेंशन का आकलन करने पर Bazel एक चेतावनी प्रिंट करेगा. साथ ही, उपयोगकर्ता को use_repo कॉल को अपने-आप ठीक करने के लिए bazel mod tidy चलाने का निर्देश देगा. अगर अगर
|
root_module_direct_dev_deps
|
स्ट्रिंग या स्ट्रिंग या None का क्रम;
डिफ़ॉल्ट तौर पर None उन रिपॉज़िटरी के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल की सीधे तौर पर डिवेलपर डिपेंडेंसी मानता है. अगर रूट मॉड्यूल अतिरिक्त रिपॉज़िटरी इंपोर्ट करता है या use_extension(..., dev_dependency = True) के साथ बनाए गए एक्सटेंशन प्रॉक्सी पर use_repo के ज़रिए ये सभी डेटा स्टोर करने की जगह इंपोर्ट नहीं करता है, तो एक्सटेंशन का आकलन होने पर Basel एक चेतावनी प्रिंट कर देगा. साथ ही, उपयोगकर्ता को use_repo कॉल को अपने-आप ठीक करने के लिए bazel mod tidy चलाने के लिए निर्देश देगा. अगर
|
reproducible
|
bool;
डिफ़ॉल्ट तौर पर False होता है इससे पता चलता है कि इस मॉड्यूल एक्सटेंशन से, पूरी तरह से दोबारा बनाने की सुविधा मिलती है. इसलिए, इसे लॉकफ़ाइल में सेव नहीं किया जाना चाहिए. |
फ़ाइल
None
module_ctx.file(path, content='', executable=True, legacy_utf8=True)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
path
|
स्ट्रिंग; या लेबल; या पाथ;
ज़रूरी रिपॉज़िटरी डायरेक्ट्री के हिसाब से, बनाई जाने वाली फ़ाइल का पाथ. |
content
|
डिफ़ॉल्ट तौर पर, '' वह फ़ाइल होती है जिसका कॉन्टेंट बनाना है. यह डिफ़ॉल्ट रूप से खाली होती है. |
executable
|
डिफ़ॉल्ट तौर पर True है बनाई गई फ़ाइल पर, 'एक्सीक्यूटेबल' फ़्लैग सेट करें. यह डिफ़ॉल्ट रूप से 'सही' पर सेट होता है. |
legacy_utf8
|
डिफ़ॉल्ट True फ़ाइल के कॉन्टेंट को UTF-8 में बदलें. यह डिफ़ॉल्ट रूप से 'सही' पर सेट होता है. आने वाले वर्शन में, डिफ़ॉल्ट पैरामीटर बदल जाएगा और यह पैरामीटर हट जाएगा. |
getenv
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
os
repository_os module_ctx.os
पाथ
path module_ctx.path(path)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
path
|
स्ट्रिंग; या लेबल; या पाथ;
ज़रूरी है वह स्ट्रिंग, लेबल या पाथ जिससे पाथ बनाना है |
पढ़ा गया
string module_ctx.read(path, *, watch='auto')
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
path
|
string; या Label; या path;
फ़ाइल का वह पाथ जिससे पढ़ना ज़रूरी है . |
watch
|
डिफ़ॉल्ट रूप से, 'auto' फ़ाइल को देखना है या नहीं. यह 'yes', 'no' या 'auto' स्ट्रिंग हो सकती है. 'हां' पास करना watch() विधि को तुरंत शुरू करने के समान है; 'नहीं' में पास करना फ़ाइल को देखने का प्रयास नहीं करता; 'ऑटो' पास करना फ़ाइल को देखने का केवल तभी प्रयास करेगा, जब ऐसा करना कानूनी हो (ज़्यादा जानकारी के लिए 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)
"बदलाव" में, फ़ाइल के कॉन्टेंट में किए गए बदलाव शामिल हैं. ऐसा तब होता है, जब पाथ कोई फ़ाइल हो. अगर पाथ पहले फ़ाइल था और अब डायरेक्ट्री है या इसके उलट, तो भी "बदलाव" में शामिल किया जाता है. साथ ही, अगर पाथ मौजूद है या नहीं, तो भी "बदलाव" में शामिल किया जाता है. ध्यान दें कि अगर पाथ कोई डायरेक्ट्री है, तो इसमें डायरेक्ट्री में मौजूद किसी भी फ़ाइल में किए गए बदलाव शामिल नहीं होते. इसके लिए, path.readdir()
का इस्तेमाल करें.
ध्यान दें कि फ़िलहाल फ़ेच किए जा रहे रेपो या मौजूदा मॉड्यूल एक्सटेंशन की काम करने वाली डायरेक्ट्री के अंदर पाथ को देखने की कोशिश करने पर गड़बड़ी दिखेगी. अगर कोई मॉड्यूल एक्सटेंशन, मौजूदा Bazel फ़ाइल फ़ोल्डर के बाहर का कोई पाथ देखने की कोशिश करता है, तो भी गड़बड़ी का मैसेज दिखेगा.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
path
|
स्ट्रिंग; या लेबल; या पाथ;
ज़रूरी देखने के लिए फ़ाइल का पाथ. |
कौनसा
path module_ctx.which(program)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
program
|
ज़रूरी पाथ में ढूंढने के लिए प्रोग्राम. |
None
को वापस किया जा सकता है.