सदस्य
- all
- analysis_test_transition
- any
- archive_override
- aspect
- bazel_dep
- बाइंड करें
- bool
- configuration_field
- depset
- dict
- dir
- enumerate
- exec_group
- fail
- फ़्लोट
- getattr
- git_override
- hasattr
- हैश
- int
- len
- list
- local_path_override
- max
- मिनट
- मॉड्यूल
- module_extension
- multiple_version_override
- सेवा देने वाली कंपनी
- range
- register_execution_platforms()
- register_execution_platforms(dev_dependency)
- register_toolchains()
- register_toolchains(dev_dependency)
- repository_rule
- repr
- रिवर्स
- नियम
- चुनें
- single_version_override
- क्रम में लगाए गए
- str
- tag_class
- ट्यूपल
- टाइप
- use_extension
- use_repo
- विज़िबिलिटी
- फ़ाइल फ़ोल्डर
- zip
सभी
bool all(elements)अगर सभी एलिमेंट की वैल्यू 'सही' है या कलेक्शन खाली है, तो यह फ़ंक्शन 'सही' दिखाता है. bool फ़ंक्शन का इस्तेमाल करके, एलिमेंट को बूलियन में बदला जाता है.
all(["hello", 3, True]) == True all([-1, 0, 1]) == False
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
elements
|
ज़रूरी है एलिमेंट की स्ट्रिंग या कलेक्शन. |
analysis_test_transition
transition analysis_test_transition(settings)
विश्लेषण-टेस्ट नियम की डिपेंडेंसी पर लागू होने के लिए, कॉन्फ़िगरेशन ट्रांज़िशन बनाता है. यह ट्रांज़िशन सिर्फ़ उन नियमों के एट्रिब्यूट पर लागू किया जा सकता है जिनमें analysis_test = True
है. इस तरह के नियमों की सुविधाएं सीमित होती हैं. उदाहरण के लिए, उनके डिपेंडेंसी ट्री का साइज़ सीमित होता है. इसलिए, transition फ़ंक्शन का इस्तेमाल करके बनाए गए ट्रांज़िशन की तुलना में, इस फ़ंक्शन का इस्तेमाल करके बनाए गए ट्रांज़िशन के संभावित दायरे सीमित होते हैं.
इस फ़ंक्शन को मुख्य रूप से Analysis Test Framework की मुख्य लाइब्रेरी को आसान बनाने के लिए डिज़ाइन किया गया है. सबसे सही तरीके जानने के लिए, इसका दस्तावेज़ या इसे लागू करने का तरीका देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
settings
|
ज़रूरी है यह एक डिक्शनरी है, जिसमें कॉन्फ़िगरेशन सेटिंग के बारे में जानकारी होती है. इस कॉन्फ़िगरेशन ट्रांज़िशन से, इन सेटिंग को सेट किया जाना चाहिए. बटन, बिल्ड सेटिंग के लेबल होते हैं और वैल्यू, ट्रांज़िशन के बाद की नई वैल्यू होती हैं. अन्य सभी सेटिंग में कोई बदलाव नहीं हुआ है. इसका इस्तेमाल करके, उन खास कॉन्फ़िगरेशन सेटिंग के बारे में बताएं जिन्हें विश्लेषण टेस्ट पास करने के लिए सेट करना ज़रूरी है. |
कोई
bool any(elements)अगर कम से कम एक एलिमेंट की वैल्यू True है, तो True दिखाता है. bool फ़ंक्शन का इस्तेमाल करके, एलिमेंट को बूलियन में बदला जाता है.
any([-1, 0, 1]) == True any([False, 0, ""]) == False
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
elements
|
ज़रूरी है एलिमेंट की स्ट्रिंग या कलेक्शन. |
archive_override
None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)इससे पता चलता है कि यह डिपेंडेंसी, रजिस्ट्री के बजाय किसी खास जगह पर मौजूद संग्रहित फ़ाइल (zip, gzip वगैरह) से आनी चाहिए. यह डायरेक्टिव सिर्फ़ रूट मॉड्यूल में लागू होता है. दूसरे शब्दों में, अगर किसी मॉड्यूल का इस्तेमाल दूसरों के लिए डिपेंडेंसी के तौर पर किया जाता है, तो उसके ओवरराइड को अनदेखा कर दिया जाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
module_name
|
ज़रूरी है इस बदलाव को लागू करने के लिए, Bazel मॉड्यूल की डिपेंडेंसी का नाम. |
urls
|
string; or Iterable of strings ;
ज़रूरी हैसंग्रह के यूआरएल; ये http(s):// या file:// यूआरएल हो सकते हैं. |
integrity
|
डिफ़ॉल्ट = '' सब-सोर्स इंटिग्रिटी फ़ॉर्मैट में, संग्रह फ़ाइल का अनुमानित चेकसम. |
strip_prefix
|
डिफ़ॉल्ट = '' निकाली गई फ़ाइलों से हटाने के लिए डायरेक्ट्री प्रीफ़िक्स. |
patches
|
Iterable of strings ;
default = []इस मॉड्यूल के लिए लागू करने के लिए, पैच फ़ाइलों पर लेबल की सूची. पैच फ़ाइलें, टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. ये सूची के क्रम में लागू होते हैं. |
patch_cmds
|
Iterable of strings ;
default = []पैच लागू होने के बाद, Linux/Macos पर लागू किए जाने वाले Bash निर्देशों का क्रम. |
patch_strip
|
डिफ़ॉल्ट = 0 यह यूनिक्स पैच के --strip आर्ग्युमेंट जैसा ही है. |
आसपेक्ट
Aspect aspect(implementation, attr_aspects=[], attrs=None, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None)नया आसपेक्ट रेशियो बनाता है. इस फ़ंक्शन का नतीजा, ग्लोबल वैल्यू में सेव होना चाहिए. ज़्यादा जानकारी के लिए, कृपया एस्पेक्ट के बारे में जानकारी देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
implementation
|
ज़रूरी है यह एक Starlark फ़ंक्शन है, जो इस ऐस्पेक्ट को लागू करता है. इसमें दो पैरामीटर होते हैं: टारगेट (वह टारगेट जिस पर ऐस्पेक्ट लागू किया जाता है) और ctx (वह नियम कॉन्टेक्स्ट जिससे टारगेट बनाया जाता है). टारगेट के एट्रिब्यूट, ctx.rule फ़ील्ड के ज़रिए उपलब्ध होते हैं. विश्लेषण के दौरान, इस फ़ंक्शन का आकलन किया जाता है. ऐसा, टारगेट में किसी एस्पेक्ट के हर ऐप्लिकेशन के लिए किया जाता है.
|
attr_aspects
|
sequence of strings ;
default = []एट्रिब्यूट के नामों की सूची. यह ऐस्पेक्ट, इन नामों वाले टारगेट के एट्रिब्यूट में बताई गई डिपेंडेंसी के साथ प्रॉपगेट होता है. यहां सामान्य वैल्यू में deps और exports शामिल हैं. सूची में एक स्ट्रिंग "*" भी शामिल हो सकती है, ताकि किसी टारगेट की सभी डिपेंडेंसी के साथ प्रॉपेगेट किया जा सके.
|
attrs
|
dict; or None ;
default = Noneएक डिक्शनरी, जिसमें आसपेक्ट के सभी एट्रिब्यूट की जानकारी होती है. यह किसी एट्रिब्यूट के नाम को `attr.label` या `attr.string` जैसे एट्रिब्यूट ऑब्जेक्ट से मैप करता है. attr मॉड्यूल देखें. आसपेक्ट एट्रिब्यूट, लागू करने वाले फ़ंक्शन के लिए ctx पैरामीटर के फ़ील्ड के तौर पर उपलब्ध होते हैं.
साफ़ तौर पर एट्रिब्यूट की जानकारी देने वाले एट्रिब्यूट का टाइप |
required_providers
|
डिफ़ॉल्ट = [] इस एट्रिब्यूट की मदद से, ऐसेसपेक्ट को सिर्फ़ उन टारगेट तक सीमित किया जा सकता है जिनके नियमों में, ज़रूरी सेवा देने वाली कंपनियों का विज्ञापन किया जाता है. वैल्यू, सेवा देने वाली कंपनियों की सूची होनी चाहिए. इसमें सेवा देने वाली कंपनियों की सूची या अलग-अलग कंपनियों की जानकारी शामिल हो सकती है, लेकिन दोनों नहीं. उदाहरण के लिए, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] मान्य वैल्यू है, जबकि [FooInfo, BarInfo, [BazInfo, QuxInfo]] मान्य नहीं है.नेस्ट नहीं की गई सेवा देने वाली कंपनियों की सूची, अपने-आप एक सूची में बदल जाएगी. इसका मतलब है कि किसी नियम (उदाहरण के लिए, |
required_aspect_providers
|
डिफ़ॉल्ट = [] इस एट्रिब्यूट की मदद से, इस एस्पेक्ट को दूसरे एस्पेक्ट की जांच करने की अनुमति मिलती है. वैल्यू, सेवा देने वाली कंपनियों की सूची होनी चाहिए. इसमें सेवा देने वाली कंपनियों की सूची या अलग-अलग कंपनियों की जानकारी शामिल हो सकती है, लेकिन दोनों नहीं. उदाहरण के लिए, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] मान्य वैल्यू है, जबकि [FooInfo, BarInfo, [BazInfo, QuxInfo]] मान्य नहीं है.नेस्ट नहीं की गई सेवा देने वाली कंपनियों की सूची, अपने-आप एक सूची में बदल जाएगी. इसका मतलब है कि किसी दूसरे पहलू (जैसे, |
provides
|
डिफ़ॉल्ट = [] सेवा देने वाली उन कंपनियों की सूची जिन्हें लागू करने वाले फ़ंक्शन को दिखाना चाहिए. अगर लागू करने वाले फ़ंक्शन में, यहां दी गई सूची में शामिल किसी भी तरह के प्रोवाइडर को रिटर्न वैल्यू से हटा दिया जाता है, तो यह गड़बड़ी होती है. हालांकि, लागू करने वाले फ़ंक्शन से ऐसे अन्य प्रोवाइडर भी मिल सकते हैं जो यहां नहीं दिए गए हैं. सूची का हर एलिमेंट, |
requires
|
sequence of Aspects ;
default = []इस एस्पेक्ट से पहले, प्रॉपगेट किए जाने वाले एस्पेक्ट की सूची. |
fragments
|
sequence of strings ;
default = []उन कॉन्फ़िगरेशन फ़्रैगमेंट के नामों की सूची जिनकी टारगेट कॉन्फ़िगरेशन में, ऐसेट को ज़रूरत होती है. |
host_fragments
|
sequence of strings ;
default = []कॉन्फ़िगरेशन के उन फ़्रैगमेंट के नामों की सूची जिनकी होस्ट कॉन्फ़िगरेशन में, ऐस्पेक्ट को ज़रूरत होती है. |
toolchains
|
sequence ;
default = []अगर सेट किया गया है, तो इस नियम के लिए ज़रूरी टूलचेन का सेट. इस सूची में, स्ट्रिंग, लेबल या StarlarkToolchainTypeApi ऑब्जेक्ट, किसी भी कॉम्बिनेशन में शामिल हो सकते हैं. मौजूदा प्लैटफ़ॉर्म की जांच करके टूलचेन ढूंढे जाएंगे और ctx.toolchain के ज़रिए नियम लागू करने के लिए उपलब्ध कराए जाएंगे.
|
incompatible_use_toolchain_transition
|
default = False Deprecated, this is no longer in use and should be removed. |
doc
|
डिफ़ॉल्ट = '' दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले हिस्से की जानकारी. |
apply_to_generating_rules
|
डिफ़ॉल्ट = गलत अगर यह सही है, तो आस्पेक्ट को आउटपुट फ़ाइल पर लागू करने पर, वह आउटपुट फ़ाइल के जनरेटिंग नियम पर लागू होगा. उदाहरण के लिए, मान लें कि कोई एस्पेक्ट, एट्रिब्यूट `deps` के ज़रिए ट्रांज़िटिव तौर पर प्रसारित होता है और इसे टारगेट `alpha` पर लागू किया जाता है. मान लें कि `alpha` में `deps = [':beta_output']` है, जहां `beta_output` टारगेट `beta` का एलान किया गया आउटपुट है. मान लें कि `beta` में, `deps` में से एक टारगेट `charlie` है. अगर एस्पेक्ट के लिए `apply_to_generating_rules=True` है, तो एस्पेक्ट `alpha`, `beta`, और `charlie` के ज़रिए प्रसारित होगा. अगर यह False है, तो एस्पेक्ट सिर्फ़ `alpha` पर प्रसारित होगा. डिफ़ॉल्ट रूप से गलत. |
exec_compatible_with
|
sequence of strings ;
default = []एक्सीक्यूशन प्लैटफ़ॉर्म पर मौजूद उन पाबंदियों की सूची जो इस एस्पेक्ट के सभी इंस्टेंस पर लागू होती हैं. |
exec_groups
|
dict; or None ;
डिफ़ॉल्ट = कोई नहींएक्सीक्यूशन ग्रुप के नाम (स्ट्रिंग) की डायक्शनरी को exec_group s में बदलता है. अगर यह सेट है, तो एक ही इंस्टेंस में कई एक्सीक्यूशन प्लैटफ़ॉर्म पर ऐक्शन चलाने के लिए, आसपेक्ट को अनुमति मिलती है. ज़्यादा जानकारी के लिए, एक्सीक्यूशन ग्रुप का दस्तावेज़ देखें.
|
bazel_dep
None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)किसी दूसरे Bazel मॉड्यूल पर सीधे तौर पर निर्भरता का एलान करता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
ज़रूरी है डायरेक्ट डिपेंडेंसी के तौर पर जोड़े जाने वाले मॉड्यूल का नाम. |
version
|
default = '' मॉड्यूल का वह वर्शन जिसे सीधे डिपेंडेंसी के तौर पर जोड़ना है. |
max_compatibility_level
|
डिफ़ॉल्ट = -1 डायरेक्ट डिपेंडेंसी के तौर पर जोड़े जाने वाले मॉड्यूल के लिए, ज़्यादा से ज़्यादा compatibility_level इस्तेमाल किया जा सकता है. मॉड्यूल के वर्शन से पता चलता है कि कम से कम compatibility_level क्या है. साथ ही, अगर इस एट्रिब्यूट की वैल्यू नहीं दी गई है, तो ज़्यादा से ज़्यादा compatibility_level क्या है.
|
repo_name
|
डिफ़ॉल्ट = '' इस डिपेंडेंसी को दिखाने वाले बाहरी रिपॉज़िटरी का नाम. यह डिफ़ॉल्ट रूप से मॉड्यूल का नाम होता है. |
dev_dependency
|
डिफ़ॉल्ट = गलत अगर यह सही है, तो मौजूदा मॉड्यूल रूट मॉड्यूल न होने या `--ignore_dev_dependency` चालू होने पर, इस डिपेंडेंसी को अनदेखा कर दिया जाएगा. |
बाइंड
None bind(name, actual=None)
चेतावनी: bind()
का इस्तेमाल करने का सुझाव नहीं दिया जाता. इसकी समस्याओं और विकल्पों के बारे में ज़्यादा जानने के लिए, bind फ़ंक्शन को हटाने के बारे में सोचें लेख पढ़ें.
//external
पैकेज में किसी टारगेट को कोई दूसरा नाम देता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
ज़रूरी है '//external' में मौजूद लेबल, जो किसी दूसरे नाम के तौर पर काम करता है |
actual
|
string; or None ;
default = Noneवह असली लेबल जिसका दूसरा नाम दिया जाना है |
बूल
bool bool(x=False)bool टाइप के लिए कंस्ट्रक्टर. अगर ऑब्जेक्ट
None
, False
, खाली स्ट्रिंग (""
), संख्या 0
या खाली कलेक्शन (उदाहरण के लिए, ()
, []
) है, तो यह False
दिखाता है. अगर ऐसा नहीं है, तो यह True
दिखाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
default = False वह वैरिएबल जिसे बदलना है. |
configuration_field
LateBoundDefault configuration_field(fragment, name)label टाइप के एट्रिब्यूट के लिए, लेट-बाउंड डिफ़ॉल्ट वैल्यू का रेफ़रंस देता है. अगर वैल्यू तय करने से पहले, कॉन्फ़िगरेशन बनाने की ज़रूरत होती है, तो वैल्यू को 'लेट-बाउंड' कहा जाता है. इस एट्रिब्यूट की वैल्यू के तौर पर इस्तेमाल किए जाने वाले किसी भी एट्रिब्यूट की स्थिति 'निजी' होनी चाहिए.
इस्तेमाल का उदाहरण:
नियम एट्रिब्यूट तय करना:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
नियम लागू करने के दौरान ऐक्सेस करना:
def _rule_impl(ctx): foo_info = ctx.attr._foo ...
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
fragment
|
ज़रूरी है उस कॉन्फ़िगरेशन फ़्रैगमेंट का नाम जिसमें लेट-बाउंड वैल्यू शामिल है. |
name
|
ज़रूरी है कॉन्फ़िगरेशन फ़्रैगमेंट से पाने के लिए वैल्यू का नाम. |
depset
depset depset(direct=None, order="default", *, transitive=None)depset बनाता है.
direct
पैरामीटर, डिप्सेट के डायरेक्ट एलिमेंट की सूची है. वहीं, transitive
पैरामीटर, उन डिप्सेट की सूची है जिनके एलिमेंट, बनाए गए डिप्सेट के इनडायरेक्ट एलिमेंट बन जाते हैं. डिप्सेट को सूची में बदलने पर, एलिमेंट किस क्रम में दिखाए जाते हैं, यह order
पैरामीटर से तय होता है. ज़्यादा जानकारी के लिए, डेप्सेट की खास जानकारी देखें.
किसी डेपसेट के सभी एलिमेंट (डायरेक्ट और इनडायरेक्ट) एक ही तरह के होने चाहिए, जैसा कि एक्सप्रेशन type(x)
से मिलता है.
हैश-आधारित सेट का इस्तेमाल, बार-बार होने वाली गड़बड़ियों को हटाने के लिए किया जाता है. इसलिए, किसी डिपेंडेंसी सेट के सभी एलिमेंट को हैश किया जा सकता है. हालांकि, फ़िलहाल सभी कन्स्ट्रक्टर में इस इनवैरिएंट की जांच लगातार नहीं की जाती. लगातार जांच करने की सुविधा चालू करने के लिए, --incompatible_always_check_depset_elements फ़्लैग का इस्तेमाल करें. आने वाले समय में रिलीज़ होने वाले वर्शन में, यह सुविधा डिफ़ॉल्ट रूप से चालू रहेगी. समस्या 10313 देखें.
इसके अलावा, फ़िलहाल एलिमेंट में बदलाव नहीं किया जा सकता. हालांकि, आने वाले समय में इस पाबंदी को हटा दिया जाएगा.
बनाए गए डेपसेट का क्रम, उसके transitive
डेपसेट के क्रम के साथ काम करना चाहिए. "default"
ऑर्डर, किसी भी अन्य ऑर्डर के साथ काम करता है. अन्य सभी ऑर्डर, सिर्फ़ अपने साथ काम करते हैं.
पुराने सिस्टम के साथ काम करने की सुविधा/नए सिस्टम के साथ काम करने की सुविधा के बारे में जानकारी. फ़िलहाल, यह फ़ंक्शन पोज़िशनल items
पैरामीटर स्वीकार करता है. इसे बंद कर दिया गया है और आने वाले समय में इसे हटा दिया जाएगा. हटाने के बाद, direct
depset
फ़ंक्शन का एकमात्र पोज़िशनल पैरामीटर बन जाएगा. इसलिए, नीचे दिए गए दोनों कॉल एक जैसे हैं और आने वाले समय में भी काम करेंगे:
depset(['a', 'b'], transitive = [...]) depset(direct = ['a', 'b'], transitive = [...])
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
direct
|
sequence; or None ;
default = Noneकिसी डेपसेट के डायरेक्ट एलिमेंट की सूची. |
order
|
डिफ़ॉल्ट = "डिफ़ॉल्ट" नए डेपसेट के लिए ट्रैवर्सल की रणनीति. संभावित वैल्यू के लिए, यहां देखें. |
transitive
|
sequence of depsets; or None ;
default = Noneउन depset की सूची जिनके एलिमेंट, depset के इनडायरेक्ट एलिमेंट बन जाएंगे. |
dict
dict dict(pairs=[], **kwargs)वैकल्पिक पोज़िशनल आर्ग्युमेंट और कीवर्ड आर्ग्युमेंट के वैकल्पिक सेट से डिक्शनरी बनाता है. अगर एक ही कुंजी को कई बार दिया जाता है, तो आखिरी वैल्यू का इस्तेमाल किया जाएगा. कीवर्ड आर्ग्युमेंट की मदद से दी गई एंट्री, पोज़िशनल आर्ग्युमेंट की मदद से दी गई एंट्री के बाद आती हैं.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
pairs
|
default = [] कोई डिक्शनरी या ऐसा कलेक्शन जिसका हर एलिमेंट दो चीज़ों (की, वैल्यू) से बना हो. |
kwargs
|
ज़रूरी है अतिरिक्त एंट्री की डिक्शनरी. |
dir
list dir(x)स्ट्रिंग की सूची दिखाता है: पैरामीटर ऑब्जेक्ट के एट्रिब्यूट और तरीकों के नाम.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी है वह ऑब्जेक्ट जिसकी जांच करनी है. |
enumerate
list enumerate(list, start=0)यह इनपुट क्रम से इंडेक्स (int) और आइटम के साथ, पेयर (दो एलिमेंट वाले ट्यूपल) की सूची दिखाता है.
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
list
|
इनपुट क्रम ज़रूरी है. |
start
|
डिफ़ॉल्ट = 0 स्टार्ट इंडेक्स. |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[], copy_from_rule=False)एक एक्सीक्यूशन ग्रुप बनाता है. इसका इस्तेमाल, नियम लागू करने के दौरान किसी खास एक्सीक्यूशन प्लैटफ़ॉर्म के लिए कार्रवाइयां बनाने के लिए किया जा सकता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
toolchains
|
sequence ;
default = []इस एक्ज़ीक्यूशन ग्रुप के लिए ज़रूरी टूलचेन का सेट. इस सूची में, स्ट्रिंग, लेबल या StarlarkToolchainTypeApi ऑब्जेक्ट, किसी भी कॉम्बिनेशन में शामिल हो सकते हैं. |
exec_compatible_with
|
sequence of strings ;
default = []एक्सीक्यूशन प्लैटफ़ॉर्म पर पाबंदियों की सूची. |
copy_from_rule
|
डिफ़ॉल्ट = गलत अगर इसे 'सही' पर सेट किया जाता है, तो यह एक्सेक्यूट ग्रुप उस नियम के टूलचेन और पाबंदियों को इनहेरिट करता है जिससे यह ग्रुप जुड़ा है. किसी अन्य स्ट्रिंग पर सेट करने पर, गड़बड़ी का मैसेज दिखेगा. |
फ़ेल
None fail(msg=None, attr=None, *args)इसकी वजह से, गड़बड़ी के साथ फ़ंक्शन लागू नहीं हो पाता.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
msg
|
default = None Deprecated: use positional arguments instead. यह आर्ग्युमेंट, पहले पोज़िशन के आर्ग्युमेंट की तरह काम करता है. |
attr
|
string; or None ;
default = Noneअब काम नहीं करता. इसकी वजह से, गड़बड़ी के मैसेज में इस स्ट्रिंग वाला वैकल्पिक प्रीफ़िक्स जोड़ा जाता है. |
args
|
ज़रूरी है वैल्यू की सूची, जिसे debugPrint (यह डिफ़ॉल्ट रूप से str के बराबर होती है) के साथ फ़ॉर्मैट किया गया है और स्पेस के साथ जोड़ा गया है. यह सूची, गड़बड़ी के मैसेज में दिखती है. |
फ़्लोट
float float(x=unbound)x को फ़्लोट वैल्यू के तौर पर दिखाता है.
- अगर
x
पहले से ही फ़्लोट है, तोfloat
उसे बिना किसी बदलाव के दिखाता है. - अगर
x
एक बूल वैल्यू है, तोfloat
सही के लिए 1.0 और गलत के लिए 0.0 दिखाता है. - अगर
x
एक int है, तोfloat
, x के सबसे करीब की फ़्लोटिंग-पॉइंट वैल्यू दिखाता है. अगर वैल्यू बहुत बड़ी है, तो गड़बड़ी दिखती है. - अगर
x
कोई स्ट्रिंग है, तो यह फ़्लोटिंग-पॉइंट वाली मान्य लिटरल होनी चाहिए याNaN
,Inf
याInfinity
के बराबर होनी चाहिए. हालांकि, इसके लिए+
या-
चिह्न का इस्तेमाल करना ज़रूरी नहीं है.
float()
0.0 दिखाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
डिफ़ॉल्ट = अनबाउंड बदली जाने वाली वैल्यू. |
getattr
unknown getattr(x, name, default=unbound)अगर दिया गया नाम मौजूद है, तो स्ट्रक्चर का फ़ील्ड दिखाता है. अगर ऐसा नहीं है, तो यह
default
दिखाता है (अगर तय किया गया है) या गड़बड़ी का मैसेज दिखाता है. getattr(x, "foobar")
, x.foobar
के बराबर है.getattr(ctx.attr, "myattr") getattr(ctx.attr, "myattr", "mydefault")
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी वह स्ट्रक्चर जिसका एट्रिब्यूट ऐक्सेस किया जाता है. |
name
|
ज़रूरी है स्ट्रक्चर एट्रिब्यूट का नाम. |
default
|
default = unbound अगर स्ट्रक्चर में दिए गए नाम का कोई एट्रिब्यूट नहीं है, तो दिखाने के लिए डिफ़ॉल्ट वैल्यू. |
git_override
None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0)इससे पता चलता है कि किसी डिपेंडेंसी को Git डेटा स्टोर करने की जगह के किसी खास कमिट से लाना चाहिए. यह डायरेक्टिव सिर्फ़ रूट मॉड्यूल में लागू होता है. दूसरे शब्दों में, अगर किसी मॉड्यूल का इस्तेमाल दूसरों के लिए डिपेंडेंसी के तौर पर किया जाता है, तो उसके ओवरराइड को अनदेखा कर दिया जाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
module_name
|
ज़रूरी है इस बदलाव को लागू करने के लिए, Bazel मॉड्यूल की डिपेंडेंसी का नाम. |
remote
|
ज़रूरी है रिमोट Git डेटा स्टोर करने की जगह का यूआरएल. |
commit
|
डिफ़ॉल्ट = '' वह कमिट जिसे चेक आउट करना है. |
patches
|
Iterable of strings ;
default = []इस मॉड्यूल के लिए लागू करने के लिए, पैच फ़ाइलों पर लेबल की सूची. पैच फ़ाइलें, टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. ये सूची के क्रम में लागू होते हैं. |
patch_cmds
|
Iterable of strings ;
default = []पैच लागू होने के बाद, Linux/Macos पर लागू किए जाने वाले Bash निर्देशों का क्रम. |
patch_strip
|
डिफ़ॉल्ट = 0 यह यूनिक्स पैच के --strip आर्ग्युमेंट जैसा ही है. |
hasattr
bool hasattr(x, name)अगर ऑब्जेक्ट
x
में दिए गए name
का एट्रिब्यूट या तरीका है, तो True दिखाता है. ऐसा न होने पर False दिखाता है. उदाहरण:hasattr(ctx.attr, "myattr")
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी है वह ऑब्जेक्ट जिसकी जांच करनी है. |
name
|
ज़रूरी है एट्रिब्यूट का नाम. |
हैश
int hash(value)किसी स्ट्रिंग के लिए हैश वैल्यू दिखाता है. इसका हिसाब, Java के
String.hashCode()
के जैसे ही एल्गोरिदम का इस्तेमाल करके लगाया जाता है. जैसे: s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]फ़िलहाल, स्ट्रिंग के अलावा अन्य वैल्यू को हैश नहीं किया जा सकता.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
value
|
ज़रूरी हैश करने के लिए स्ट्रिंग वैल्यू. |
int
int int(x, base=unbound)x को पूर्णांक वैल्यू के तौर पर दिखाता है.
- अगर
x
पहले से ही int है, तोint
उसे बिना किसी बदलाव के दिखाता है. - अगर
x
बूल है, तोint
True के लिए 1 और False के लिए 0 दिखाता है. - अगर
x
एक स्ट्रिंग है, तो इसका फ़ॉर्मैट<sign><prefix><digits>
होना चाहिए.<sign>
,"+"
,"-"
या खाली हो (जिसे पॉज़िटिव के तौर पर समझा जाता है).<digits>
, 0 से लेकरbase
- 1 तक के अंकों का क्रम होता है. इसमें 10 से 35 तक के अंकों के तौर पर, a से z (या A से Z) अक्षरों का इस्तेमाल किया जाता है. अगरbase
2/8/16 है, तो<prefix>
ज़रूरी नहीं है और यह क्रमशः 0b/0o/0x (या इसके बराबर, 0B/0O/0X) हो सकता है; अगरbase
इन बेस या खास वैल्यू 0 के अलावा कोई दूसरी वैल्यू है, तो प्रीफ़िक्स खाली होना चाहिए. अगरbase
0 है, तो स्ट्रिंग को पूर्णांक के लिटरल के तौर पर समझा जाता है. इसका मतलब है कि प्रीफ़िक्स के इस्तेमाल के आधार पर, 2/8/10/16 में से कोई एक बेस चुना जाता है. अगरbase
0 है, तो किसी प्रीफ़िक्स का इस्तेमाल नहीं किया जाता. साथ ही, अगर एक से ज़्यादा अंक हैं, तो शुरुआती अंक 0 नहीं हो सकता. ऐसा ऑक्टल और दशमलव के बीच भ्रम से बचने के लिए किया जाता है. स्ट्रिंग से दिखाई गई संख्या का साइज़, int टाइप के लिए तय की गई सीमा के अंदर होना चाहिए. - अगर
x
कोई फ़्लोट है, तोint
फ़्लोट की पूर्णांक वैल्यू दिखाता है. साथ ही, वैल्यू को शून्य के आस-पास राउंड करता है. अगर x कोई फ़ाइनाइट वैल्यू (NaN या इनफ़िनिटी) नहीं है, तो गड़बड़ी का मैसेज दिखता है.
x
किसी दूसरे टाइप का है या वैल्यू कोई ऐसी स्ट्रिंग है जो ऊपर दिए गए फ़ॉर्मैट के मुताबिक नहीं है, तो यह फ़ंक्शन काम नहीं करता. Python के int
फ़ंक्शन के उलट, इस फ़ंक्शन में शून्य आर्ग्युमेंट इस्तेमाल नहीं किए जा सकते. साथ ही, स्ट्रिंग आर्ग्युमेंट के लिए अतिरिक्त खाली जगह इस्तेमाल नहीं की जा सकती.उदाहरण:
int("123") == 123 int("-123") == -123 int("+123") == 123 int("FF", 16) == 255 int("0xFF", 16) == 255 int("10", 0) == 10 int("-0x10", 0) == -16 int("-0x10", 0) == -16 int("123.456") == 123
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी है वह स्ट्रिंग जिसे बदलना है. |
base
|
डिफ़ॉल्ट = अनबाउंड यह वह आधार है जिसका इस्तेमाल स्ट्रिंग वैल्यू को समझने के लिए किया जाता है. डिफ़ॉल्ट रूप से, इसकी वैल्यू 10 होती है. यह वैल्यू 2 से 36 के बीच होनी चाहिए. इसके अलावा, x को पूर्णांक के तौर पर इस्तेमाल करने के लिए, इसे 0 पर सेट किया जा सकता है. अगर वैल्यू स्ट्रिंग नहीं है, तो यह पैरामीटर नहीं दिया जाना चाहिए.
|
len
int len(x)स्ट्रिंग, क्रम (जैसे, सूची या ट्यूपल), डिक्शनरी या किसी अन्य आइटम की लंबाई दिखाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी है वह वैल्यू जिसकी लंबाई रिपोर्ट करनी है. |
सूची
list list(x=[])यह फ़ंक्शन, दी गई वैल्यू के एलिमेंट वाली नई सूची दिखाता है.
list([1, 2]) == [1, 2] list((2, 3, 2)) == [2, 3, 2] list({5: "a", 2: "b", 4: "c"}) == [5, 2, 4]
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
default = [] वह ऑब्जेक्ट जिसे बदलना है. |
local_path_override
None local_path_override(module_name, path)इससे पता चलता है कि डिपेंडेंसी, लोकल डिस्क पर मौजूद किसी डायरेक्ट्री से होनी चाहिए. यह डायरेक्टिव सिर्फ़ रूट मॉड्यूल में लागू होता है. दूसरे शब्दों में, अगर किसी मॉड्यूल का इस्तेमाल दूसरों के लिए डिपेंडेंसी के तौर पर किया जाता है, तो उसके ओवरराइड को अनदेखा कर दिया जाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
module_name
|
ज़रूरी है इस बदलाव को लागू करने के लिए, Bazel मॉड्यूल की डिपेंडेंसी का नाम. |
path
|
ज़रूरी है उस डायरेक्ट्री का पाथ जहां यह मॉड्यूल मौजूद है. |
अधिकतम
unknown max(*args)दिए गए सभी आर्ग्युमेंट में से सबसे बड़ी वैल्यू दिखाता है. अगर सिर्फ़ एक आर्ग्युमेंट दिया गया है, तो यह खाली नहीं होना चाहिए.अगर एलिमेंट की तुलना नहीं की जा सकती (उदाहरण के लिए, स्ट्रिंग के साथ इंट) या कोई आर्ग्युमेंट नहीं दिया गया है, तो यह गड़बड़ी है.
max(2, 5, 4) == 5 max([5, 6, 3]) == 6
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
args
|
ज़रूरी है वे एलिमेंट जिनकी जांच करनी है. |
कम से कम
unknown min(*args)दिए गए सभी आर्ग्युमेंट में से सबसे छोटी वैल्यू दिखाता है. अगर सिर्फ़ एक आर्ग्युमेंट दिया जाता है, तो यह एक ऐसा आर्ग्युमेंट होना चाहिए जिसे बार-बार इस्तेमाल किया जा सके. अगर एलिमेंट की तुलना नहीं की जा सकती (उदाहरण के लिए, स्ट्रिंग के साथ int) या कोई आर्ग्युमेंट नहीं दिया गया है, तो यह गड़बड़ी है.
min(2, 5, 4) == 2 min([5, 6, 3]) == 3
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
args
|
ज़रूरी है वे एलिमेंट जिनकी जांच करनी है. |
मॉड्यूल
None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])मौजूदा Bazel repo से दिखाए गए Bazel मॉड्यूल की कुछ प्रॉपर्टी के बारे में बताता है. ये प्रॉपर्टी, मॉड्यूल के ज़रूरी मेटाडेटा (जैसे, नाम और वर्शन) होती हैं या मौजूदा मॉड्यूल और उस पर निर्भर मॉड्यूल के व्यवहार पर असर डालती हैं.
इसे ज़्यादा से ज़्यादा एक बार कॉल किया जाना चाहिए. इसे सिर्फ़ तब छोड़ा जा सकता है, जब यह मॉड्यूल रूट मॉड्यूल हो. जैसे, अगर यह किसी दूसरे मॉड्यूल पर निर्भर नहीं है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
default = '' मॉड्यूल का नाम. इसे सिर्फ़ तब छोड़ा जा सकता है, जब यह मॉड्यूल रूट मॉड्यूल हो. जैसे, अगर यह किसी दूसरे मॉड्यूल पर निर्भर नहीं है. मॉड्यूल के मान्य नाम में: 1) सिर्फ़ अंग्रेज़ी के छोटे अक्षर (a-z), अंक (0-9), बिंदु (.), हाइफ़न (-), और अंडरस्कोर (_) होने चाहिए; 2) नाम की शुरुआत अंग्रेज़ी के छोटे अक्षर से होनी चाहिए; 3) नाम के आखिर में अंग्रेज़ी का छोटा अक्षर या अंक होना चाहिए. |
version
|
डिफ़ॉल्ट = '' मॉड्यूल का वर्शन. इसे सिर्फ़ तब छोड़ा जा सकता है, जब यह मॉड्यूल रूट मॉड्यूल हो. जैसे, अगर यह किसी दूसरे मॉड्यूल पर निर्भर नहीं है. |
compatibility_level
|
डिफ़ॉल्ट = 0 मॉड्यूल के साथ काम करने की क्षमता का लेवल; जब भी कोई ऐसा बदलाव किया जाता है जो मॉड्यूल के साथ काम नहीं करता, तो इसकी वैल्यू बदल दी जानी चाहिए. यह SemVer के हिसाब से, मॉड्यूल का "मुख्य वर्शन" होता है. हालांकि, यह वर्शन स्ट्रिंग में एम्बेड नहीं होता, बल्कि एक अलग फ़ील्ड के तौर पर मौजूद होता है. अलग-अलग कंपैटिबिलिटी लेवल वाले मॉड्यूल, वर्शन रिज़ॉल्यूशन में ऐसे शामिल होते हैं जैसे कि वे अलग-अलग नाम वाले मॉड्यूल हों. हालांकि, आखिरी डिपेंडेंसी ग्राफ़ में एक ही नाम वाले, लेकिन अलग-अलग कंपैटिबिलिटी लेवल वाले कई मॉड्यूल शामिल नहीं हो सकते. ऐसा तब तक नहीं होगा, जब तक multiple_version_override लागू है. ज़्यादा जानकारी के लिए वहां जाएं.
|
repo_name
|
डिफ़ॉल्ट = '' इस मॉड्यूल को दिखाने वाले रिपॉज़िटरी का नाम, जैसा कि मॉड्यूल में दिखता है. डिफ़ॉल्ट रूप से, मॉड्यूल का नाम ही रिपॉज़िटरी का नाम होता है. यह जानकारी उन प्रोजेक्ट के लिए दी जा सकती है जो अपने लिए किसी ऐसे रिपॉज़िटरी का इस्तेमाल कर रहे हैं जो उनके मॉड्यूल के नाम से अलग है. इससे, प्रोजेक्ट को आसानी से माइग्रेट किया जा सकता है. |
bazel_compatibility
|
Iterable of strings ;
default = []Bazel के वर्शन की सूची, जिससे उपयोगकर्ता यह बता सकते हैं कि Bazel के कौनसे वर्शन इस मॉड्यूल के साथ काम करते हैं. इससे डिपेंडेंसी रिज़ॉल्यूशन पर कोई असर नहीं पड़ता. हालांकि, bzlmod इस जानकारी का इस्तेमाल करके यह जांच करेगा कि आपका मौजूदा Bazel वर्शन काम करता है या नहीं. इस वैल्यू का फ़ॉर्मैट, कुछ पाबंदी वाली वैल्यू की स्ट्रिंग होती है, जिसे कॉमा लगाकर अलग किया जाता है. तीन तरह की पाबंदियां इस्तेमाल की जा सकती हैं: <=X.X.X: Bazel का वर्शन X.X.X के बराबर या उससे पुराना होना चाहिए. इसका इस्तेमाल तब किया जाता है, जब नए वर्शन में कोई ऐसा बदलाव हो जो काम न करता हो. >=X.X.X: Bazel का वर्शन X.X.X या उसके बाद का होना चाहिए.इसका इस्तेमाल तब किया जाता है, जब आपको कुछ ऐसी सुविधाओं का इस्तेमाल करना हो जो सिर्फ़ X.X.X के बाद से उपलब्ध हैं. -X.X.X: Bazel का वर्शन X.X.X काम नहीं करता. इसका इस्तेमाल तब किया जाता है, जब X.X.X वर्शन में कोई ऐसी गड़बड़ी होती है जिसकी वजह से आपका ऐप्लिकेशन काम नहीं करता. हालांकि, बाद के वर्शन में इस गड़बड़ी को ठीक कर दिया जाता है. |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc='', environ=[], os_dependent=False, arch_dependent=False)नया मॉड्यूल एक्सटेंशन बनाता है. इसे ग्लोबल वैल्यू में सेव करें, ताकि इसे MODULE.bazel फ़ाइल में एक्सपोर्ट और इस्तेमाल किया जा सके.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
implementation
|
ज़रूरी यह वह फ़ंक्शन है जो इस मॉड्यूल एक्सटेंशन को लागू करता है. इसमें एक पैरामीटर, module_ctx होना चाहिए. उपलब्ध रिपॉज़िटरी का सेट तय करने के लिए, फ़ंक्शन को बिल्ड की शुरुआत में एक बार कॉल किया जाता है.
|
tag_classes
|
default = {} एक्सटेंशन में इस्तेमाल की जाने वाली सभी टैग क्लास की जानकारी देने वाली डिक्शनरी. यह टैग क्लास के नाम से tag_class ऑब्जेक्ट पर मैप करता है.
|
doc
|
डिफ़ॉल्ट = '' मॉड्यूल एक्सटेंशन की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
environ
|
sequence of strings ;
default = []इस एनवायरमेंट वैरिएबल की सूची उपलब्ध कराता है जिस पर यह मॉड्यूल एक्सटेंशन निर्भर करता है. अगर उस सूची में कोई एनवायरमेंट वैरिएबल बदलता है, तो एक्सटेंशन का फिर से आकलन किया जाएगा. |
os_dependent
|
default = False इससे पता चलता है कि यह एक्सटेंशन, ओएस पर निर्भर है या नहीं |
arch_dependent
|
default = False इससे पता चलता है कि यह एक्सटेंशन, आर्किटेक्चर पर निर्भर है या नहीं |
multiple_version_override
None multiple_version_override(module_name, versions, registry='')इससे पता चलता है कि डिपेंडेंसी अब भी रजिस्ट्री से आनी चाहिए, लेकिन इसके कई वर्शन एक साथ मौजूद होने चाहिए. ज़्यादा जानकारी के लिए, दस्तावेज़ देखें. यह डायरेक्टिव सिर्फ़ रूट मॉड्यूल में लागू होता है. दूसरे शब्दों में, अगर किसी मॉड्यूल का इस्तेमाल दूसरों के लिए डिपेंडेंसी के तौर पर किया जाता है, तो उसके ओवरराइड को अनदेखा कर दिया जाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
module_name
|
ज़रूरी है इस बदलाव को लागू करने के लिए, Bazel मॉड्यूल की डिपेंडेंसी का नाम. |
versions
|
Iterable of strings ;
ज़रूरी हैसाफ़ तौर पर उन वर्शन के बारे में बताता है जो एक साथ काम कर सकते हैं. ये वर्शन, डिपेंडेंसी ग्राफ़ के प्री-सिलेक्शन में पहले से मौजूद होने चाहिए. इस मॉड्यूल पर निर्भर डिपेंडेंसी को, काम करने के एक ही लेवल पर, अनुमति वाले सबसे नए वर्शन पर "अपग्रेड" कर दिया जाएगा. वहीं, काम करने के एक ही लेवल पर, अनुमति वाले वर्शन से ज़्यादा वर्शन वाली डिपेंडेंसी की वजह से गड़बड़ी होगी. |
registry
|
default = '' इस मॉड्यूल के लिए रजिस्ट्री को बदल देता है. रजिस्ट्री की डिफ़ॉल्ट सूची से इस मॉड्यूल को ढूंढने के बजाय, दी गई रजिस्ट्री का इस्तेमाल किया जाना चाहिए. |
प्रिंट करें
None print(sep=" ", *args)
args
को डीबग आउटपुट के तौर पर प्रिंट करता है. इसकी शुरुआत में स्ट्रिंग "DEBUG"
और इस कॉल की जगह (फ़ाइल और लाइन नंबर) होगी. आर्ग्युमेंट को स्ट्रिंग में बदलने का सटीक तरीका तय नहीं है और इसे कभी भी बदला जा सकता है. खास तौर पर, यह str()
और repr()
से किए गए फ़ॉर्मैट से अलग हो सकता है. साथ ही, इसमें ज़्यादा जानकारी हो सकती है.प्रोडक्शन कोड में print
का इस्तेमाल करने का सुझाव नहीं दिया जाता, क्योंकि इससे उपयोगकर्ताओं के लिए स्पैम जनरेट होता है. बंद किए गए एलिमेंट के लिए, जब भी हो सके fail()
का इस्तेमाल करके, गंभीर गड़बड़ी दिखाएं.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
sep
|
डिफ़ॉल्ट = " " ऑब्जेक्ट के बीच सेपरेटर स्ट्रिंग, डिफ़ॉल्ट रूप से स्पेस (" ") है. |
args
|
ज़रूरी है प्रिंट करने के लिए ऑब्जेक्ट. |
provider
unknown provider(doc='', *, fields=None, init=None)सेवा देने वाली कंपनी का सिंबल तय करता है. सेवा देने वाली कंपनी को कॉल करके उसका इंस्टेंस बनाया जा सकता है या किसी टारगेट से उस कंपनी का इंस्टेंस वापस पाने के लिए, सीधे तौर पर उसे कुंजी के तौर पर इस्तेमाल किया जा सकता है. उदाहरण:
MyInfo = provider() ... def _my_library_impl(ctx): ... my_info = MyInfo(x = 2, y = 3) # my_info.x == 2 # my_info.y == 3 ...
सेवा देने वाली कंपनियों का इस्तेमाल करने के तरीके के बारे में पूरी जानकारी पाने के लिए, नियम (सेवा देने वाली कंपनियां) देखें.
अगर init
तय नहीं किया गया है, तो Provider
को कॉल की जा सकने वाली वैल्यू के तौर पर दिखाता है.
अगर init
तय किया गया है, तो यह दो एलिमेंट का ट्यूपल दिखाता है: Provider
कॉल की जा सकने वाली वैल्यू और रॉ कंस्ट्रक्टर कॉल की जा सकने वाली वैल्यू. ज़्यादा जानकारी के लिए, नियम (कस्टम प्रोवाइडर का कस्टम तरीके से शुरू होना) और नीचे init
पैरामीटर के बारे में चर्चा देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
doc
|
डिफ़ॉल्ट = '' सेवा देने वाली कंपनी की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
fields
|
sequence of strings; or dict; or None ;
default = Noneअगर यह वैल्यू दी जाती है, तो इस्तेमाल किए जा सकने वाले फ़ील्ड के सेट पर पाबंदी लगा दी जाती है. इन वैल्यू का इस्तेमाल किया जा सकता है:
|
init
|
callable; or None ;
default = Noneप्रोवाइडर के फ़ील्ड की वैल्यू को पहले से प्रोसेस करने और इंस्टैंशिएशन के दौरान उनकी पुष्टि करने के लिए, एक वैकल्पिक कॉलबैक. अगर init दिया गया है, तो provider() दो एलिमेंट का ट्यूपल दिखाता है: सामान्य प्रोवाइडर सिंबल और रॉ कन्स्ट्रक्टर.इसके बारे में यहां पूरी जानकारी दी गई है. इस बारे में बेहतर तरीके से जानने और इस्तेमाल के उदाहरणों के लिए, नियम (प्रोवाइडर के कस्टम तरीके से शुरू होने की प्रोसेस) देखें. मान लें कि
init कॉलबैक नहीं दिया गया है, तो सिंबल P को कॉल करने पर, डिफ़ॉल्ट कंस्ट्रक्टर फ़ंक्शन c को कॉल किया जाता है. दूसरे शब्दों में, P(*args, **kwargs) c(*args, **kwargs) दिखाता है. उदाहरण के लिए,MyInfo = provider() m = MyInfo(foo = 1)यह आसानी से बना देगा कि m , m.foo == 1 वाला MyInfo इंस्टेंस है.हालांकि, अगर
अहम जानकारी: ऊपर दिए गए चरणों से पता चलता है कि अगर इस तरह,
MyInfo, _new_myinfo = provider(init = ...) |
सीमा
sequence range(start_or_stop, stop_or_none=None, step=1)यह एक ऐसी सूची बनाता है जिसमें आइटम
start
से stop
तक जाते हैं. इसके लिए, step
की बढ़ोतरी का इस्तेमाल किया जाता है. अगर एक आर्ग्युमेंट दिया जाता है, तो आइटम की रेंज 0 से उस एलिमेंट तक होगी.range(4) == [0, 1, 2, 3] range(3, 9, 2) == [3, 5, 7] range(3, 0, -1) == [3, 2, 1]
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
start_or_stop
|
ज़रूरी है 'स्टॉप' एलिमेंट की वैल्यू, अगर स्टॉप दिया गया है. अगर स्टॉप नहीं दिया गया है, तो स्टॉप और असल स्टार्ट की वैल्यू 0 होगी |
stop_or_none
|
int; or None ;
डिफ़ॉल्ट = Noneपहले आइटम का वैकल्पिक इंडेक्स, जिसे नतीजों की सूची में शामिल नहीं किया जाना है; stop तक पहुंचने से पहले सूची जनरेट होना बंद हो जाता है.
|
step
|
default = 1 इंक्रीमेंट (डिफ़ॉल्ट रूप से 1). यह नेगेटिव हो सकता है. |
register_execution_platforms()
None register_execution_platforms(*platform_labels)पहले से तय किए गए प्लैटफ़ॉर्म को रजिस्टर करें, ताकि Bazel टूलचेन रिज़ॉल्यूशन के दौरान, उसका इस्तेमाल एक्सीक्यूशन प्लैटफ़ॉर्म के तौर पर कर सके.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
platform_labels
|
sequence of strings ;
ज़रूरी हैउन प्लैटफ़ॉर्म के लेबल जिन्हें रजिस्टर करना है. |
register_execution_platforms(dev_dependency)
None register_execution_platforms(dev_dependency=False, *platform_labels)इस मॉड्यूल को चुनने पर, पहले से तय किए गए ऐसे प्लैटफ़ॉर्म के बारे में बताता है जिन्हें रजिस्टर करना है. ये सटीक टारगेट पैटर्न होने चाहिए. जैसे,
@
या //
से शुरू होने वाले पैटर्न. ज़्यादा जानकारी के लिए, टूलचेन रिज़ॉल्यूशन देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
dev_dependency
|
डिफ़ॉल्ट = False अगर यह सही है, तो मौजूदा मॉड्यूल रूट मॉड्यूल न होने या `--ignore_dev_dependency` चालू होने पर, प्रोग्राम चलाने वाले प्लैटफ़ॉर्म रजिस्टर नहीं किए जाएंगे. |
platform_labels
|
sequence of strings ;
ज़रूरी हैउन प्लैटफ़ॉर्म के लेबल जिन्हें रजिस्टर करना है. |
register_toolchains()
None register_toolchains(*toolchain_labels)पहले से तय किए गए टूलचैन को रजिस्टर करें, ताकि Bazel टूलचैन रिज़ॉल्यूशन के दौरान उसका इस्तेमाल कर सके. टूलचेन तय करने और टूलचेन रजिस्टर करने के उदाहरण देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
toolchain_labels
|
sequence of strings ;
ज़रूरी हैरजिस्टर करने के लिए टूलचेन के लेबल. |
register_toolchains(dev_dependency)
None register_toolchains(dev_dependency=False, *toolchain_labels)इस मॉड्यूल को चुनने पर, पहले से तय टूलचेन को रजिस्टर करने के लिए बताता है. ये सटीक टारगेट पैटर्न होने चाहिए. जैसे,
@
या //
से शुरू होने वाले पैटर्न. ज़्यादा जानकारी के लिए, टूलचेन रिज़ॉल्यूशन देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
dev_dependency
|
डिफ़ॉल्ट = गलत अगर यह सही है, तो मौजूदा मॉड्यूल रूट मॉड्यूल न होने या `--ignore_dev_dependency` चालू होने पर, टूलचेन रजिस्टर नहीं किए जाएंगे. |
toolchain_labels
|
sequence of strings ;
ज़रूरी हैरजिस्टर करने के लिए टूलचेन के लेबल. |
repository_rule
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')रिपॉज़िटरी का नया नियम बनाता है. इसे ग्लोबल वैल्यू में सेव करें, ताकि इसे WORKSPACE फ़ाइल से लोड और कॉल किया जा सके.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
implementation
|
ज़रूरी है वह फ़ंक्शन जो इस नियम को लागू करता है. इसमें एक पैरामीटर, repository_ctx होना चाहिए. फ़ंक्शन को नियम के हर इंस्टेंस के लिए, लोडिंग फ़ेज़ के दौरान कॉल किया जाता है.
|
attrs
|
dict; or None ;
default = Noneनियम के सभी एट्रिब्यूट की जानकारी देने के लिए डिक्शनरी. यह एट्रिब्यूट के नाम को एट्रिब्यूट ऑब्जेक्ट से मैप करता है (attr मॉड्यूल देखें). _ से शुरू होने वाले एट्रिब्यूट निजी होते हैं. इनका इस्तेमाल, किसी फ़ाइल में लेबल पर लागू होने वाली डिपेंडेंसी जोड़ने के लिए किया जा सकता है. रिपॉज़िटरी का नियम, जनरेट किए गए आर्टफ़ैक्ट पर निर्भर नहीं हो सकता. name एट्रिब्यूट अपने-आप जुड़ जाता है और इसे अलग से जोड़ने की ज़रूरत नहीं होती.
|
local
|
डिफ़ॉल्ट = गलत यह बताएं कि यह नियम, लोकल सिस्टम से सभी चीज़ें फ़ेच करता है और हर फ़ेच के बाद इसका फिर से आकलन किया जाना चाहिए. |
environ
|
sequence of strings ;
default = []इस रेपोज़िटरी नियम के लिए, एनवायरमेंट वैरिएबल की सूची उपलब्ध कराता है. अगर उस सूची में कोई एनवायरमेंट वैरिएबल बदलता है, तो रिपॉज़िटरी को फिर से फ़ेच किया जाएगा. |
configure
|
default = False यह बताएं कि कॉन्फ़िगरेशन के मकसद से, रिपॉज़िटरी सिस्टम की जांच करता है |
remotable
|
default = False प्रयोग के तौर पर उपलब्ध. यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है. इसमें कभी भी बदलाव किया जा सकता है. कृपया इस पर भरोसा न करें. इसे एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. इसके लिए, ---experimental_repo_remote_exec रिमोट एक्ज़ीक्यूशन के साथ काम करता है |
doc
|
default = '' रिपॉज़िटरी के नियम की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
repr
string repr(x)किसी भी ऑब्जेक्ट को स्ट्रिंग में बदलता है. यह डीबग करने के लिए काम का है.
repr("ab") == '"ab"'
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी है वह ऑब्जेक्ट जिसे बदलना है. |
रद्द कर दिया गया
list reversed(sequence)यह फ़ंक्शन एक नई और अनफ़्रीज़ की गई सूची दिखाता है. इसमें, ओरिजनल क्रम में मौजूद एलिमेंट को उलटे क्रम में दिखाया जाता है.
reversed([3, 5, 4]) == [4, 5, 3]
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
sequence
|
ज़रूरी है जिस क्रम (जैसे, सूची) को उलटा करना है. |
नियम
callable rule(implementation, test=False, attrs=None, outputs=None, executable=False, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, provides=[], exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, compile_one_filetype=None, name=None)एक नया नियम बनाता है, जिसे टारगेट बनाने के लिए, BUILD फ़ाइल या मैक्रो से कॉल किया जा सकता है.
नियमों को .bzl फ़ाइल में ग्लोबल वैरिएबल को असाइन किया जाना चाहिए. ग्लोबल वैरिएबल का नाम, नियम का नाम होता है.
जांच के नियमों का नाम _test
पर खत्म होना चाहिए. हालांकि, अन्य सभी नियमों का नाम ऐसा नहीं होना चाहिए. (यह पाबंदी सिर्फ़ नियमों पर लागू होती है, उनके टारगेट पर नहीं.)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
implementation
|
ज़रूरी है इस नियम को लागू करने वाले Starlark फ़ंक्शन में, सिर्फ़ एक पैरामीटर होना चाहिए: ctx. फ़ंक्शन को नियम के हर इंस्टेंस के लिए, विश्लेषण के फ़ेज़ के दौरान कॉल किया जाता है. यह उपयोगकर्ता के दिए गए एट्रिब्यूट को ऐक्सेस कर सकता है. यह एक्शन बनाकर, एलान किए गए सभी आउटपुट जनरेट करेगा. |
test
|
डिफ़ॉल्ट = गलत यह नियम, जांच के लिए बनाया गया है या नहीं. इसका मतलब है कि क्या यह blaze test कमांड का विषय हो सकता है. सभी टेस्ट नियमों को अपने-आप कार्यान्वित माना जाता है. किसी टेस्ट नियम के लिए, executable = True को साफ़ तौर पर सेट करना ज़रूरी नहीं है और ऐसा करने का सुझाव भी नहीं दिया जाता. ज़्यादा जानकारी के लिए, नियमों का पेज देखें.
|
attrs
|
dict; or None ;
default = Noneनियम के सभी एट्रिब्यूट की जानकारी देने के लिए डिक्शनरी. यह एट्रिब्यूट के नाम को एट्रिब्यूट ऑब्जेक्ट से मैप करता है (attr मॉड्यूल देखें). _ से शुरू होने वाले एट्रिब्यूट निजी होते हैं. इनका इस्तेमाल, किसी लेबल पर लागू होने वाली डिपेंडेंसी को जोड़ने के लिए किया जा सकता है. name एट्रिब्यूट अपने-आप जुड़ जाता है और इसे अलग से जोड़ने की ज़रूरत नहीं होती. visibility , deprecation , tags , testonly , और features एट्रिब्यूट अपने-आप जुड़ जाते हैं और इन्हें बदला नहीं जा सकता. ज़्यादातर नियमों के लिए, कुछ ही एट्रिब्यूट की ज़रूरत होती है. मेमोरी के इस्तेमाल को सीमित करने के लिए, नियम फ़ंक्शन, एट्रिब्यूट के साइज़ पर एक सीमा लगाता है.
|
outputs
|
dict; or None; or function ;
default = Noneअब काम नहीं करता. यह पैरामीटर अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इस पर भरोसा न करें. ---incompatible_no_rule_outputs_param के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड, जल्द ही हटाए जाने वाले वर्शन के साथ काम करता है. इस पैरामीटर का इस्तेमाल बंद कर दिया गया है. इसके बजाय, OutputGroupInfo या attr.output का इस्तेमाल करने के लिए नियमों को माइग्रेट करें. पहले से तय किए गए आउटपुट तय करने के लिए स्कीमा. इस आर्ग्युमेंट की वैल्यू, कोई डिक्शनरी या कॉलबैक फ़ंक्शन होती है, जो डिक्शनरी बनाता है. कॉलबैक, कैलकुलेट किए गए डिपेंडेंसी एट्रिब्यूट की तरह ही काम करता है: फ़ंक्शन के पैरामीटर के नाम, नियम के एट्रिब्यूट से मैच किए जाते हैं. उदाहरण के लिए, अगर आपने परिभाषा डिक्शनरी में हर एंट्री से पहले से तय किया गया आउटपुट बनता है. इसमें, की एक आइडेंटिफ़ायर होती है और वैल्यू एक स्ट्रिंग टेंप्लेट होती है. इससे आउटपुट का लेबल तय होता है. नियम लागू करने वाले फ़ंक्शन में, आइडेंटिफ़ायर फ़ील्ड का नाम बन जाता है. इसका इस्तेमाल,
आम तौर पर, बदले जाने वाले वैल्यू के लिए सबसे ज़्यादा इस्तेमाल होने वाला प्लेसहोल्डर |
executable
|
default = False इस नियम को लागू किया जा सकता है या नहीं. इसका मतलब है कि क्या यह blaze run कमांड का विषय हो सकता है. ज़्यादा जानकारी के लिए, नियमों का पेज देखें.
|
output_to_genfiles
|
डिफ़ॉल्ट = गलत अगर यह सही है, तो फ़ाइलें bin डायरेक्ट्री के बजाय genfiles डायरेक्ट्री में जनरेट होंगी. अगर आपको मौजूदा नियमों के साथ काम करने के लिए इसकी ज़रूरत नहीं है, तो इस फ़्लैग को सेट न करें. उदाहरण के लिए, C++ के लिए हेडर फ़ाइलें जनरेट करते समय. |
fragments
|
sequence of strings ;
default = []उन कॉन्फ़िगरेशन फ़्रैगमेंट के नामों की सूची जिनकी ज़रूरत टारगेट कॉन्फ़िगरेशन में नियम के लिए होती है. |
host_fragments
|
sequence of strings ;
default = []कॉन्फ़िगरेशन के उन फ़्रैगमेंट के नामों की सूची जिनकी ज़रूरत होस्ट कॉन्फ़िगरेशन में नियम के लिए होती है. |
_skylark_testable
|
डिफ़ॉल्ट = गलत (प्रयोग के तौर पर उपलब्ध) अगर यह 'सही' पर सेट है, तो यह नियम Actions की सेवा देने वाली कंपनी के ज़रिए, उन नियमों की जांच के लिए अपनी कार्रवाइयां दिखाएगा जो इस नियम पर निर्भर हैं. ctx.created_actions() को कॉल करके, नियम के लिए भी प्रोवाइडर उपलब्ध है. इसका इस्तेमाल सिर्फ़ Starlark नियमों के विश्लेषण के समय के व्यवहार की जांच करने के लिए किया जाना चाहिए. आने वाले समय में, इस फ़्लैग को हटाया जा सकता है. |
toolchains
|
sequence ;
default = []अगर सेट किया गया है, तो इस नियम के लिए ज़रूरी टूलचेन का सेट. इस सूची में, स्ट्रिंग, लेबल या StarlarkToolchainTypeApi ऑब्जेक्ट, किसी भी कॉम्बिनेशन में शामिल हो सकते हैं. मौजूदा प्लैटफ़ॉर्म की जांच करके टूलचेन ढूंढे जाएंगे और ctx.toolchain के ज़रिए नियम लागू करने के लिए उपलब्ध कराए जाएंगे.
|
incompatible_use_toolchain_transition
|
default = False Deprecated, this is no longer in use and should be removed. |
doc
|
default = '' नियम की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
provides
|
डिफ़ॉल्ट = [] सेवा देने वाली उन कंपनियों की सूची जिन्हें लागू करने वाले फ़ंक्शन को दिखाना चाहिए. अगर लागू करने वाले फ़ंक्शन में, यहां दी गई सूची में शामिल किसी भी तरह के प्रोवाइडर को रिटर्न वैल्यू से हटा दिया जाता है, तो यह गड़बड़ी होती है. हालांकि, लागू करने वाले फ़ंक्शन से ऐसे अन्य प्रोवाइडर भी मिल सकते हैं जो यहां नहीं दिए गए हैं. सूची का हर एलिमेंट, |
exec_compatible_with
|
sequence of strings ;
default = []इस नियम टाइप के सभी टारगेट पर लागू होने वाले, लागू करने वाले प्लैटफ़ॉर्म की पाबंदियों की सूची. |
analysis_test
|
डिफ़ॉल्ट = गलत अगर यह 'सही' है, तो इस नियम को विश्लेषण टेस्ट के तौर पर माना जाता है. ध्यान दें: विश्लेषण की जांच के नियमों को मुख्य तौर पर, Starlark की मुख्य लाइब्रेरी में दिए गए इन्फ़्रास्ट्रक्चर का इस्तेमाल करके तय किया जाता है. दिशा-निर्देशों के लिए, जांच करना लेख देखें. अगर किसी नियम को विश्लेषण टेस्ट नियम के तौर पर तय किया जाता है, तो उसके एट्रिब्यूट पर analysis_test_transition का इस्तेमाल करके तय किए गए कॉन्फ़िगरेशन ट्रांज़िशन का इस्तेमाल किया जा सकता है. हालांकि, यह कुछ पाबंदियों के साथ काम करता है:
|
build_setting
|
BuildSetting; or None ;
default = Noneअगर सेट किया गया है, तो यह बताता है कि यह नियम किस तरह का build setting है. config मॉड्यूल देखें. अगर यह सेट है, तो इस नियम में "build_setting_default" नाम का ज़रूरी एट्रिब्यूट अपने-आप जुड़ जाता है. यह एट्रिब्यूट, यहां दी गई वैल्यू के हिसाब से टाइप के साथ जुड़ता है.
|
cfg
|
डिफ़ॉल्ट = कोई नहीं अगर सेट किया जाता है, तो कॉन्फ़िगरेशन ट्रांज़िशन पर पॉइंट करता है. विश्लेषण से पहले, नियम अपने कॉन्फ़िगरेशन पर लागू होगा. |
exec_groups
|
dict; or None ;
डिफ़ॉल्ट = कोई नहींएक्सीक्यूशन ग्रुप के नाम (स्ट्रिंग) की डायक्शनरी को exec_group s में बदलता है. अगर यह सेट है, तो नियमों को एक ही टारगेट में कई एक्सीक्यूशन प्लैटफ़ॉर्म पर कार्रवाइयां चलाने की अनुमति मिलती है. ज़्यादा जानकारी के लिए, एक्सीक्यूशन ग्रुप का दस्तावेज़ देखें.
|
compile_one_filetype
|
sequence of strings; or None ;
default = None--compile_one_dependency का इस्तेमाल करता है: अगर कई नियम, बताई गई फ़ाइल का इस्तेमाल करते हैं, तो क्या हमें दूसरों के बजाय यह नियम चुनना चाहिए. |
name
|
string; or None ;
default = Noneअब काम नहीं करता. यह पैरामीटर अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इस पर भरोसा न करें. --+incompatible_remove_rule_name_parameter के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड, जल्द ही हटाए जाने वाले वर्शन के साथ काम करता है. अब काम नहीं करता: इसका इस्तेमाल न करें. इस नियम का नाम, जैसा कि Bazel समझता है और लॉगिंग, अगर इस पैरामीटर को छोड़ दिया जाता है, तो नियम का नाम उस पहले Starlark ग्लोबल वैरिएबल के नाम पर सेट हो जाता है जिसे उसके एलान करने वाले .bzl मॉड्यूल में इस नियम से बंधा जाना है. इसलिए, अगर नाम किसी नियम के लिए साफ़ तौर पर नाम तय करने से, उस नियम को लागू करने की जगह में कोई बदलाव नहीं होता. |
चुनें
unknown select(x, no_match_error='')
select()
एक हेल्पर फ़ंक्शन है, जो नियम एट्रिब्यूट को कॉन्फ़िगर करने लायक बनाता है. ज़्यादा जानकारी के लिए, एनसाइक्लोपीडिया बनाना लेख पढ़ें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी एक डिक्शनरी, जो कॉन्फ़िगरेशन की शर्तों को वैल्यू पर मैप करती है. हर कुंजी एक लेबल या लेबल स्ट्रिंग होती है, जो config_setting या constraint_value इंस्टेंस की पहचान करती है. स्ट्रिंग के बजाय लेबल का इस्तेमाल कब करना है, यह जानने के लिए मैक्रो के बारे में दस्तावेज़ देखें. |
no_match_error
|
डिफ़ॉल्ट = '' अगर कोई शर्त मेल नहीं खाती है, तो रिपोर्ट करने के लिए वैकल्पिक कस्टम गड़बड़ी. |
single_version_override
None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)इससे पता चलता है कि डिपेंडेंसी अब भी रजिस्ट्री से आनी चाहिए, लेकिन उसका वर्शन पिन किया जाना चाहिए या उसकी रजिस्ट्री को बदला जाना चाहिए या पैच की सूची लागू की जानी चाहिए. यह डायरेक्टिव सिर्फ़ रूट मॉड्यूल में लागू होता है. दूसरे शब्दों में, अगर किसी मॉड्यूल का इस्तेमाल दूसरों के लिए डिपेंडेंसी के तौर पर किया जाता है, तो उसके ओवरराइड को अनदेखा कर दिया जाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
module_name
|
ज़रूरी है इस बदलाव को लागू करने के लिए, Bazel मॉड्यूल की डिपेंडेंसी का नाम. |
version
|
डिफ़ॉल्ट = '' Dependency Graph में, इस मॉड्यूल के एलान किए गए वर्शन को बदल देता है. दूसरे शब्दों में, इस मॉड्यूल को ओवरराइड किए गए वर्शन में "पिन" किया जाएगा. अगर आपको सिर्फ़ रजिस्ट्री या पैच को बदलना है, तो इस एट्रिब्यूट को छोड़ा जा सकता है. |
registry
|
default = '' इस मॉड्यूल के लिए रजिस्ट्री को बदल देता है. रजिस्ट्री की डिफ़ॉल्ट सूची से इस मॉड्यूल को ढूंढने के बजाय, दी गई रजिस्ट्री का इस्तेमाल किया जाना चाहिए. |
patches
|
Iterable of strings ;
default = []इस मॉड्यूल के लिए लागू करने के लिए, पैच फ़ाइलों पर लेबल की सूची. पैच फ़ाइलें, टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. ये सूची के क्रम में लागू होते हैं. |
patch_cmds
|
Iterable of strings ;
default = []पैच लागू होने के बाद, Linux/Macos पर लागू किए जाने वाले Bash निर्देशों का क्रम. |
patch_strip
|
डिफ़ॉल्ट = 0 यह यूनिक्स पैच के --strip आर्ग्युमेंट जैसा ही है. |
क्रम से लगाए गए
list sorted(iterable, *, key=None, reverse=False)यह फ़ंक्शन, क्रम से लगाई गई एक नई सूची दिखाता है. इसमें, दिए गए क्रम में लगाए जा सकने वाले क्रम के सभी एलिमेंट शामिल होते हैं. अगर x, y एलिमेंट के किसी जोड़े की तुलना x < y का इस्तेमाल करके नहीं की जा सकती, तो गड़बड़ी हो सकती है. एलिमेंट को बढ़ते क्रम में लगाया जाता है. हालांकि, अगर reverse आर्ग्युमेंट True है, तो एलिमेंट को घटते क्रम में लगाया जाता है. क्रम में बदलाव नहीं होता: जिन एलिमेंट की तुलना एक जैसी होती है वे अपने मूल क्रम में बने रहते हैं.
sorted([3, 5, 4]) == [3, 4, 5]
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
iterable
|
ज़रूरी है जिस क्रम को क्रम से लगाना है. |
key
|
डिफ़ॉल्ट = None तुलना करने से पहले, हर एलिमेंट पर लागू किया जाने वाला वैकल्पिक फ़ंक्शन. |
reverse
|
डिफ़ॉल्ट = False नतीजों को घटते क्रम में दिखाएं. |
str
string str(x)किसी भी ऑब्जेक्ट को स्ट्रिंग में बदलता है. यह डीबग करने के लिए काम का है.
str("ab") == "ab" str(8) == "8"
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी है वह ऑब्जेक्ट जिसे बदलना है. |
tag_class
tag_class tag_class(attrs={}, *, doc='')यह एक नया tag_class ऑब्जेक्ट बनाता है, जो टैग की क्लास के लिए एट्रिब्यूट स्कीमा तय करता है. ये ऐसे डेटा ऑब्जेक्ट होते हैं जिनका इस्तेमाल मॉड्यूल एक्सटेंशन कर सकता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
attrs
|
default = {} इस टैग क्लास के सभी एट्रिब्यूट की जानकारी देने के लिए एक डिक्शनरी. यह एट्रिब्यूट के नाम को एट्रिब्यूट ऑब्जेक्ट से मैप करता है (attr मॉड्यूल देखें). |
doc
|
डिफ़ॉल्ट = '' टैग क्लास की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
टपल
tuple tuple(x=())यह फ़ंक्शन, दिए गए आइटम वाली वैल्यू के जैसे ही एलिमेंट वाला ट्यूपल दिखाता है.
tuple([1, 2]) == (1, 2) tuple((2, 3, 2)) == (2, 3, 2) tuple({5: "a", 2: "b", 4: "c"}) == (5, 2, 4)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
default = () वह ऑब्जेक्ट जिसे बदलना है. |
टाइप
string type(x)अपने आर्ग्युमेंट का टाइप नाम दिखाता है. यह डीबग करने और टाइप की जांच करने के लिए काम आता है. उदाहरण:
type(2) == "int" type([1]) == "list" type(struct(a = 2)) == "struct"आने वाले समय में, इस फ़ंक्शन में बदलाव हो सकता है. Python के साथ काम करने वाला कोड लिखने और आने वाले समय में भी उसे इस्तेमाल करने के लिए, इसका इस्तेमाल सिर्फ़ रिटर्न वैल्यू की तुलना करने के लिए करें:
if type(x) == type([]): # if x is a list
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी वह ऑब्जेक्ट जिसका टाइप जांचना है. |
use_extension
module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)मॉड्यूल एक्सटेंशन को दिखाने वाला प्रॉक्सी ऑब्जेक्ट दिखाता है. मॉड्यूल एक्सटेंशन टैग बनाने के लिए, इसके तरीकों को लागू किया जा सकता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
extension_bzl_file
|
ज़रूरी है मॉड्यूल एक्सटेंशन की जानकारी देने वाली Starlark फ़ाइल का लेबल. |
extension_name
|
ज़रूरी है इस्तेमाल किए जाने वाले मॉड्यूल एक्सटेंशन का नाम. इस नाम वाला सिंबल, Starlark फ़ाइल से एक्सपोर्ट किया जाना चाहिए. |
dev_dependency
|
डिफ़ॉल्ट = गलत अगर यह सही है, तो मौजूदा मॉड्यूल रूट मॉड्यूल न होने या `--ignore_dev_dependency` चालू होने पर, मॉड्यूल एक्सटेंशन के इस इस्तेमाल को अनदेखा कर दिया जाएगा. |
isolate
|
default = False प्रयोग के तौर पर उपलब्ध. यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है. इसमें कभी भी बदलाव किया जा सकता है. कृपया इस पर भरोसा न करें. इसे एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. इसके लिए, ---experimental_isolated_extension_usages को सेट करें. अगर यह 'सही' पर सेट है, तो मॉड्यूल एक्सटेंशन के इस इस्तेमाल को इस और अन्य मॉड्यूल, दोनों में अन्य सभी इस्तेमाल से अलग कर दिया जाएगा. इस तरह के इस्तेमाल के लिए बनाए गए टैग का असर, अन्य इस्तेमाल पर नहीं पड़ता. साथ ही, इस तरह के इस्तेमाल के लिए एक्सटेंशन से जनरेट की गई रिपॉज़िटरी, एक्सटेंशन से जनरेट की गई अन्य सभी रिपॉज़िटरी से अलग होंगी. फ़िलहाल, यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है और सिर्फ़ फ़्लैग |
use_repo
None use_repo(extension_proxy, *args, **kwargs)मौजूदा मॉड्यूल के दायरे में, दिए गए मॉड्यूल एक्सटेंशन से जनरेट किए गए एक या उससे ज़्यादा रिपॉज़िटरी इंपोर्ट करता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
extension_proxy
|
ज़रूरी है यह use_extension कॉल से मिला, मॉड्यूल एक्सटेंशन प्रॉक्सी ऑब्जेक्ट है.
|
args
|
ज़रूरी इंपोर्ट किए जाने वाले रिपॉज़िटरी के नाम. |
kwargs
|
ज़रूरी है मौजूदा मॉड्यूल के दायरे में, अलग-अलग नामों से इंपोर्ट करने के लिए कुछ रिपॉज़िटरी तय करता है. कुंजियों में मौजूद नाम, मौजूदा दायरे में इस्तेमाल किए जाने वाले नाम होने चाहिए. वहीं, वैल्यू में मॉड्यूल एक्सटेंशन से एक्सपोर्ट किए गए ओरिजनल नाम होने चाहिए. |
कैसा दिखाई दे
None visibility(value)
फ़िलहाल, जिस .bzl मॉड्यूल को शुरू किया जा रहा है उसकी लोड विज़िबिलिटी सेट करता है.
मॉड्यूल के लोड होने की सेटिंग से यह तय होता है कि अन्य BUILD और .bzl फ़ाइलें उसे लोड कर सकती हैं या नहीं. (यह, .bzl सोर्स फ़ाइल के टारगेट के दिखने से अलग है. इससे यह तय होता है कि फ़ाइल, दूसरे टारगेट की डिपेंडेंसी के तौर पर दिख सकती है या नहीं.) लोड दिखने की सुविधा, पैकेज के लेवल पर काम करती है: किसी मॉड्यूल को लोड करने के लिए, लोड करने वाली फ़ाइल को उस पैकेज में होना चाहिए जिसे मॉड्यूल को दिखने की अनुमति दी गई है. किसी मॉड्यूल को उसके पैकेज में हमेशा लोड किया जा सकता है. भले ही, वह दिख रहा हो या नहीं.
visibility()
को हर .bzl फ़ाइल में सिर्फ़ एक बार और सिर्फ़ टॉप लेवल पर कॉल किया जा सकता है, न कि किसी फ़ंक्शन में. इस कॉल को load()
स्टेटमेंट और आर्ग्युमेंट तय करने के लिए ज़रूरी छोटे लॉजिक के ठीक नीचे रखना सबसे सही है.
अगर फ़्लैग --check_bzl_visibility
को 'गलत है' पर सेट किया जाता है, तो लोड दिखने से जुड़े उल्लंघनों की चेतावनियां मिलेंगी. हालांकि, इससे बिल्ड पूरा नहीं होगा.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
value
|
ज़रूरी है पैकेज की जानकारी देने वाली स्ट्रिंग की सूची या पैकेज की जानकारी देने वाली एक स्ट्रिंग. पैकेज की खास बातों के लिए, वही फ़ॉर्मैट इस्तेमाल किया जाता है जो
"@" सिंटैक्स का इस्तेमाल नहीं किया जा सकता. सभी खास बातों को मौजूदा मॉड्यूल के रिपॉज़िटरी के हिसाब से समझा जाता है. अगर ध्यान दें कि फ़्लैग |
कार्यस्थान
None workspace(name)
इस फ़ंक्शन का इस्तेमाल सिर्फ़ WORKSPACE
फ़ाइल में किया जा सकता है. साथ ही, WORKSPACE
फ़ाइल में अन्य सभी फ़ंक्शन से पहले इसका एलान किया जाना चाहिए. हर WORKSPACE
फ़ाइल में workspace
फ़ंक्शन होना चाहिए.
इस वर्कस्पेस का नाम सेट करता है. Workspace के नाम, प्रोजेक्ट के Java-package-style वाले ब्यौरे के तौर पर होने चाहिए.इसमें अंडरस्कोर का इस्तेमाल सेपरेटर के तौर पर किया जाना चाहिए. उदाहरण के लिए, github.com/bazelbuild/bazel को com_github_bazelbuild_bazel का इस्तेमाल करना चाहिए.
इस नाम का इस्तेमाल उस डायरेक्ट्री के लिए किया जाता है जिसमें रिपॉज़िटरी की रनफ़ाइलें सेव की जाती हैं. उदाहरण के लिए, अगर लोकल रिपॉज़िटरी में कोई रनफ़ाइल foo/bar
है और WORKSPACE फ़ाइल में workspace(name = 'baz')
है, तो रनफ़ाइल mytarget.runfiles/baz/foo/bar
में उपलब्ध होगी. अगर कोई वर्कस्पेस का नाम नहीं दिया गया है, तो रनफ़ाइल को bar.runfiles/foo/bar
से लिंक कर दिया जाएगा.
रिमोट रिपॉज़िटरी के नियमों के नाम, वर्कस्पेस के मान्य नाम होने चाहिए. उदाहरण के लिए, आपके पास maven_jar(name = 'foo')
हो सकता है, लेकिन maven_jar(name = 'foo%bar')
नहीं, क्योंकि Bazel, workspace(name = 'foo%bar')
वाली maven_jar
के लिए एक WORKSPACE फ़ाइल लिखने की कोशिश करेगा.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
ज़रूरी है वर्कस्पेस का नाम. नाम किसी अक्षर से शुरू होने चाहिए. साथ ही, उनमें सिर्फ़ अक्षर, संख्याएं, अंडरस्कोर, डैश, और बिंदु शामिल किए जा सकते हैं. |
zip
list zip(*args)यह फ़ंक्शन
tuple
का list
दिखाता है. इसमें i-वें ट्यूपल में, आर्ग्युमेंट के हर क्रम या आइटरेबल से i-वां एलिमेंट होता है. सूची का साइज़, सबसे छोटे इनपुट के साइज़ के बराबर होता है. एक बार में कई बार इस्तेमाल किए जा सकने वाले एक आर्ग्युमेंट के साथ, यह एक-ट्यूपल की सूची दिखाता है. बिना किसी आर्ग्युमेंट के, यह फ़ंक्शन एक खाली सूची दिखाता है. उदाहरण:zip() # == [] zip([1, 2]) # == [(1,), (2,)] zip([1, 2], [3, 4]) # == [(1, 3), (2, 4)] zip([1, 2], [3, 4, 5]) # == [(1, 3), (2, 4)]
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
args
|
ज़रूरी सूचियों को ज़िप करना. |