पैसे चुकाकर बने सदस्य
- सभी
- 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()
- register_toolchains()
- register_toolchains()
- repository_नियम(लागू करना, attrs, लोकल, एनवायरन, कॉन्फ़िगर करना, फिर से इस्तेमाल करने लायक, दस्तावेज़)
- repository_नियम(लागू करना, attrs, लोकल, एनवायरन, कॉन्फ़िगर करना, फिर से इस्तेमाल करने लायक, दस्तावेज़)
- 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
|
डिफ़ॉल्ट = False अब काम नहीं करता, इसका इस्तेमाल नहीं किया जा रहा है और इसे हटा देना चाहिए. |
doc
|
डिफ़ॉल्ट = '' उस पहलू की जानकारी जिसे दस्तावेज़ जनरेट करने वाले टूल की मदद से निकाला जा सकता है. |
apply_to_generating_rules
|
डिफ़ॉल्ट = False सही होने पर, आसपेक्ट रेशियो को आउटपुट फ़ाइल पर लागू किए जाने पर, आउटपुट फ़ाइल को जनरेट करने के नियम पर लागू होगा. उदाहरण के लिए, मान लें कि कोई आसपेक्ट, `deps` विशेषता के ज़रिए ट्रांज़िट रूप से लागू होता है और `ऐल्फ़ा` को टारगेट करने पर इसे लागू किया जाता है. मान लीजिए कि `ऐल्फ़ा` में `deps = [':beta_return']`, जहां `बीटा_आउटपुट` टारगेट `बीटा` का एलान किया गया आउटपुट है. मान लीजिए कि `बीटा` में कोई टारगेट `चार्ली` है, तो यह आसपेक्ट के ज़रिए लागू होगा. डिफ़ॉल्ट रूप से 'गलत'. |
exec_compatible_with
|
sequence of strings ;
डिफ़ॉल्ट = []एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर मौजूद पाबंदियों की एक सूची जो इस पहलू के सभी मामलों पर लागू होती है. |
exec_groups
|
dict; or None ;
डिफ़ॉल्ट = कोई नहींलागू किए जाने वाले ग्रुप के नाम (स्ट्रिंग) को exec_group पर सेट करें. सेट किए जाने पर, पहलुओं को एक ही इंस्टेंस में कई एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाइयां करने की अनुमति देता है. ज़्यादा जानकारी के लिए, एक्ज़ीक्यूशन ग्रुप के दस्तावेज़ देखें.
|
bazel_dep
None bazel_dep(name, version='', repo_name='', dev_dependency=False)यह एलान करता है कि यह सीधे तौर पर किसी दूसरे Bazel मॉड्यूल पर निर्भर है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
ज़रूरी है डायरेक्ट डिपेंडेंसी के तौर पर जोड़े जाने वाले मॉड्यूल का नाम. |
version
|
डिफ़ॉल्ट = '' मॉड्यूल का वह वर्शन जिसे डायरेक्ट डिपेंडेंसी के तौर पर जोड़ा जाना है. |
repo_name
|
डिफ़ॉल्ट = '' इस डिपेंडेंसी को दिखाने वाले एक्सटर्नल रेपो का नाम. डिफ़ॉल्ट रूप से यह मॉड्यूल का नाम होता है. |
dev_dependency
|
डिफ़ॉल्ट = 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)डिप्सेट बनाता है.
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
|
डिफ़ॉल्ट = [] लिखवाने या बार-बार इस्तेमाल किए जा सकने वाले ऐसे एलिमेंट जिनके एलिमेंट की लंबाई 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
|
डिफ़ॉल्ट = 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
|
डिफ़ॉल्ट = '' वह प्रतिबद्धता जिसे चेक आउट किया जाना चाहिए. |
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
की वैल्यू 8/2/16 है, तो<prefix>
ज़रूरी नहीं है और यह 0b/0o/0x (या इसके बराबर, 0B/0O/0X) हो सकता है. अगरbase
, इन बेस या खास वैल्यू 0 के अलावा कोई अन्य वैल्यू है, तो प्रीफ़िक्स खाली होना चाहिए. ऐसे मामले में जहांbase
0 है, स्ट्रिंग को एक पूर्णांक लिटरल माना जाता है. इसका मतलब यह है कि अगर प्रीफ़िक्स का इस्तेमाल किया गया है, तो 2/8/10/16 के आधार पर किसी एक बेस को चुना जाता है. अगरbase
0 है, तो किसी प्रीफ़िक्स का इस्तेमाल नहीं किया गया है और इसमें एक से ज़्यादा अंक हैं. ऐसा होने पर, शुरुआती अंक 0 नहीं हो सकता. ऐसा ऑक्टल और दशमलव के बीच भ्रम की स्थिति से बचने के लिए किया जाता है. स्ट्रिंग से दिखाई गई संख्या का मान, पूर्णांक में इस्तेमाल की जा सकने वाली सीमा के अंदर होना चाहिए. - अगर
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
|
डिफ़ॉल्ट = [] वह ऑब्जेक्ट जिसे बदला जाना है. |
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 रेपो से दिखाया जाता है. ये प्रॉपर्टी, मॉड्यूल (जैसे कि नाम और वर्शन) का ज़रूरी मेटाडेटा होती हैं या इनसे मौजूदा मॉड्यूल और उस पर निर्भर लोगों के व्यवहार पर असर पड़ता है.
इसे ज़्यादा से ज़्यादा एक बार कॉल किया जाना चाहिए. अगर यह मॉड्यूल रूट मॉड्यूल है, तो इसे सिर्फ़ तभी हटाया जा सकता है, जब यह किसी दूसरे मॉड्यूल पर निर्भर न हो.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
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='')एक नया मॉड्यूल एक्सटेंशन बनाता है. इसे ग्लोबल वैल्यू में सेव करें, ताकि इसे एक्सपोर्ट किया जा सके और MODULE.bazel फ़ाइल में इस्तेमाल किया जा सके.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
implementation
|
ज़रूरी है वह फ़ंक्शन जो इस मॉड्यूल एक्सटेंशन को लागू करता है. सिर्फ़ एक पैरामीटर होना चाहिए, module_ctx . इस सुविधा को बिल्ड की शुरुआत में एक बार कॉल किया जाता है, ताकि उपलब्ध डेटा स्टोर करने की जगहों का सेट तय किया जा सके.
|
tag_classes
|
default = {} यह एक डिक्शनरी है, जो एक्सटेंशन में इस्तेमाल की गई सभी टैग क्लास के बारे में जानकारी देती है. यह टैग क्लास के नाम से tag_class ऑब्जेक्ट को मैप करता है.
|
doc
|
डिफ़ॉल्ट = '' मॉड्यूल एक्सटेंशन की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल की मदद से एक्सट्रैक्ट किया जा सकता है. |
multiple_version_override
None multiple_version_override(module_name, versions, registry='')इस नीति से यह तय होता है कि किसी डिपेंडेंसी को अब भी रजिस्ट्री से लिया जाना चाहिए, लेकिन इसके कई वर्शन को एक साथ इस्तेमाल किया जा सकता है. इस डायरेक्टिव का इस्तेमाल सिर्फ़ रूट मॉड्यूल में किया जा सकता है. दूसरे शब्दों में, अगर कोई मॉड्यूल किसी बदलाव को तय करता है, तो कोई दूसरा उसे डिपेंडेंसी के तौर पर इस्तेमाल नहीं कर सकता.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
module_name
|
ज़रूरी है इस बदलाव को लागू करने के लिए, Bazel मॉड्यूल डिपेंडेंसी का नाम. |
versions
|
Iterable of strings ;
ज़रूरी हैइसमें साफ़ तौर पर उन वर्शन के बारे में बताया जाता है जिन्हें एक साथ रखा जा सकता है. ये वर्शन, डिपेंडेंसी ग्राफ़ चुनने से पहले से मौजूद होने चाहिए. इस मॉड्यूल के लिए डिपेंडेंसी, काम करने के उसी लेवल पर "अपग्रेड" कर दी जाएगी जिसकी अनुमति सबसे ऊपर वाले वर्शन के हिसाब से होगी. वहीं, जिन डिपेंडेंसी का वर्शन, काम करने के उसी लेवल पर मंज़ूर किए गए किसी भी वर्शन से नया होता है, उनमें गड़बड़ी हो सकती है. |
registry
|
डिफ़ॉल्ट = '' इस मॉड्यूल के लिए रजिस्ट्री को बदल देता है. रजिस्ट्री की डिफ़ॉल्ट सूची से इस मॉड्यूल को ढूंढने के बजाय, दी गई रजिस्ट्री का इस्तेमाल किया जाना चाहिए. |
प्रिंट करें
None print(sep=" ", *args)
args
को डीबग आउटपुट के तौर पर प्रिंट करता है. इसे "DEBUG"
स्ट्रिंग और इस कॉल की जगह (फ़ाइल और लाइन नंबर) से पहले जोड़ा जाएगा. आर्ग्युमेंट को स्ट्रिंग में बदलने का सटीक तरीका नहीं बताया गया है और इसे किसी भी समय बदला जा सकता है. खास तौर पर, यह str()
और repr()
के फ़ॉर्मैट से अलग (और ज़्यादा जानकारी) हो सकती है.प्रोडक्शन कोड में, print
का इस्तेमाल नहीं किया जा सकता, क्योंकि इससे उपयोगकर्ताओं के लिए स्पैम बनाया जाता है. फ़ंक्शन को बंद करने के लिए, जब भी मुमकिन हो, fail()
का इस्तेमाल करके हार्ड गड़बड़ी को चुनें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
sep
|
डिफ़ॉल्ट = " " ऑब्जेक्ट के बीच की सेपरेटर स्ट्रिंग, डिफ़ॉल्ट तौर पर स्पेस (" ") होती है. |
args
|
ज़रूरी है प्रिंट किए जाने वाले ऑब्जेक्ट. |
कंपनी
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()
None register_execution_platforms(*platform_labels)इस मॉड्यूल के चुने जाने पर, पहले से तय किए गए उन प्लैटफ़ॉर्म के बारे में बताता है जिन्हें रजिस्टर करना होता है. पूरे टारगेट पैटर्न होने चाहिए, जैसे कि
@
या //
से शुरू होते हैं. ज़्यादा जानकारी के लिए टूलचेन रिज़ॉल्यूशन देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
platform_labels
|
sequence of strings ;
ज़रूरी हैरजिस्टर करने के लिए प्लैटफ़ॉर्म के लेबल. |
register_toolchains()
None register_toolchains(*toolchain_labels)पहले से तय टूलचेन को रजिस्टर करें, ताकि बैजल टूलचेन रिज़ॉल्यूशन के दौरान इसका इस्तेमाल कर सके. टूलचेन रजिस्टर करने और तय करने के उदाहरण देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
toolchain_labels
|
sequence of strings ;
ज़रूरी हैरजिस्टर करने के लिए टूलचेन के लेबल. |
register_toolchains()
None register_toolchains(*toolchain_labels)यह तय करता है कि इस मॉड्यूल के चुने जाने पर, पहले से तय टूलचेन को रजिस्टर किया जाए या नहीं. पूरे टारगेट पैटर्न होने चाहिए, जैसे कि
@
या //
से शुरू होते हैं. ज़्यादा जानकारी के लिए टूलचेन रिज़ॉल्यूशन देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
toolchain_labels
|
sequence of strings ;
ज़रूरी हैरजिस्टर करने के लिए टूलचेन के लेबल. |
रिपॉज़िटरी_नियम(लागू करना, attrs, लोकल, एनवायरन, कॉन्फ़िगर करना, फिर से इस्तेमाल करने लायक, दस्तावेज़)
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
|
डिफ़ॉल्ट = False इससे पता चलता है कि इस नियम के तहत, लोकल सिस्टम से मिलने वाली सभी जानकारी फ़ेच की जाती है. साथ ही, हर बार फ़ेच करने पर इसका फिर से आकलन किया जाना चाहिए. |
environ
|
sequence of strings ;
डिफ़ॉल्ट = []एनवायरमेंट वैरिएबल की सूची देता है, जिस पर यह रिपॉज़िटरी नियम निर्भर करता है. अगर उस सूची में मौजूद किसी एनवायरमेंट वैरिएबल में बदलाव होता है, तो रिपॉज़िटरी को फिर से फ़ेच किया जाएगा. |
configure
|
डिफ़ॉल्ट = False इससे पता चलता है कि रिपॉज़िटरी, कॉन्फ़िगरेशन के मकसद से सिस्टम की जांच करती है |
remotable
|
डिफ़ॉल्ट = गलत एक्सपेरिमेंटल. इस पैरामीटर पर एक्सपेरिमेंट जारी है और यह किसी भी समय बदल सकता है. कृपया इस पर निर्भर न रहें. इसे ---experimental_repo_remote_exec रिमोट एक्ज़ीक्यूट करने की सुविधा के साथ काम करता है" को सेट करके, एक्सपेरिमेंट के तौर पर चालू किया जा सकता है |
doc
|
डिफ़ॉल्ट = '' डेटा स्टोर करने की जगह के नियम की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल की मदद से हासिल किया जा सकता है. |
रिपॉज़िटरी_नियम(लागू करना, attrs, लोकल, एनवायरन, कॉन्फ़िगर करना, फिर से इस्तेमाल करने लायक, दस्तावेज़)
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
|
डिफ़ॉल्ट = False इससे पता चलता है कि इस नियम के तहत, लोकल सिस्टम से मिलने वाली सभी जानकारी फ़ेच की जाती है. साथ ही, हर बार फ़ेच करने पर इसका फिर से आकलन किया जाना चाहिए. |
environ
|
sequence of strings ;
डिफ़ॉल्ट = []एनवायरमेंट वैरिएबल की सूची देता है, जिस पर यह रिपॉज़िटरी नियम निर्भर करता है. अगर उस सूची में मौजूद किसी एनवायरमेंट वैरिएबल में बदलाव होता है, तो रिपॉज़िटरी को फिर से फ़ेच किया जाएगा. |
configure
|
डिफ़ॉल्ट = False इससे पता चलता है कि रिपॉज़िटरी, कॉन्फ़िगरेशन के मकसद से सिस्टम की जांच करती है |
remotable
|
डिफ़ॉल्ट = गलत एक्सपेरिमेंटल. इस पैरामीटर पर एक्सपेरिमेंट जारी है और यह किसी भी समय बदल सकता है. कृपया इस पर निर्भर न रहें. इसे ---experimental_repo_remote_exec रिमोट एक्ज़ीक्यूट करने की सुविधा के साथ काम करता है" को सेट करके, एक्सपेरिमेंट के तौर पर चालू किया जा सकता है |
doc
|
डिफ़ॉल्ट = '' डेटा स्टोर करने की जगह के नियम की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल की मदद से हासिल किया जा सकता है. |
रीपीआर
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 एट्रिब्यूट को साफ़ तौर पर जोड़ा गया है और उसे बदला नहीं जा सकता. ज़्यादातर नियमों में कुछ ही एट्रिब्यूट की ज़रूरत होती है. मेमोरी के इस्तेमाल को सीमित करने के लिए, नियम फ़ंक्शन attrs के साइज़ पर कैप लागू करता है.
|
outputs
|
dict; or None; or function ;
डिफ़ॉल्ट = कोई नहींअब सेवा में नहीं है. यह पैरामीटर अब काम नहीं करता है. इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें. यह ---incompatible_no_rule_outputs_param के साथ बंद है. इस फ़्लैग का इस्तेमाल करके, पुष्टि करें कि आपका कोड जल्द ही हटाए जाने के लिए तैयार है. यह पैरामीटर अब काम नहीं करता. इसके बजाय, OutputGroupInfo या attr.output का इस्तेमाल करने के लिए, नियमों को माइग्रेट करें. पहले से तय किए गए आउटपुट तय करने के लिए स्कीमा. इस आर्ग्युमेंट की वैल्यू या तो डिक्शनरी या कॉलबैक फ़ंक्शन है, जो डिक्शनरी बनाता है. कॉलबैक, कंप्यूट किए गए डिपेंडेंसी एट्रिब्यूट की तरह ही काम करता है: फ़ंक्शन के पैरामीटर के नामों का मिलान, नियम के एट्रिब्यूट से किया जाता है. उदाहरण के लिए, अगर आपने डिक्शनरी में हर एंट्री, पहले से तय किया गया एक आउटपुट बनाता है. इसमें कुंजी एक आइडेंटिफ़ायर होता है और वैल्यू एक स्ट्रिंग टेंप्लेट होती है, जो आउटपुट का लेबल तय करती है. नियम लागू करने वाले फ़ंक्शन में, आइडेंटिफ़ायर,
व्यावहारिक रूप से, सबसे सामान्य प्रतिस्थापन प्लेसहोल्डर |
executable
|
डिफ़ॉल्ट = गलत क्या इस नियम को एक्ज़ीक्यूटेबल माना जाता है. इसका मतलब यह है कि क्या इस नियम पर blaze run निर्देश लागू हो सकता है. ज़्यादा जानकारी के लिए, नियमों वाला पेज देखें.
|
output_to_genfiles
|
default = False अगर सही है, तो फ़ाइलें bin डायरेक्ट्री के बजाय genfiles डायरेक्ट्री में जनरेट की जाएंगी. जब तक मौजूदा नियमों (जैसे, C++ के लिए हेडर फ़ाइलें जनरेट करते समय) के साथ काम करने के लिए इसकी ज़रूरत न हो, तब तक यह फ़्लैग सेट न करें. |
fragments
|
sequence of strings ;
डिफ़ॉल्ट = []कॉन्फ़िगरेशन फ़्रैगमेंट के नामों की सूची, जो इस नियम के टारगेट कॉन्फ़िगरेशन में ज़रूरी है. |
host_fragments
|
sequence of strings ;
डिफ़ॉल्ट = []कॉन्फ़िगरेशन फ़्रैगमेंट के नामों की सूची जो इस नियम के होस्ट कॉन्फ़िगरेशन में ज़रूरी है. |
_skylark_testable
|
डिफ़ॉल्ट = गलत (प्रयोग के तौर पर) अगर यह नियम सही है, तो अपनी कार्रवाइयों की जांच ऐसे नियमों के हिसाब से की जाएगी जो इस पर निर्भर करते हैं. इसके लिए, यह नियम कार्रवाई की सुविधा देने वाली कंपनी की मदद से कार्रवाई करेगा. सेवा देने वाली कंपनी, ctx.created_actions() को कॉल करके नियम के लिए भी उपलब्ध है. इसका इस्तेमाल सिर्फ़ Starlark नियमों के विश्लेषण के समय के व्यवहार की जांच करने के लिए किया जाना चाहिए. आने वाले समय में इस फ़्लैग को हटाया जा सकता है. |
toolchains
|
sequence ;
डिफ़ॉल्ट = []अगर यह सेट किया गया है, तो इस नियम के लिए टूलचेन के सेट की ज़रूरत होती है. सूची में स्ट्रिंग, लेबल या StarlarkToolchainTypeApi ऑब्जेक्ट शामिल हो सकते हैं. इन्हें किसी भी कॉम्बिनेशन में शामिल किया जा सकता है. टूल चेन मौजूदा प्लैटफ़ॉर्म की जांच करने पर मिलेगी और नियम लागू करने के लिए ctx.toolchain की मदद से उन्हें उपलब्ध कराया जाएगा.
|
incompatible_use_toolchain_transition
|
डिफ़ॉल्ट = False अब काम नहीं करता, इसका इस्तेमाल नहीं किया जा रहा है और इसे हटा देना चाहिए. |
doc
|
डिफ़ॉल्ट = '' नियम का ब्यौरा, जिसे दस्तावेज़ जनरेट करने वाले टूल की मदद से हासिल किया जा सकता है. |
provides
|
डिफ़ॉल्ट = [] सेवा देने वाली उन कंपनियों की सूची जिन्हें लागू करने वाला फ़ंक्शन दिखाना ज़रूरी है. अगर लागू करने वाला फ़ंक्शन, यहां सूची में दी गई किसी भी सेवा देने वाली कंपनी को उसकी रिटर्न वैल्यू से हटा देता है, तो यह एक गड़बड़ी है. हालांकि, लागू करने का फ़ंक्शन, सेवा देने वाली ऐसी कंपनियां दिखा सकता है जो यहां दी गई सूची में शामिल नहीं हैं. सूची का हर एलिमेंट, |
exec_compatible_with
|
sequence of strings ;
डिफ़ॉल्ट = []एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर मौजूद पाबंदियों की एक सूची, जो इस नियम टाइप के सभी टारगेट पर लागू होती है. |
analysis_test
|
डिफ़ॉल्ट = False अगर सही है, तो इस नियम को विश्लेषण टेस्ट के तौर पर माना जाता है. ध्यान दें: विश्लेषण की जांच के नियम, मुख्य 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
|
डिफ़ॉल्ट = '' डिपेंडेंसी ग्राफ़ में, इस मॉड्यूल के एलान किए गए वर्शन को बदल देता है. दूसरे शब्दों में, इस मॉड्यूल को बदलने वाले इस वर्शन में "पिन" किया जाएगा. अगर कोई व्यक्ति रजिस्ट्री या पैच को बदलना चाहता है, तो इस एट्रिब्यूट को छोड़ा जा सकता है. |
registry
|
डिफ़ॉल्ट = '' इस मॉड्यूल के लिए रजिस्ट्री को बदल देता है. रजिस्ट्री की डिफ़ॉल्ट सूची से इस मॉड्यूल को ढूंढने के बजाय, दी गई रजिस्ट्री का इस्तेमाल किया जाना चाहिए. |
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
|
डिफ़ॉल्ट = () वह ऑब्जेक्ट जिसे बदला जाना है. |
टाइप करें
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)यह फ़ंक्शन किसी मॉड्यूल एक्सटेंशन को दिखाने वाला प्रॉक्सी ऑब्जेक्ट दिखाता है. मॉड्यूल एक्सटेंशन टैग बनाने के लिए, इसके तरीकों का इस्तेमाल किया जा सकता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
extension_bzl_file
|
ज़रूरी है Starlark फ़ाइल के लिए एक लेबल, जो मॉड्यूल एक्सटेंशन की जानकारी देता है. |
extension_name
|
ज़रूरी है इस्तेमाल किए जाने वाले मॉड्यूल एक्सटेंशन का नाम. इस नाम के चिह्न को Starlark फ़ाइल के ज़रिए एक्सपोर्ट किया जाना चाहिए. |
dev_dependency
|
default = False अगर सही है, तो मॉड्यूल एक्सटेंशन के इस इस्तेमाल को अनदेखा कर दिया जाएगा, अगर मौजूदा मॉड्यूल रूट मॉड्यूल नहीं है या `--ignore_dev_dependency` चालू है. |
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
फ़ंक्शन होना चाहिए.
इस फ़ाइल फ़ोल्डर का नाम सेट करता है. फ़ाइल फ़ोल्डर के नाम, प्रोजेक्ट के Java-पैकेज-स्टाइल की जानकारी देने वाले होने चाहिए.इसमें अंडरस्कोर को सेपरेटर के तौर पर इस्तेमाल किया जाना चाहिए. जैसे, 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-th एलिमेंट शामिल होता है. सूची में सबसे छोटे इनपुट का साइज़ होता है. एक बार दोहराए जा सकने वाले तर्क के साथ, यह 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
|
ज़िप करने के लिए, सूचियाँ ज़रूरी हैं. |