पैसे चुकाकर बने सदस्यों के लिए
- सभी
- analysis_test_transition
- कोई भी
- archive_override
- आसपेक्ट
- bazel_dep
- bind
- bool
- configuration_field
- डिपसेट
- dict
- डायरेक्ट
- गिनती करें
- exec_group
- असफल
- float
- getattr
- git_override
- हैशत्र
- हैश
- int
- len
- list
- local_path_override
- ज़्यादा से ज़्यादा
- मिनट
- मॉड्यूल
- module_extension
- multiple_version_override
- प्रिंट करें
- provider
- रेंज
- register_execution_platforms()
- register_execution_platforms(dev_dependency)
- register_toolchains()
- register_toolchains(dev_dependency)
- repository_rule
- repr
- रिवर्स किया गया
- नियम
- चुनें
- single_version_override
- क्रम से लगाया गया
- str
- tag_class
- tuple
- टाइप
- 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
वाले नियमों की विशेषताओं पर लागू किया जा सकता है. ऐसे नियमों की क्षमताओं में पाबंदी होती है. उदाहरण के लिए, उनके डिपेंडेंसी ट्री का साइज़ सीमित होता है. इसलिए, ट्रांज़िशन की मदद से बनाए गए ट्रांज़िशन की तुलना में, इस फ़ंक्शन का इस्तेमाल करके किए जाने वाले ट्रांज़िशन सीमित होते हैं.
यह फ़ंक्शन मुख्य तौर पर, विश्लेषण टेस्ट फ़्रेमवर्क की मुख्य लाइब्रेरी को आसान बनाने के लिए डिज़ाइन किया गया है. सबसे सही तरीकों के लिए, इसके दस्तावेज़ या इसे लागू करने के तरीके देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
settings
|
ज़रूरी है एक डिक्शनरी, जिसमें कॉन्फ़िगरेशन सेटिंग के बारे में ऐसी जानकारी हो जिसे इस कॉन्फ़िगरेशन ट्रांज़िशन से सेट किया जाना चाहिए. कुंजियां, बिल्ड सेटिंग लेबल होती हैं और वैल्यू, ट्रांज़िशन के बाद की नई वैल्यू होती हैं. अन्य सभी सेटिंग में कोई बदलाव नहीं हुआ है. इसका इस्तेमाल करके, कॉन्फ़िगरेशन की उन खास सेटिंग का एलान करें जिन्हें पास करने के लिए, विश्लेषण की जांच को सेट करना ज़रूरी है. |
कोई भी
bool any(elements)अगर कम से कम एक एलिमेंट का आकलन सही के तौर पर होता है, तो यह 'सही' दिखाता है. 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 ;
डिफ़ॉल्ट = []इस मॉड्यूल पर लागू करने के लिए, पैच फ़ाइलों पर ले जाने वाले लेबल की सूची. पैच फ़ाइलें, टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. इन्हें सूची के क्रम में लागू किया जाता है. |
patch_cmds
|
Iterable of strings ;
डिफ़ॉल्ट = []पैच लागू होने के बाद, Linux/Macos पर लागू किए जाने वाले बैश निर्देशों का क्रम. |
patch_strip
|
डिफ़ॉल्ट = 0 यह Unix पैच के --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 ;
डिफ़ॉल्ट = []एट्रिब्यूट के नामों की सूची. यह पहलू, इन नामों के साथ टारगेट के एट्रिब्यूट में बताई गई डिपेंडेंसी के साथ काम करता है. यहां की सामान्य वैल्यू में deps और exports शामिल हैं. किसी टारगेट की सभी डिपेंडेंसी के साथ लागू करने के लिए, इस सूची में एक सिंगल स्ट्रिंग "*" भी हो सकती है.
|
attrs
|
dict; or 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 ;
डिफ़ॉल्ट = []इस पहलू से पहले लागू किए जाने वाले ज़रूरी पहलुओं की सूची. |
fragments
|
sequence of strings ;
डिफ़ॉल्ट = []कॉन्फ़िगरेशन फ़्रैगमेंट के नामों की सूची, जिनके टारगेट कॉन्फ़िगरेशन में आसपेक्ट को ज़रूरी है. |
host_fragments
|
sequence of strings ;
डिफ़ॉल्ट = []कॉन्फ़िगरेशन फ़्रैगमेंट के नामों की सूची, जिसके लिए होस्ट कॉन्फ़िगरेशन में पहलू ज़रूरी है. |
toolchains
|
sequence ;
डिफ़ॉल्ट = []अगर यह सेट है, तो इस नियम के लिए टूलचेन के सेट की ज़रूरत होती है. सूची में स्ट्रिंग, लेबल या StarlarkToolchainTypeApi ऑब्जेक्ट को किसी भी कॉम्बिनेशन में शामिल किया जा सकता है. टूलचेन, मौजूदा प्लैटफ़ॉर्म की जांच करके मिलेंगे और उन्हें ctx.toolchain के ज़रिए नियम लागू करने के लिए उपलब्ध कराया जाएगा.
|
incompatible_use_toolchain_transition
|
default = False अब इस्तेमाल में नहीं है, इसका इस्तेमाल नहीं किया जा सकता है और इसे हटा देना चाहिए. |
doc
|
डिफ़ॉल्ट = '' आसपेक्ट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल की मदद से लिया जा सकता है. |
apply_to_generating_rules
|
डिफ़ॉल्ट = गलत सही होने पर, आउटपुट फ़ाइल पर आसपेक्ट रेशियो लागू करने पर, यह आउटपुट फ़ाइल के जनरेट करने के नियम पर लागू होगा. उदाहरण के लिए, मान लें कि कोई आसपेक्ट, `deps` विशेषता के ज़रिए ट्रांज़िटिव रूप से लागू होता है और `ऐल्फ़ा` को टारगेट करने के लिए लागू किया जाता है. मान लीजिए कि `ऐल्फ़ा` में `deps = [':beta_ बदलें']`, जहां `बीटा_आउटपुट`, टारगेट `बीटा` का एक एलान किया गया आउटपुट है, तो मान लें कि `बीटा` में टारगेट `charley` और सिर्फ़ `deps=True` में से एक के रूप में लागू होगा. अगर `लागू_to_generting` के ज़रिए, True TRUE लागू होगा. डिफ़ॉल्ट रूप से 'गलत' होता है. |
exec_compatible_with
|
sequence of strings ;
डिफ़ॉल्ट = []एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर लागू होने वाली पाबंदियों की एक सूची, जो इस पहलू के सभी मामलों पर लागू होती है. |
exec_groups
|
dict; or None ;
डिफ़ॉल्ट = कोई नहींएक्ज़ीक्यूशन ग्रुप के नाम (स्ट्रिंग) को बोलकर exec_group करें. अगर यह नीति सेट है, तो पहलुओं को एक ही इंस्टेंस में कई एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाइयां करने की अनुमति देता है. ज़्यादा जानकारी के लिए, एक्ज़ीक्यूशन ग्रुप के दस्तावेज़ देखें.
|
bazel_dep
None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)यह नीति अन्य Bazel मॉड्यूल पर डायरेक्ट डिपेंडेंसी का एलान करती है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
ज़रूरी है डायरेक्ट डिपेंडेंसी के तौर पर जोड़े जाने वाले मॉड्यूल का नाम. |
version
|
डिफ़ॉल्ट = '' मॉड्यूल का वह वर्शन जिसे डायरेक्ट डिपेंडेंसी के तौर पर जोड़ा जाना है. |
max_compatibility_level
|
डिफ़ॉल्ट = -1 मॉड्यूल को डायरेक्ट डिपेंडेंसी के तौर पर जोड़ने के लिए, ज़्यादा से ज़्यादा compatibility_level हो सकते हैं. मॉड्यूल के वर्शन का मतलब है, कम से कम काम करने वाला कम से कम काम करने वाला लेवल. साथ ही, अगर इस एट्रिब्यूट के बारे में नहीं बताया गया है, तो सबसे ज़्यादा वैल्यू को भी.
|
repo_name
|
डिफ़ॉल्ट = '' इस डिपेंडेंसी को दिखाने वाले एक्सटर्नल रेपो का नाम. डिफ़ॉल्ट रूप से यह मॉड्यूल का नाम होता है. |
dev_dependency
|
default = False अगर सही है, तो मौजूदा मॉड्यूल के रूट मॉड्यूल के न होने पर या `--ignore_dev_dependency` चालू होने पर, इस डिपेंडेंसी को अनदेखा कर दिया जाएगा. |
bind
None bind(name, actual=None)
चेतावनी: bind()
के इस्तेमाल का सुझाव नहीं दिया जाता. इसकी समस्याओं और उनके विकल्पों के बारे में लंबी चर्चा करने के लिए, बाइंड हटाने की कोशिश करें देखें.
//external
पैकेज में टारगेट को एक उपनाम देता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
ज़रूरी है उपनाम के नाम के तौर पर दिखाने के लिए, '//external' में लगा लेबल |
actual
|
string; or None ;
डिफ़ॉल्ट = कोई नहींउपनाम बनाया जाने वाला असली लेबल |
bool
bool bool(x=False)बूल टाइप के लिए कंस्ट्रक्टर. अगर ऑब्जेक्ट
None
, False
, खाली स्ट्रिंग (""
), संख्या 0
या खाली कलेक्शन (जैसे, ()
, []
) है, तो यह False
दिखाता है. ऐसा न होने पर, यह True
दिखाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
डिफ़ॉल्ट = गलत वह वैरिएबल जिसे बदला जाना है. |
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)
से मिलता है.
हैश-आधारित सेट का इस्तेमाल इटरेशन के दौरान डुप्लीकेट हटाने के लिए किया जाता है. इसलिए, डिपसेट के सभी एलिमेंट हैश किए जा सकने वाले होने चाहिए. हालांकि, फ़िलहाल इस वैरिएंट की जांच सभी कंस्ट्रक्टर में लगातार नहीं की जाती है. लगातार जांच करने की सुविधा चालू करने के लिए, --insupported_always_check_depset_elements फ़्लैग इस्तेमाल करें; आने वाली रिलीज़ में डिफ़ॉल्ट रूप से यही कार्रवाई होगी; समस्या 10313 देखें.
इसके अलावा, एलिमेंट ऐसे होने चाहिए जिन्हें बदला न जा सके. हालांकि, आने वाले समय में इस पाबंदी में छूट दी जाएगी.
बनाए गए डेस्कसेट का क्रम, इसके transitive
डिपसेट के क्रम के साथ काम करना चाहिए. "default"
ऑर्डर किसी भी अन्य ऑर्डर के साथ काम करता है. अन्य सभी ऑर्डर सिर्फ़ खुद के ऑर्डर के साथ काम करते हैं.
पीछे/आगे काम करने की सुविधा के बारे में ध्यान दें. फ़िलहाल, यह फ़ंक्शन एक पोज़िशनल items
पैरामीटर को स्वीकार करता है. यह अब सेवा में नहीं है और आने वाले समय में इसे हटा दिया जाएगा. साथ ही, इसके हटाए जाने के बाद, direct
, depset
फ़ंक्शन का सिर्फ़ पोज़िशनल पैरामीटर बन जाएगा. इसलिए, नीचे दिए गए दोनों कॉल एक जैसे हैं और आने वाले समय के लिए भी सुरक्षित हैं:
depset(['a', 'b'], transitive = [...]) depset(direct = ['a', 'b'], transitive = [...])
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
direct
|
sequence; or None ;
डिफ़ॉल्ट = कोई नहींकिसी डिपसेट के डायरेक्ट एलिमेंट की सूची. |
order
|
डिफ़ॉल्ट = "डिफ़ॉल्ट" नए डेटासेट के लिए ट्रैवर्सल रणनीति. संभावित वैल्यू देखने के लिए यहां जाएं. |
transitive
|
sequence of depsets; or None ;
डिफ़ॉल्ट = कोई नहींडेटा सेट की सूची जिसके एलिमेंट, डिपसेट के इनडायरेक्ट एलिमेंट बन जाएंगे. |
dict
dict dict(pairs=[], **kwargs)वैकल्पिक पोज़िशनल तर्क और कीवर्ड आर्ग्युमेंट के वैकल्पिक सेट का इस्तेमाल करके, शब्दकोश बनाया जा सकता है. ऐसे मामले में जहां एक ही 'की' कई बार दी गई है, आखिरी वैल्यू का इस्तेमाल किया जाएगा. कीवर्ड आर्ग्युमेंट के ज़रिए दी गई एंट्री, पोज़िशनल आर्ग्युमेंट के ज़रिए दी गई एंट्री के बाद मानी जाती हैं.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
pairs
|
default = [] एक डिक्शनरी या बार-बार इस्तेमाल किया जा सकने वाला एलिमेंट, जिसके एलिमेंट की लंबाई 2 है (कुंजी, वैल्यू). |
kwargs
|
ज़रूरी है अतिरिक्त एंट्री का शब्दकोश. |
दिशा
list dir(x)स्ट्रिंग की सूची दिखाता है: एट्रिब्यूट के नाम और पैरामीटर ऑब्जेक्ट के तरीके.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी है वह ऑब्जेक्ट जिसकी जांच करनी है. |
गिनती करें
list enumerate(list, start=0)इंडेक्स (इंट) और इनपुट के क्रम से आइटम के साथ, जोड़ों (दो-एलिमेंट वाले टूपल) की सूची दिखाता है.
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 ;
डिफ़ॉल्ट = []टूलचेन का सेट, जो इस एक्ज़ीक्यूशन ग्रुप के लिए ज़रूरी है. सूची में स्ट्रिंग, लेबल या StarlarkToolchainTypeApi ऑब्जेक्ट को किसी भी कॉम्बिनेशन में शामिल किया जा सकता है. |
exec_compatible_with
|
sequence of strings ;
डिफ़ॉल्ट = []प्लान लागू करने के प्लैटफ़ॉर्म पर लागू पाबंदियों की सूची. |
copy_from_rule
|
default = False अगर इस नीति को 'सही है' पर सेट किया जाता है, तो यह एक्सपोर्ट ग्रुप उस नियम के टूलचेन और कंस्ट्रेंट को इनहेरिट करता है जिससे यह ग्रुप जुड़ा है. अगर किसी दूसरी स्ट्रिंग पर सेट किया जाता है, तो आपको गड़बड़ी का मैसेज दिखेगा. |
विफल रहा
None fail(msg=None, attr=None, *args)इसकी वजह से प्रोग्राम चलाने में गड़बड़ी होती है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
msg
|
डिफ़ॉल्ट = कोई नहीं अब काम नहीं करता: इसके बजाय, पोज़िशनल आर्ग्युमेंट का इस्तेमाल करें. यह तर्क, आगे किसी संभावित स्थिति वाले तर्क की तरह काम करता है. |
attr
|
string; or None ;
डिफ़ॉल्ट = कोई नहींअब काम नहीं करता. इसकी वजह से, गड़बड़ी के मैसेज में इस स्ट्रिंग वाले वैकल्पिक प्रीफ़िक्स जुड़ जाता है. |
args
|
वैल्यू की सूची, डीबगप्रिंट (यह डिफ़ॉल्ट रूप से str के बराबर होता है) के साथ फ़ॉर्मैट की गई है और स्पेस के साथ जोड़ी गई है. यह गड़बड़ी के मैसेज में दिखती है. |
float
float float(x=unbound)फ़्लोट वैल्यू के रूप में x दिखाता है.
- अगर
x
पहले से ही एक फ़्लोट है, तोfloat
इसे बिना किसी बदलाव के दिखाता है. - अगर
x
कोई बूल है, तोfloat
सही के लिए 1.0 और गलत के लिए 0.0 दिखाता है. - अगर
x
एक पूर्णांक है, तोfloat
सबसे नज़दीकी सीमित फ़्लोटिंग-पॉइंट वैल्यू को x पर दिखाता है. अगर डाइमेंशन बहुत ज़्यादा है, तो गड़बड़ी की जानकारी दिखाता है. - अगर
x
एक स्ट्रिंग है, तो यह मान्य फ़्लोटिंग-पॉइंट लिटरल होनी चाहिए या यहNaN
,Inf
याInfinity
के बराबर (छोटे-बड़े अक्षर को अनदेखा करते हुए) होनी चाहिए. इसके बाद, वैकल्पिक तौर पर+
या-
का निशान होना चाहिए.
float()
0.0 दिखाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
डिफ़ॉल्ट = अनबाउंड बदली जाने वाली वैल्यू. |
गेटैट
unknown getattr(x, name, default=unbound)दिए गए नाम का स्ट्रक्चर फ़ील्ड मौजूद होने पर वह दिखाता है. अगर ऐसा नहीं है, तो यह
default
(अगर बताया गया है) दिखाता है या कोई गड़बड़ी दिखाता है. getattr(x, "foobar")
, x.foobar
के बराबर है.getattr(ctx.attr, "myattr") getattr(ctx.attr, "myattr", "mydefault")
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी है वह स्ट्रक्चर जिसके एट्रिब्यूट को ऐक्सेस किया गया है. |
name
|
ज़रूरी है स्ट्रक्ट एट्रिब्यूट का नाम. |
default
|
डिफ़ॉल्ट = अनबाउंड अगर स्ट्रक्चर में दिए गए नाम का एट्रिब्यूट न हो, तो यह डिफ़ॉल्ट वैल्यू दिखती है. |
git_override
None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0)इस नीति से तय होता है कि किसी Git रिपॉज़िटरी (डेटा स्टोर करने की जगह) की तय सीमा से डिपेंडेंसी आनी चाहिए. यह डायरेक्टिव सिर्फ़ रूट मॉड्यूल में लागू होता है. दूसरे शब्दों में, अगर किसी मॉड्यूल का इस्तेमाल दूसरे लोग डिपेंडेंसी के तौर पर करते हैं, तो उसके अपने ओवरराइड को अनदेखा कर दिया जाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
module_name
|
ज़रूरी है इस ओवरराइड को लागू करने के लिए, Bazel मॉड्यूल डिपेंडेंसी का नाम. |
remote
|
ज़रूरी है रिमोट Git रिपॉज़िटरी का यूआरएल. |
commit
|
default = '' वह प्रतिबद्धता, जिसके लिए चेक आउट किया जाना चाहिए. |
patches
|
Iterable of strings ;
डिफ़ॉल्ट = []इस मॉड्यूल पर लागू करने के लिए, पैच फ़ाइलों पर ले जाने वाले लेबल की सूची. पैच फ़ाइलें, टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. इन्हें सूची के क्रम में लागू किया जाता है. |
patch_cmds
|
Iterable of strings ;
डिफ़ॉल्ट = []पैच लागू होने के बाद, Linux/Macos पर लागू किए जाने वाले बैश निर्देशों का क्रम. |
patch_strip
|
डिफ़ॉल्ट = 0 यह Unix पैच के --strip आर्ग्युमेंट के जैसा है. |
hasattr
bool hasattr(x, name)अगर ऑब्जेक्ट
x
में, दिए गए name
का कोई एट्रिब्यूट या तरीका है, तो 'सही' दिखाता है. ऐसा नहीं होने पर 'गलत' दिखाता है. उदाहरण: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
इसमें कोई बदलाव नहीं करता है. - अगर
x
कोई बूल है, तोint
'सही' के लिए 1 और गलत के लिए 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 (दोनों शामिल) के बीच होना चाहिए या 0 से होना चाहिए, ताकि यह पता लगाया जा सके कि x एक पूर्णांक लिटरल था. अगर वैल्यू कोई स्ट्रिंग नहीं है, तो यह पैरामीटर नहीं देना चाहिए.
|
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)दिए गए सभी तर्कों में से सबसे बड़ा एक देता है. अगर सिर्फ़ एक आर्ग्युमेंट दिया गया हो, तो उसे खाली नहीं छोड़ा जा सकता.यह एक गड़बड़ी है, अगर एलिमेंट की तुलना नहीं की जा सकती (उदाहरण के लिए, स्ट्रिंग के साथ int) या कोई आर्ग्युमेंट नहीं दिया गया हो.
max(2, 5, 4) == 5 max([5, 6, 3]) == 6
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
args
|
ज़रूरी है वे एलिमेंट जिनकी जांच करनी है. |
कम से कम
unknown min(*args)दिए गए सभी तर्कों में से सबसे छोटा एक देता है. अगर सिर्फ़ एक आर्ग्युमेंट दिया गया है, तो उसे बार-बार खाली नहीं छोड़ा जा सकता. अगर एलिमेंट की तुलना नहीं की जा सकती है (उदाहरण के लिए, स्ट्रिंग के साथ पूर्णांक) या कोई आर्ग्युमेंट नहीं दिया गया है, तो यह एक गड़बड़ी है.
min(2, 5, 4) == 2 min([5, 6, 3]) == 3
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
args
|
ज़रूरी है वे एलिमेंट जिनकी जांच करनी है. |
मॉड्यूल
None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])यह नीति, Bazel मॉड्यूल की कुछ प्रॉपर्टी का एलान करती है. इन प्रॉपर्टी को मौजूदा Bazel रेपो से दिखाया जाता है. ये प्रॉपर्टी या तो मॉड्यूल (जैसे कि नाम और वर्शन) का ज़रूरी मेटाडेटा होती हैं या फिर मौजूदा मॉड्यूल और इससे जुड़े दूसरे मॉड्यूल के व्यवहार पर असर डालती हैं.
इसे ज़्यादा से ज़्यादा एक बार कॉल किया जाना चाहिए. अगर यह मॉड्यूल रूट मॉड्यूल है, तो ही इसे हटाया जा सकता है (जैसे कि अगर वह किसी दूसरे मॉड्यूल पर निर्भर न हो).
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
डिफ़ॉल्ट = '' मॉड्यूल का नाम. इस मॉड्यूल को सिर्फ़ तब छोड़ा जा सकता है, जब यह रूट मॉड्यूल हो (जैसा कि तब है, जब वह किसी दूसरे मॉड्यूल पर निर्भर न हो). मॉड्यूल का मान्य नाम: 1) सिर्फ़ अंग्रेज़ी के छोटे अक्षरों (a-z), अंक (0-9), बिंदु (.), हाइफ़न (-), और अंडरस्कोर (_) होने चाहिए; 2) अंग्रेज़ी के छोटे अक्षर से शुरू होने चाहिए; 3) अंग्रेज़ी के छोटे अक्षर या अंक से खत्म होने चाहिए. |
version
|
डिफ़ॉल्ट = '' मॉड्यूल का वर्शन. इस मॉड्यूल को सिर्फ़ तब छोड़ा जा सकता है, जब यह रूट मॉड्यूल हो (जैसा कि तब है, जब वह किसी दूसरे मॉड्यूल पर निर्भर न हो). |
compatibility_level
|
डिफ़ॉल्ट = 0 मॉड्यूल के साथ काम करने का लेवल; जब भी कोई बड़ा बदलाव किया जा सके, तो इसे बदलना चाहिए. यह SumVer के मामले में, मॉड्यूल का "मुख्य वर्शन" है. हालांकि, यह वर्शन स्ट्रिंग में एम्बेड नहीं होता, बल्कि यह एक अलग फ़ील्ड के तौर पर मौजूद होता है. अलग-अलग कम्पैटबिलटी लेवल वाले मॉड्यूल, वर्शन रिज़ॉल्यूशन में इस तरह से शामिल होते हैं, जैसे कि वे अलग-अलग नाम वाले मॉड्यूल हों. हालांकि, फ़ाइनल डिपेंडेंसी ग्राफ़ में एक ही नाम वाले अलग-अलग मॉड्यूल वाले कई मॉड्यूल नहीं हो सकते. ऐसा तब तक होता है, जब तक multiple_version_override लागू न हो. ज़्यादा जानकारी के लिए, वहां देखें.
|
repo_name
|
डिफ़ॉल्ट = '' इस मॉड्यूल को दिखाने वाली रिपॉज़िटरी का नाम, जैसा कि मॉड्यूल में दिखता है. डिफ़ॉल्ट रूप से, रेपो का नाम मॉड्यूल का नाम होता है. यह ऐसे प्रोजेक्ट के माइग्रेशन को आसान बनाने के लिए तय किया जा सकता है जो अपने लिए ऐसे रेपो नाम का इस्तेमाल कर रहे हैं जो उसके मॉड्यूल के नाम से अलग है. |
bazel_compatibility
|
Iterable of strings ;
डिफ़ॉल्ट = []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
|
डिफ़ॉल्ट = गलत है यह बताता है कि यह एक्सटेंशन, ओएस पर निर्भर है या नहीं |
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
|
default = " " ऑब्जेक्ट के बीच में सेपरेटर स्ट्रिंग, डिफ़ॉल्ट रूप से स्पेस (" ") होती है. |
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 ;
डिफ़ॉल्ट = कोई नहींअगर बताया गया हो, तो अनुमति वाले फ़ील्ड के सेट को सीमित करता है. संभावित वैल्यू ये हैं:
|
init
|
callable; or 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)
step
की बढ़ोतरी का इस्तेमाल करके, ऐसी सूची बनाता है जिसमें आइटम start
से stop
पर जाते हैं. अगर एक तर्क दिया जाता है, तो आइटम की रेंज 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 ;
डिफ़ॉल्ट = कोई नहींपहले आइटम का वैकल्पिक इंडेक्स, जिसे नतीजे की सूची में शामिल नहीं किया जाना चाहिए; stop तक पहुंचने से पहले सूची बन जाना बंद हो जाता है.
|
step
|
डिफ़ॉल्ट = 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
|
default = 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 ;
डिफ़ॉल्ट = कोई नहींनियम की सभी विशेषताओं के बारे में बताने के लिए डिक्शनरी. यह एट्रिब्यूट के नाम से एट्रिब्यूट ऑब्जेक्ट पर मैप करता है (attr मॉड्यूल देखें). _ से शुरू होने वाले एट्रिब्यूट निजी होते हैं. इनका इस्तेमाल किसी फ़ाइल में किसी लेबल पर इंप्लिसिट डिपेंडेंसी जोड़ने के लिए किया जा सकता है. डेटा स्टोर करने की जगह का नियम, जनरेट किए गए आर्टफ़ैक्ट पर निर्भर नहीं कर सकता. name एट्रिब्यूट को इंप्लिसिट तरीके से जोड़ा गया है और यह बताया नहीं जाना चाहिए.
|
local
|
default = False बताता है कि यह नियम लोकल सिस्टम से सब कुछ फ़ेच करता है. साथ ही, हर फ़ेच के समय इसका फिर से आकलन किया जाना चाहिए. |
environ
|
sequence of strings ;
डिफ़ॉल्ट = []एनवायरमेंट वैरिएबल की सूची देता है, जिस पर यह रिपॉज़िटरी का यह नियम निर्भर करता है. अगर उस सूची में मौजूद किसी एनवायरमेंट वैरिएबल में बदलाव होता है, तो डेटा स्टोर करने की जगह को फिर से फ़ेच किया जाएगा. |
configure
|
डिफ़ॉल्ट = गलत इससे पता चलता है कि डेटा स्टोर करने की जगह, कॉन्फ़िगरेशन के लिए सिस्टम की जांच करती है |
remotable
|
डिफ़ॉल्ट = गलत प्रयोग के तौर पर उपलब्ध. इस पैरामीटर पर एक्सपेरिमेंट जारी है और इसे किसी भी समय बदला जा सकता है. कृपया इस पर निर्भर न रहें. इसे ---experimental_repo_remote_exec रिमोट एक्ज़ीक्यूशन के साथ काम करता है सेट करके, एक्सपेरिमेंट के तौर पर चालू किया जा सकता है |
doc
|
डिफ़ॉल्ट = '' रिपॉज़िटरी के नियम की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल की मदद से लिया जा सकता है. |
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 ;
डिफ़ॉल्ट = कोई नहींनियम की सभी विशेषताओं के बारे में बताने के लिए डिक्शनरी. यह एट्रिब्यूट के नाम से एट्रिब्यूट ऑब्जेक्ट पर मैप करता है (attr मॉड्यूल देखें). _ से शुरू होने वाले एट्रिब्यूट निजी होते हैं. इनका इस्तेमाल किसी लेबल पर इंप्लिसिट डिपेंडेंसी जोड़ने के लिए किया जा सकता है. name एट्रिब्यूट को इंप्लिसिट तरीके से जोड़ा गया है और यह बताया नहीं जाना चाहिए. visibility , deprecation , tags , testonly , और features एट्रिब्यूट इंप्लिसिट तरीके से जोड़े गए हैं और उन्हें ओवरराइड नहीं किया जा सकता. ज़्यादातर नियमों में कुछ ही विशेषताओं की ज़रूरत होती है. मेमोरी के इस्तेमाल को सीमित करने के लिए, नियम फ़ंक्शन attr के साइज़ पर सीमा लागू करता है.
|
outputs
|
dict; or None; or function ;
डिफ़ॉल्ट = कोई नहींअब काम नहीं करता. इस पैरामीटर के इस्तेमाल पर रोक लगा दी गई है और इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें. यह ---incompatible_no_rule_outputs_param के साथ बंद है. इस फ़्लैग का इस्तेमाल करके यह पुष्टि करें कि आपका कोड, तुरंत हटाए जाने के लिए इस्तेमाल किया जा सकता है या नहीं. इस पैरामीटर के इस्तेमाल पर रोक लगा दी गई है. इसके बजाय, OutputGroupInfo या attr.output का इस्तेमाल करने के लिए, नियमों को माइग्रेट करें. पहले से एलान किए गए आउटपुट की जानकारी देने के लिए स्कीमा. इस आर्ग्युमेंट की वैल्यू या तो डिक्शनरी है या कॉलबैक फ़ंक्शन है, जो डिक्शनरी बनाता है. कॉलबैक, कैलकुलेट की गई डिपेंडेंसी एट्रिब्यूट की तरह ही काम करता है: फ़ंक्शन के पैरामीटर के नाम, नियम के एट्रिब्यूट से मैच किए जाते हैं. उदाहरण के लिए, अगर डिक्शनरी में हर एंट्री, पहले से तय किया गया एक आउटपुट बनाती है. इसमें कुंजी एक आइडेंटिफ़ायर होती है और वैल्यू एक स्ट्रिंग टेंप्लेट होती है, जो आउटपुट का लेबल तय करती है. नियम लागू करने वाले फ़ंक्शन में, आइडेंटिफ़ायर, फ़ील्ड का नाम बन जाता है. इसका इस्तेमाल,
व्यावहारिक तौर पर, सबसे सामान्य प्रतिस्थापन प्लेसहोल्डर |
executable
|
default = False क्या इस नियम को एक्ज़ीक्यूटेबल माना जा सकता है. इसका मतलब है कि क्या इस नियम पर blaze run निर्देश लागू हो सकता है. ज़्यादा जानकारी के लिए, नियम पेज देखें.
|
output_to_genfiles
|
default = False सही होने पर, फ़ाइलें बिन डायरेक्ट्री के बजाय, genfiles डायरेक्ट्री में जनरेट की जाएंगी. जब तक मौजूदा नियमों (जैसे, C++ के लिए हेडर फ़ाइलें जनरेट करते समय) के साथ काम करने के लिए इसकी ज़रूरत न हो, तब तक इस फ़्लैग को सेट न करें. |
fragments
|
sequence of strings ;
डिफ़ॉल्ट = []कॉन्फ़िगरेशन फ़्रैगमेंट के नामों की सूची, जिनके टारगेट कॉन्फ़िगरेशन में नियम ज़रूरी है. |
host_fragments
|
sequence of strings ;
डिफ़ॉल्ट = []कॉन्फ़िगरेशन फ़्रैगमेंट के नामों की सूची, जो नियम के लिए होस्ट कॉन्फ़िगरेशन में ज़रूरी है. |
_skylark_testable
|
डिफ़ॉल्ट = गलत (प्रयोग के तौर पर उपलब्ध) सही होने पर, इस नियम में अपनी कार्रवाइयों की जांच ऐसे नियमों के हिसाब से की जाएगी जो इस पर निर्भर हैं. इसके लिए, उन्हें Actions की सेवा देने वाली कंपनी की मदद लेनी होगी. सेवा देने वाली कंपनी, ctx.created_actions() को कॉल करके नियम के लिए भी उपलब्ध होती है. इसका इस्तेमाल सिर्फ़ Starlark के नियमों के विश्लेषण-समय के व्यवहार की जांच करने के लिए किया जाना चाहिए. आने वाले समय में यह फ़्लैग हटाया जा सकता है. |
toolchains
|
sequence ;
डिफ़ॉल्ट = []अगर यह सेट है, तो इस नियम के लिए टूलचेन के सेट की ज़रूरत होती है. सूची में स्ट्रिंग, लेबल या StarlarkToolchainTypeApi ऑब्जेक्ट को किसी भी कॉम्बिनेशन में शामिल किया जा सकता है. टूलचेन, मौजूदा प्लैटफ़ॉर्म की जांच करके मिलेंगे और उन्हें ctx.toolchain के ज़रिए नियम लागू करने के लिए उपलब्ध कराया जाएगा.
|
incompatible_use_toolchain_transition
|
default = False अब इस्तेमाल में नहीं है, इसका इस्तेमाल नहीं किया जा सकता है और इसे हटा देना चाहिए. |
doc
|
डिफ़ॉल्ट = '' नियम से जुड़ी ऐसी जानकारी जिसे दस्तावेज़ बनाने वाले टूल की मदद से लिया जा सकता है. |
provides
|
डिफ़ॉल्ट = [] उन कंपनियों की सूची जिन्हें लागू करने वाले फ़ंक्शन को दिखाना ज़रूरी है. अगर लागू करने वाला फ़ंक्शन, रिटर्न वैल्यू से यहां दी गई सूची में शामिल किसी भी कंपनी को छोड़ देता है, तो यह एक गड़बड़ी है. हालांकि, लागू करने वाला फ़ंक्शन, सेवा देने वाली ऐसी कंपनियां भी दिखा सकता है जो यहां दी गई सूची में शामिल नहीं हैं. सूची का हर एलिमेंट एक |
exec_compatible_with
|
sequence of strings ;
डिफ़ॉल्ट = []एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर लागू होने वाली पाबंदियों की एक सूची, जो इस तरह के नियम के सभी टारगेट पर लागू होती है. |
analysis_test
|
डिफ़ॉल्ट = गलत सही होने पर, इस नियम को विश्लेषण की जांच के तौर पर माना जाता है. ध्यान दें: विश्लेषण जांच के नियमों को मुख्य रूप से Starlark की मुख्य लाइब्रेरी में उपलब्ध इंफ़्रास्ट्रक्चर का इस्तेमाल करके तय किया जाता है. दिशा-निर्देशों के लिए जांच देखें. अगर कोई नियम, विश्लेषण से जुड़े टेस्ट के नियम के तौर पर तय किया गया है, तो उसे अपने एट्रिब्यूट पर analysis_test_transition का इस्तेमाल करके तय किए गए कॉन्फ़िगरेशन ट्रांज़िशन का इस्तेमाल करने की अनुमति मिल जाती है. हालांकि, इसमें कुछ पाबंदियों को शामिल किया जाता है:
|
build_setting
|
BuildSetting; or None ;
डिफ़ॉल्ट = कोई नहींअगर सेट हो, तो बताता है कि यह नियम किस तरह का build setting है. config मॉड्यूल देखें. अगर इसे सेट किया जाता है, तो इस नियम में "build_setting_default" नाम की एक ज़रूरी विशेषता अपने-आप जोड़ दी जाती है. साथ ही, यहां दी गई वैल्यू से मिलता-जुलता एक टाइप जोड़ दिया जाता है.
|
cfg
|
डिफ़ॉल्ट = कोई नहीं अगर इसे सेट किया जाता है, तो विश्लेषण से पहले नियम के कॉन्फ़िगरेशन ट्रांज़िशन पर ले जाता है. यह नियम अपने कॉन्फ़िगरेशन पर लागू होगा. |
exec_groups
|
dict; or None ;
डिफ़ॉल्ट = कोई नहींएक्ज़ीक्यूशन ग्रुप के नाम (स्ट्रिंग) को बोलकर exec_group करें. अगर यह नीति सेट है, तो इससे नियमों को एक ही टारगेट में, कई निष्पादन प्लैटफ़ॉर्म पर कार्रवाइयां करने की अनुमति मिलती है. ज़्यादा जानकारी के लिए, एक्ज़ीक्यूशन ग्रुप के दस्तावेज़ देखें.
|
compile_one_filetype
|
sequence of strings; or None ;
डिफ़ॉल्ट = कोई नहींइसका इस्तेमाल करता है --compile_one_डिपेंडेंसी: अगर एक से ज़्यादा नियम तय की गई फ़ाइल का इस्तेमाल करते हैं, तो क्या हमें दूसरे नियम के बजाय इस नियम को चुनना चाहिए. |
name
|
string; or None ;
डिफ़ॉल्ट = कोई नहींअब काम नहीं करता. इस पैरामीटर के इस्तेमाल पर रोक लगा दी गई है और इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें. यह --+incompatible_remove_rule_name_parameter के साथ बंद है. इस फ़्लैग का इस्तेमाल करके यह पुष्टि करें कि आपका कोड, तुरंत हटाए जाने के लिए इस्तेमाल किया जा सकता है या नहीं. अब काम नहीं करता: इस्तेमाल न करें. इस नियम का नाम, जैसा कि Bazel ने समझा और इसे लॉग करने, अगर यह पैरामीटर हटाया जाता है, तो नियम का नाम Starlark के पहले ग्लोबल वैरिएबल के नाम पर सेट हो जाता है, ताकि यह नियम अपने एलान किए गए .bzl मॉड्यूल के अंदर ही इस नियम से जुड़ सके. इसलिए, अगर नाम किसी नियम के लिए साफ़ तौर पर नाम देने से, नियम को इंस्टैंशिएट करने की अनुमति नहीं मिलती. |
चुनें
unknown select(x, no_match_error='')
select()
एक हेल्पर फ़ंक्शन है, जो नियम एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है बनाता है. ज़्यादा जानकारी के लिए एनसाइक्लोपीडिया बनाएं देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी है यह एक ऐसा लिखवाना जो वैल्यू के लिए कॉन्फ़िगरेशन की शर्तों को मैप करता है. हर कुंजी एक लेबल या लेबल स्ट्रिंग होती है, जो config_setting या कंस्ट्रेंट_वैल्यू इंस्टेंस की पहचान करती है. स्ट्रिंग के बजाय लेबल का इस्तेमाल कब करना चाहिए, यह जानने के लिए मैक्रो से जुड़ा दस्तावेज़ देखें. |
no_match_error
|
डिफ़ॉल्ट = '' अगर कोई भी शर्त मेल नहीं खाती है, तो कस्टम गड़बड़ी की जानकारी देना ज़रूरी नहीं है. |
single_version_override
None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)इससे यह पता चलता है कि किसी डिपेंडेंसी को अब भी रजिस्ट्री से आना चाहिए, लेकिन उसके वर्शन को पिन किया जाना चाहिए या उसकी रजिस्ट्री को बदल दिया जाना चाहिए या लागू किए गए पैच की सूची को बदला जाना चाहिए. यह डायरेक्टिव सिर्फ़ रूट मॉड्यूल में लागू होता है. दूसरे शब्दों में, अगर किसी मॉड्यूल का इस्तेमाल दूसरे लोग डिपेंडेंसी के तौर पर करते हैं, तो उसके अपने ओवरराइड को अनदेखा कर दिया जाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
module_name
|
ज़रूरी है इस ओवरराइड को लागू करने के लिए, Bazel मॉड्यूल डिपेंडेंसी का नाम. |
version
|
default = '' डिपेंडेंसी ग्राफ़ में इस मॉड्यूल के एलान किए गए वर्शन को बदल देता है. दूसरे शब्दों में, इस मॉड्यूल को बदलने वाले इस वर्शन में "पिन" किया जाएगा. अगर कोई व्यक्ति रजिस्ट्री या पैच को ओवरराइड करना चाहता है, तो इस एट्रिब्यूट को छोड़ा जा सकता है. |
registry
|
default = '' इस मॉड्यूल के लिए रजिस्ट्री को बदल देता है; रजिस्ट्री की डिफ़ॉल्ट सूची से इस मॉड्यूल को ढूंढने के बजाय, दी गई रजिस्ट्री का इस्तेमाल किया जाना चाहिए. |
patches
|
Iterable of strings ;
डिफ़ॉल्ट = []इस मॉड्यूल पर लागू करने के लिए, पैच फ़ाइलों पर ले जाने वाले लेबल की सूची. पैच फ़ाइलें, टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. इन्हें सूची के क्रम में लागू किया जाता है. |
patch_cmds
|
Iterable of strings ;
डिफ़ॉल्ट = []पैच लागू होने के बाद, Linux/Macos पर लागू किए जाने वाले बैश निर्देशों का क्रम. |
patch_strip
|
डिफ़ॉल्ट = 0 यह Unix पैच के --strip आर्ग्युमेंट के जैसा है. |
क्रम से लगाया गया
list sorted(iterable, *, key=None, reverse=False)क्रम से लगाई गई नई सूची देता है जिसमें दिए गए फिर से इस्तेमाल किए जा सकने वाले क्रम के सभी एलिमेंट शामिल होते हैं. अगर एलिमेंट x और y के किसी जोड़े की तुलना x < y का इस्तेमाल करके नहीं की जाती है, तो गड़बड़ी हो सकती है. एलिमेंट को बढ़ते क्रम में लगाया जाता है. ऐसा तब तक होता है, जब तक रिवर्स आर्ग्युमेंट 'सही' न हो. ऐसे मामले में, एलिमेंट का क्रम घटते क्रम में लगाया जाता है. क्रम से लगाने का तरीका स्थिर होता है: जिन एलिमेंट की तुलना एक जैसी होती है वे अपने मूल क्रम में बने रहते हैं.
sorted([3, 5, 4]) == [3, 4, 5]
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
iterable
|
ज़रूरी है क्रम से लगाने के लिए दोहराया जा सकने वाला क्रम. |
key
|
डिफ़ॉल्ट = कोई नहीं तुलना से पहले, हर एलिमेंट के लिए एक वैकल्पिक फ़ंक्शन लागू किया जाता है. |
reverse
|
डिफ़ॉल्ट = गलत घटते क्रम में नतीजे दिखाता है. |
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 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
|
default = False सही होने पर, अगर मौजूदा मॉड्यूल रूट मॉड्यूल नहीं है या `--ignore_dev_dependency` चालू है, तो मॉड्यूल एक्सटेंशन के इस इस्तेमाल को अनदेखा कर दिया जाएगा. |
isolate
|
डिफ़ॉल्ट = गलत प्रयोग के तौर पर उपलब्ध. इस पैरामीटर पर एक्सपेरिमेंट जारी है और इसे किसी भी समय बदला जा सकता है. कृपया इस पर निर्भर न रहें. इसे ---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 सोर्स फ़ाइल के टारगेट व्यू से अलग है. इससे यह तय होता है कि फ़ाइल, अन्य टारगेट पर डिपेंडेंसी के तौर पर दिख सकती है या नहीं. लोड देखने की अनुमति, पैकेज के लेवल पर काम करती है: किसी मॉड्यूल को लोड करने के लिए, फ़ाइल लोड होने वाली फ़ाइल, ऐसे पैकेज में होनी चाहिए जिसे मॉड्यूल को देखने की अनुमति दी गई है. मॉड्यूल हमेशा अपने पैकेज में ही लोड किया जा सकता है, भले ही वह किसे दिखे.
हर .bzl फ़ाइल में visibility()
को सिर्फ़ एक बार कॉल किया जा सकता है. साथ ही, इसे सिर्फ़ टॉप लेवल पर कॉल किया जा सकता है, किसी फ़ंक्शन में नहीं. सबसे सही तरीका यह है कि इस कॉल को load()
स्टेटमेंट के ठीक नीचे रखा जाए और तर्क तय करने के लिए ज़रूरी कोई लॉजिक दिया जाए.
अगर फ़्लैग --check_bzl_visibility
को 'गलत है' पर सेट किया गया है, तो लोड दिखने के दौरान नीति का उल्लंघन होने पर चेतावनियां भेजी जाएंगी, लेकिन बिल्ड फ़ेल नहीं होगा.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
value
|
ज़रूरी है पैकेज स्पेसिफ़िकेशन वाली स्ट्रिंग की सूची या पैकेज स्पेसिफ़िकेशन के लिए एक स्ट्रिंग. पैकेज की जानकारी,
"@" सिंटैक्स की अनुमति नहीं है; सभी स्पेसिफ़िकेशन की व्याख्या, मौजूदा मॉड्यूल के रिपॉज़िटरी के हिसाब से की जाती है. अगर ध्यान दें कि |
कार्यस्थान
None workspace(name)
इस फ़ंक्शन का इस्तेमाल सिर्फ़ WORKSPACE
फ़ाइल में किया जा सकता है. साथ ही, WORKSPACE
फ़ाइल में मौजूद दूसरे सभी फ़ंक्शन से पहले इस फ़ंक्शन का एलान करना ज़रूरी है. हर WORKSPACE
फ़ाइल में workspace
फ़ंक्शन होना चाहिए.
इस फ़ाइल फ़ोल्डर के लिए नाम सेट करता है. फ़ाइल फ़ोल्डर के नाम, प्रोजेक्ट की Java-पैकेज-स्टाइल की जानकारी होनी चाहिए.साथ ही, उसे सेपरेटर के तौर पर इस्तेमाल करना चाहिए. जैसे, github.com/bazelbuild/bazel को com_github_bazelbuild_bazel का इस्तेमाल करना चाहिए.
यह नाम उस डायरेक्ट्री के लिए इस्तेमाल किया जाता है जिसमें डेटा स्टोर करने की जगह की रनफ़ाइलें सेव की जाती हैं. उदाहरण के लिए, अगर लोकल डेटा स्टोर करने की जगह में रनफ़ाइल foo/bar
है और SPACESPACE फ़ाइल में workspace(name = 'baz')
है, तो रनफ़ाइल mytarget.runfiles/baz/foo/bar
में उपलब्ध होगी. अगर फ़ाइल फ़ोल्डर का कोई नाम नहीं दिया गया है, तो रनफ़ाइल को bar.runfiles/foo/bar
से सिंक किया जाएगा.
रिमोट रिपॉज़िटरी के नियम के नाम, फ़ाइल फ़ोल्डर के मान्य नाम होने चाहिए. उदाहरण के लिए, आपके पास maven_jar(name = 'foo')
हो सकता है, लेकिन maven_jar(name = 'foo%bar')
नहीं, क्योंकि Bazel maven_jar
के लिए एक ऐसी Workspace फ़ाइल लिखने की कोशिश करेगा जिसमें workspace(name = 'foo%bar')
हो.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
फ़ाइल फ़ोल्डर का नाम ज़रूरी है. नाम की शुरुआत अक्षर से होनी चाहिए और उनमें सिर्फ़ अक्षर, संख्याएं, अंडरस्कोर, डैश, और बिंदु शामिल किए जा सकते हैं. |
zip
list zip(*args)
tuple
का list
देता है, जहां i-वें टपल में हर तर्क क्रम या फिर से इस्तेमाल किए जा सकने वाले एलिमेंट का i-वां एलिमेंट शामिल होता है. सूची में सबसे छोटे इनपुट का साइज़ होता है. एक बार दोहराए जा सकने वाले तर्क के साथ, यह 1-टपल की सूची दिखाता है. बिना किसी आर्ग्युमेंट के, यह एक खाली सूची दिखाता है. उदाहरण: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
|
ज़िप करने के लिए सूचियाँ ज़रूरी हैं. |