मॉड्यूल_टैब

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

root_module_has_non_dev_dependency

bool module_ctx.root_module_has_non_dev_dependency

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

कौनसा

path module_ctx.which(program)

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

पैरामीटर

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