implementation
फ़ंक्शन में आर्ग्युमेंट के तौर पर एकModul_ctx ऑब्जेक्ट मिलता है.
सदस्य
- डाउनलोड करें
- download_and_extract
- लागू करें
- extension_metadata
- फ़ाइल
- is_dev_dependency
- मॉड्यूल
- ओएस
- पाथ
- पढ़ें
- report_progress
- root_module_has_non_dev_dependency
- कौनसा
डाउनलोड करें
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
|
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
|
डिफ़ॉल्ट = '' डाउनलोड की गई फ़ाइल का संग्रह टाइप. डिफ़ॉल्ट रूप से, संग्रह का टाइप, यूआरएल के फ़ाइल एक्सटेंशन से तय होता है. अगर फ़ाइल का कोई एक्सटेंशन नहीं है, तो साफ़ तौर पर "zip", " Jar", "var", "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 = {} एक्सट्रैक्शन के दौरान नाम बदलने वाली फ़ाइलों के बारे में बताने वाला एक वैकल्पिक डिक्शनरी. किसी कुंजी से पूरी तरह मेल खाने वाले नामों वाली संग्रह एंट्री का नाम बदलकर, वैल्यू के तौर पर सेट कर दिया जाएगा. ऐसा, डायरेक्ट्री प्रीफ़िक्स अडजस्टमेंट से पहले किया जाएगा. इसका इस्तेमाल, ऐसे संग्रह को एक्सट्रैक्ट करने के लिए किया जा सकता है जिनमें गैर-यूनिकोड फ़ाइल नाम होते हैं या जिनमें ऐसी फ़ाइलें होती हैं जो केस-इनसेंसिटिव फ़ाइल सिस्टम के उसी पाथ पर ले जाती हैं. |
लागू करना
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
|
डिफ़ॉल्ट = सही अगर 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
|
sequence of strings; or string; or None ;
डिफ़ॉल्ट = कोई नहींडेटा स्टोर करने की उन जगहों के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल के लिए डायरेक्ट डिपेंडेंसी मानता है. अगर रूट मॉड्यूल में डेटा स्टोर करने की अतिरिक्त जगहें इंपोर्ट की जाती हैं या use_repo के ज़रिए ये सभी डेटा स्टोर करने की जगह इंपोर्ट नहीं की जाती हैं, तो एक्सटेंशन का आकलन होने के दौरान, Bagel एक चेतावनी और समाधान का निर्देश प्रिंट करेगा.अगर
|
root_module_direct_dev_deps
|
sequence of strings; or string; or None ;
डिफ़ॉल्ट = कोई नहींडेटा स्टोर करने की उन जगहों के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल के लिए डायरेक्ट डेवलपर डिपेंडेंसी मानता है. अगर रूट मॉड्यूल अतिरिक्त डेटा स्टोर करने की जगहों को इंपोर्ट करता है या use_extension(..., dev_dependency = True) के साथ बनाए गए एक्सटेंशन प्रॉक्सी पर, use_repo के ज़रिए ये सभी डेटा स्टोर करने की जगह इंपोर्ट नहीं करता है, तो एक्सटेंशन का आकलन होने के दौरान, Baज़र चेतावनी और समाधान का निर्देश प्रिंट करेगा.अगर
|
फ़ाइल
None module_ctx.file(path, content='', executable=True, legacy_utf8=True)दिए गए कॉन्टेंट के साथ, रिपॉज़िटरी डायरेक्ट्री में फ़ाइल जनरेट करता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
path
|
string; or Label; or path ;
ज़रूरी हैरिपॉज़िटरी डायरेक्ट्री के हिसाब से, फ़ाइल बनाने का पाथ. |
content
|
डिफ़ॉल्ट = '' फ़ाइल की सामग्री बनाने के लिए, डिफ़ॉल्ट रूप से खाली होती है. |
executable
|
डिफ़ॉल्ट = सही बनाई गई फ़ाइल पर एक्ज़ीक्यूटेबल फ़्लैग को डिफ़ॉल्ट रूप से सही पर सेट करें. |
legacy_utf8
|
डिफ़ॉल्ट = सही फ़ाइल के कॉन्टेंट को 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; 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
को वापस किया जा सकता है.