मॉड्यूल_टैब

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है किसी समस्या की शिकायत करें सोर्स देखें रात · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है मॉड्यूल एक्सटेंशन का कॉन्टेक्स्ट, जिसमें हेल्पर फ़ंक्शन और डिपेंडेंसी ग्राफ़ में ज़रूरी टैग के बारे में जानकारी शामिल है. मॉड्यूल एक्सटेंशन बनाते समय, आपको implementation फ़ंक्शन में आर्ग्युमेंट के तौर पर एकModul_ctx ऑब्जेक्ट मिलता है.

सदस्य

डाउनलोड करें

struct module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, *, integrity='')

दिए गए यूआरएल के आउटपुट पाथ पर एक फ़ाइल डाउनलोड करता है और success वाला एक स्ट्रक्चर देता है. यह एक फ़्लैग होता है, जो डाउनलोड पूरा होने पर true होता है. साथ ही, sha256 और integrity फ़ील्ड वाली फ़ाइल का हैश करता है.

पैरामीटर

पैरामीटर ब्यौरा
url string; या स्ट्रिंग को दोहराया जा सकता है; ज़रूरी है
एक ही फ़ाइल का रेफ़रंस देने वाले डुप्लीकेट यूआरएल की सूची.
output string; या लेबल; या पाथ; डिफ़ॉल्ट ''
है रिपॉज़िटरी डायरेक्ट्री से मिलता-जुलता आउटपुट फ़ाइल पाथ.
sha256 डिफ़ॉल्ट रूप से ''
है डाउनलोड की गई फ़ाइल का अनुमानित SHA-256 हैश. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. रिमोट फ़ाइलों में बदलाव हो सकता है, इसलिए SHA-256 को हटा देना सुरक्षा के लिए जोखिम हो सकता है. इस फ़ील्ड को छोड़ने से आपका बिल्ड नॉन-हर्मेटिक हो जाएगा. डेवलपमेंट को आसान बनाना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट किया जाना चाहिए.
executable डिफ़ॉल्ट रूप से False
है बनाई गई फ़ाइल पर एक्ज़ीक्यूटेबल फ़्लैग सेट करें, जो डिफ़ॉल्ट रूप से 'गलत' पर सेट होता है.
allow_fail डिफ़ॉल्ट रूप से 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; या स्ट्रिंग को दोहराया जा सकता है; ज़रूरी है
एक ही फ़ाइल का रेफ़रंस देने वाले डुप्लीकेट यूआरएल की सूची.
output string; या लेबल; या पाथ; डिफ़ॉल्ट ''
है उस डायरेक्ट्री का पाथ जहां संग्रह को अनपैक किया जाएगा. यह पाथ, रिपॉज़िटरी डायरेक्ट्री से मिलता-जुलता होगा.
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" या ".tbz" बताएं. यहां.
stripPrefix डिफ़ॉल्ट रूप से ''
है निकाली गई फ़ाइलों से निकालने के लिए एक डायरेक्ट्री प्रीफ़िक्स. कई संग्रह में एक शीर्ष-स्तरीय निर्देशिका होती है जिसमें संग्रह की सभी फ़ाइलें होती हैं. build_file में, इस प्रीफ़िक्स को बार-बार बताने के बजाय, इस फ़ील्ड का इस्तेमाल करके निकाली गई फ़ाइलों से इसे हटाया जा सकता है.
allow_fail डिफ़ॉल्ट रूप से False
है अगर यह नीति सेट की जाती है, तो सफल न होने वाले डाउनलोड के लिए गड़बड़ी बढ़ाने के बजाय, रिटर्न वैल्यू में गड़बड़ी बताएं
canonical_id डिफ़ॉल्ट रूप से ''
है अगर यह नीति सेट की गई है, तो कैश मेमोरी हिट को उन मामलों में सीमित करें जहां फ़ाइल को उसी कैननिकल आईडी के साथ कैश मेमोरी में जोड़ा गया था
auth डिफ़ॉल्ट रूप से {}
है कुछ यूआरएल के लिए, पुष्टि करने की जानकारी देने वाला ऐसा डिक्शनरी जो ज़रूरी नहीं है.
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)

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

पैरामीटर

पैरामीटर ब्यौरा
root_module_direct_deps स्ट्रिंग का सीक्वेंस; या स्ट्रिंग; या None; डिफ़ॉल्ट None
है डेटा स्टोर करने की उन जगहों के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल के लिए डायरेक्ट डिपेंडेंसी मानता है. अगर रूट मॉड्यूल में डेटा स्टोर करने की अतिरिक्त जगहें इंपोर्ट की जाती हैं या use_repo के ज़रिए ये सभी डेटा स्टोर करने की जगह इंपोर्ट नहीं की जाती हैं, तो एक्सटेंशन का आकलन होने के दौरान, Bagel एक चेतावनी और समाधान का निर्देश प्रिंट करेगा.

अगर root_module_direct_deps और root_module_direct_dev_deps में से एक तय किया गया है, तो दूसरा भी तय होना चाहिए. इन दो पैरामीटर के ज़रिए तय की गई सूचियां अलग-अलग होनी चाहिए.

root_module_direct_deps और root_module_direct_dev_deps में से किसी एक को खास वैल्यू "all" पर सेट किया जा सकता है. इसे ऐसे माना जाता है कि एक्सटेंशन से जनरेट हुए सभी डेटा स्टोर करने की जगहों के नाम वाली सूची को वैल्यू के तौर पर सेट किया गया हो.

root_module_direct_dev_deps स्ट्रिंग का सीक्वेंस; या स्ट्रिंग; या None; डिफ़ॉल्ट None
है डेटा स्टोर करने की उन जगहों के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल के लिए डायरेक्ट डेवलपर डिपेंडेंसी मानता है. अगर रूट मॉड्यूल अतिरिक्त डेटा स्टोर करने की जगहों को इंपोर्ट करता है या use_extension(..., dev_dependency = True) के साथ बनाए गए एक्सटेंशन प्रॉक्सी पर, use_repo के ज़रिए ये सभी डेटा स्टोर करने की जगह इंपोर्ट नहीं करता है, तो एक्सटेंशन का आकलन होने के दौरान, Bagel एक चेतावनी और सुधार का निर्देश प्रिंट करेगा.

अगर 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; या लेबल; या पाथ; ज़रूरी है
रिपॉज़िटरी डायरेक्ट्री के हिसाब से, फ़ाइल बनाने का पाथ.
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

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

os

repository_os module_ctx.os

सिस्टम से जानकारी ऐक्सेस करने का निर्देश.

पाथ

path module_ctx.path(path)

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

पैरामीटर

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

पढ़ा गया

string module_ctx.read(path)

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

पैरामीटर

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

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 को वापस किया जा सकता है.