सदस्य
- सभी
- analysis_test_transition
- कोई भी
- archive_override
- आसपेक्ट
- bazel_dep
- बाइंड करें
- bool
- configuration_field
- डिप्सेट
- शब्दकोश
- dir
- सूची में शामिल करें
- exec_group
- फ़ेल
- फ़्लोट
- getattr
- git_override
- hasattr
- हैश
- इंट
- लेंस
- list
- local_path_override
- ज़्यादा से ज़्यादा
- मिनट
- मॉड्यूल
- module_extension
- multiple_version_override
- प्रिंट
- सेवा देने वाली कंपनी
- रेंज
- register_execution_platforms()
- register_execution_platforms(dev_dependency)
- register_toolchains()
- register_toolchains(dev_dependency)
- repository_Rule(लागू करना, attrs, लोकल, एनवायरन, कॉन्फ़िगर करना, रिमोट को हटाया जा सकता है, दस्तावेज़)
- repository_Rule(लागू करना, attrs, लोकल, एनवायरन, कॉन्फ़िगर करना, रिमोट को हटाया जा सकता है, दस्तावेज़)
- आरईपीआर
- रिवर्स
- नियम
- चुनें
- single_version_override
- क्रम से लगाया गया
- str
- tag_class
- टपल
- टाइप
- use_extension
- use_repo
- विज़िबिलिटी
- वर्कस्पेस
- ज़िप
सभी
bool all(elements)
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)
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)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
module_name
|
ज़रूरी है यह बदलाव लागू करने के लिए, Baज़र मॉड्यूल की डिपेंडेंसी का नाम. |
urls
|
string; or Iterable of strings ;
ज़रूरी हैसंग्रह के यूआरएल; http(s):// या file:// URLs हो सकते हैं. |
integrity
|
डिफ़ॉल्ट = '' सबरिसॉर्स इंटेग्रिटी फ़ॉर्मैट में, संग्रहित फ़ाइल का अनुमानित चेकसम. |
strip_prefix
|
डिफ़ॉल्ट = '' निकाली गई फ़ाइलों से स्ट्रिप करने के लिए एक डायरेक्ट्री प्रीफ़िक्स. |
patches
|
Iterable of strings ;
डिफ़ॉल्ट = []इस मॉड्यूल पर लागू करने के लिए, पैच फ़ाइलों की ओर पॉइंट करने वाले लेबल की सूची. पैच फ़ाइलें टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. ये सूची के क्रम में लागू किए जाते हैं. |
patch_cmds
|
Iterable of strings ;
डिफ़ॉल्ट = []पैच लागू होने के बाद, Linux/Macos पर Bash कमांड का क्रम. |
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
|
डिफ़ॉल्ट = गलत अब यह इस्तेमाल में नहीं है और इसे हटा दिया जाना चाहिए. अब यह काम नहीं कर रहा है. |
doc
|
डिफ़ॉल्ट = '' उस पहलू के बारे में जानकारी जिसे दस्तावेज़ जनरेट करने वाले टूल की मदद से हासिल किया जा सकता है. |
apply_to_generating_rules
|
डिफ़ॉल्ट = गलत अगर सही है, तो आउटपुट फ़ाइल पर लागू किया जाएगा. इसके बजाय, उस आसपेक्ट को आउटपुट फ़ाइल के जनरेट करने के नियम पर लागू किया जाएगा. उदाहरण के लिए, मान लें कि कोई पहलू `deps` के ज़रिए ट्रांज़िट तरीके से फैलता है और इसे `ऐल्फ़ा` को टारगेट करने पर लागू किया जाता है. मान लीजिए कि `ऐल्फ़ा` में `deps = [':beta_Output']` है, जहां `beta_Output` किसी टारगेट `बीटा` का एलान किया गया आउटपुट है. मान लीजिए कि `बीटा` का लक्ष्य `चार्ली` अपने एक `डेप्स` के रूप में है. अगर पहलू के लिए `apply_to_generting_rules=True` लागू होता है, तो पक्ष `अल्फ़ा`, `बीटा` और `चार्ली` के ज़रिए फैल जाएगा. अगर गलत है, तो आसपेक्ट रेशियो सिर्फ़ `ऐल्फ़ा` में चलेगा. डिफ़ॉल्ट रूप से 'गलत'. |
exec_compatible_with
|
sequence of strings ;
डिफ़ॉल्ट = []एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर लागू होने वाली पाबंदियों की सूची, जो इस पहलू के सभी इंस्टेंस पर लागू होती है. |
exec_groups
|
dict; or None ;
डिफ़ॉल्ट = कोई नहींग्रुप का नाम (स्ट्रिंग) से exec_group s तक एक्ज़ीक्यूशन करने का टेक्स्ट. अगर नीति को सेट किया जाता है, तो इससे आसपेक्ट को एक ही इंस्टेंस में, इसे लागू करने वाले कई प्लैटफ़ॉर्म पर कार्रवाइयां करने की अनुमति मिलती है. ज़्यादा जानकारी के लिए, लागू किए जाने वाले ग्रुप का दस्तावेज़ देखें.
|
bazel_dep
None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
ज़रूरी है डायरेक्ट डिपेंडेंसी के तौर पर जोड़े जाने वाले मॉड्यूल का नाम. |
version
|
डिफ़ॉल्ट = '' मॉड्यूल का वह वर्शन जिसे डायरेक्ट डिपेंडेंसी के तौर पर जोड़ा जाना है. |
max_compatibility_level
|
डिफ़ॉल्ट = -1 मॉड्यूल के लिए, ज़्यादा से ज़्यादा compatibility_level को डायरेक्ट डिपेंडेंसी के तौर पर जोड़ा जा सकता है. मॉड्यूल के वर्शन का मतलब है कि कम से कम क्षमता का इस्तेमाल किया जाना चाहिए या नहीं. साथ ही, अगर इस एट्रिब्यूट की वैल्यू नहीं बताई गई है, तो ज़्यादा से ज़्यादा वैल्यू का भी पता चलता है.
|
repo_name
|
डिफ़ॉल्ट = '' इस डिपेंडेंसी को दिखाने वाले बाहरी रेपो का नाम. डिफ़ॉल्ट रूप से यह मॉड्यूल का नाम होता है. |
dev_dependency
|
डिफ़ॉल्ट = गलत सही होने पर, अगर मौजूदा मॉड्यूल रूट मॉड्यूल नहीं है या `--ignore_dev_dependency` चालू है, तो इस डिपेंडेंसी को अनदेखा कर दिया जाएगा. |
बाइंड
None bind(name, actual=None)
चेतावनी: bind()
का इस्तेमाल करने का सुझाव नहीं दिया जाता. बाइंड से जुड़ी समस्याओं और उनके विकल्पों के बारे में ज़्यादा जानने के लिए, बाइंड हटाने का तरीका लेख पढ़ें.
टारगेट को //external
पैकेज में एक उपनाम देता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
ज़रूरी है '//external' के तहत दिया गया लेबल अन्य नाम के रूप में काम करने के लिए |
actual
|
string; or None ;
डिफ़ॉल्ट = कोई नहींएलियास किया जाने वाला वास्तविक लेबल |
बूल
bool bool(x=False)
None
, False
, कोई खाली स्ट्रिंग (""
), संख्या 0
या कोई खाली कलेक्शन (जैसे कि ()
, []
) है, तो यह False
दिखाता है. अगर ऐसा नहीं है, तो यह True
दिखाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
डिफ़ॉल्ट = गलत वह वैरिएबल जिसे बदलना है. |
configuration_field
LateBoundDefault configuration_field(fragment, name)
इस्तेमाल का उदाहरण:
नियम के एट्रिब्यूट तय करें:
'_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)
एक्सप्रेशन से मिला है.
हैश पर आधारित सेट का इस्तेमाल, इटरेशन के दौरान डुप्लीकेट को हटाने के लिए किया जाता है. इसलिए, डिप्सेट के सभी एलिमेंट हैश होने चाहिए. हालांकि, फ़िलहाल सभी कंस्ट्रक्टर में, इस इन्वैरिएंट की लगातार जांच नहीं की जाती. लगातार जांच करने के लिए, --in कितनी_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(pairs=[], **kwargs)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
pairs
|
डिफ़ॉल्ट = [] डिक्शनरी या बार-बार इस्तेमाल होने वाला ऐसा एलिमेंट जिसके एलिमेंट की लंबाई 2 (कुंजी, वैल्यू) से शुरू होती है. |
kwargs
|
ज़रूरी है अतिरिक्त एंट्री का शब्दकोश. |
dir
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
|
डिफ़ॉल्ट = गलत अगर सही पर सेट किया जाता है, तो यह exec ग्रुप, उस नियम की टूलचेन और कंस्ट्रेंट को इनहेरिट करता है जिससे यह ग्रुप अटैच किया गया है. अगर इसे किसी दूसरी स्ट्रिंग पर सेट किया जाता है, तो आपको गड़बड़ी दिखेगी. |
असफल
None fail(msg=None, attr=None, *args)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
msg
|
डिफ़ॉल्ट = कोई नहीं अब काम नहीं करता: इसके बजाय, पोज़िशनल आर्ग्युमेंट का इस्तेमाल करें. यह आर्ग्युमेंट, इंप्लिसिट लीडर पोज़िशनल आर्ग्युमेंट की तरह काम करता है. |
attr
|
string; or None ;
डिफ़ॉल्ट = कोई नहींअब काम नहीं करता. इससे गड़बड़ी के मैसेज में इस स्ट्रिंग वाला एक वैकल्पिक प्रीफ़िक्स जुड़ जाता है. |
args
|
ज़रूरी है एसटीआर के साथ फ़ॉर्मैट की गई और स्पेस के साथ जोड़ी गई वैल्यू की सूची, जो गड़बड़ी के मैसेज में दिखती है. |
फ़्लोट
float float(x=unbound)
- अगर
x
पहले से ही फ़्लोट है, तोfloat
इसे बिना किसी बदलाव के दिखाता है. - अगर
x
बूल है, तोfloat
सही के लिए 1.0 और गलत के लिए 0.0 लौटाता है. - अगर
x
कोई पूर्णांक है, तोfloat
x पर सबसे पास की सीमित फ़्लोटिंग-पॉइंट वैल्यू दिखाता है या साइज़ बहुत बड़ा होने पर गड़बड़ी की जानकारी देता है. - अगर
x
कोई स्ट्रिंग है, तो यह एक मान्य फ़्लोटिंग-पॉइंट लिटरल होना चाहिए याNaN
,Inf
याInfinity
के बराबर (छोटे-बड़े अक्षर को अनदेखा करते हुए) होना चाहिए. इसके पहले+
या-
का निशान होना ज़रूरी नहीं है.
float()
0.0 दिखाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
डिफ़ॉल्ट = अनबाउंड वह वैल्यू जिसे बदलना है. |
getattr
unknown getattr(x, name, default=unbound)
default
(अगर बताई गई है) दिखाता है या गड़बड़ी की सूचना देता है. getattr(x, "foobar")
, x.foobar
के बराबर है.getattr(ctx.attr, "myattr") getattr(ctx.attr, "myattr", "mydefault")
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी है वह संरचना जिसकी विशेषता को ऐक्सेस किया जाता है. |
name
|
ज़रूरी है स्ट्रक्ट एट्रिब्यूट का नाम. |
default
|
डिफ़ॉल्ट = अनबाउंड दिए गए नाम का एट्रिब्यूट न होने पर, यह डिफ़ॉल्ट वैल्यू होती है. |
git_override
None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
module_name
|
ज़रूरी है यह बदलाव लागू करने के लिए, Baज़र मॉड्यूल की डिपेंडेंसी का नाम. |
remote
|
ज़रूरी है रिमोट Git रिपॉज़िटरी का यूआरएल. |
commit
|
डिफ़ॉल्ट = '' तय की गई वह पुष्टि जिसकी जांच की जानी चाहिए. |
patches
|
Iterable of strings ;
डिफ़ॉल्ट = []इस मॉड्यूल पर लागू करने के लिए, पैच फ़ाइलों की ओर पॉइंट करने वाले लेबल की सूची. पैच फ़ाइलें टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. ये सूची के क्रम में लागू किए जाते हैं. |
patch_cmds
|
Iterable of strings ;
डिफ़ॉल्ट = []पैच लागू होने के बाद, Linux/Macos पर Bash कमांड का क्रम. |
patch_strip
|
डिफ़ॉल्ट = 0 Unix पैच के --strip तर्क की तरह ही. |
hasattr
bool hasattr(x, name)
x
में, दिए गए name
का एट्रिब्यूट या तरीका है, तो 'सही' दिखाता है. ऐसा नहीं होने पर 'गलत' दिखाता है. उदाहरण:hasattr(ctx.attr, "myattr")
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी है वह ऑब्जेक्ट जिसकी जांच करनी है. |
name
|
ज़रूरी है एट्रिब्यूट का नाम. |
हैश
int hash(value)
String.hashCode()
वाले एल्गोरिदम का इस्तेमाल करके किया जाता है. इसका मतलब है: s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
value
|
ज़रूरी है हैश करने के लिए स्ट्रिंग मान. |
int
int int(x, base=unbound)
- अगर
x
पहले से ही एक पूर्णांक है, तोint
इसे बिना किसी बदलाव के दिखाता है. - अगर
x
बूल है, तोint
सही के लिए 1 और गलत के लिए 0 लौटाता है. - अगर
x
एक स्ट्रिंग है, तो उसका फ़ॉर्मैट<sign><prefix><digits>
होना चाहिए.<sign>
,"+"
,"-"
या खाली है (इसे पॉज़िटिव समझा जाता है).<digits>
0 से लेकरbase
- 1 तक के अंकों का क्रम होता है, जहां a-z तक अक्षरों (या A-Z के बराबर) का इस्तेमाल 10 से 35 तक के अंकों के रूप में किया जाता है. ऐसे मामले में जहां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 , लिटरल वैल्यू हो. अगर वैल्यू कोई स्ट्रिंग नहीं है, तो यह पैरामीटर नहीं दिया जाना चाहिए.
|
लेंस
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
|
ज़रूरी है यह बदलाव लागू करने के लिए, Baज़र मॉड्यूल की डिपेंडेंसी का नाम. |
path
|
ज़रूरी है उस डायरेक्ट्री का पाथ जहां यह मॉड्यूल है. |
अधिकतम
unknown max(*args)
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=[])
इसे ज़्यादा से ज़्यादा एक बार कॉल किया जाना चाहिए. इसे सिर्फ़ तब छोड़ा जा सकता है, जब यह मॉड्यूल रूट मॉड्यूल हो. जैसे, अगर यह किसी दूसरे मॉड्यूल पर निर्भर न हो.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
डिफ़ॉल्ट = '' मॉड्यूल का नाम. इसे सिर्फ़ तब छोड़ा जा सकता है, जब यह मॉड्यूल रूट मॉड्यूल हो. अगर यह किसी दूसरे मॉड्यूल पर निर्भर नहीं है, तो इसे छोड़ा जा सकता है. मॉड्यूल का मान्य नाम: 1) सिर्फ़ अंग्रेज़ी के छोटे अक्षर (a-z), अंक (0-9), बिंदु (.), हाइफ़न (-), और अंडरस्कोर (_) ही होने चाहिए; 2) अंग्रेज़ी के छोटे अक्षर से शुरू करें; 3) अंग्रेज़ी के छोटे अक्षर या अंक से खत्म करें. |
version
|
डिफ़ॉल्ट = '' मॉड्यूल का वर्शन. इसे सिर्फ़ तब छोड़ा जा सकता है, जब यह मॉड्यूल रूट मॉड्यूल हो. अगर यह किसी दूसरे मॉड्यूल पर निर्भर नहीं है, तो इसे छोड़ा जा सकता है. |
compatibility_level
|
डिफ़ॉल्ट = 0 मॉड्यूल के साथ काम करने का लेवल; हर बार जब कोई ऐसा बड़ा बदलाव किया जाता है जो काम नहीं करता, तो इसे बदलना चाहिए. यह मुख्य रूप से "मुख्य वर्शन" है SemVer के संदर्भ में मॉड्यूल का इस्तेमाल किया जा सकता है. हालांकि, उसे वर्शन स्ट्रिंग में एम्बेड नहीं किया गया है, बल्कि यह एक अलग फ़ील्ड के तौर पर मौजूद है. साथ काम करने के अलग-अलग लेवल वाले मॉड्यूल, वर्शन रिज़ॉल्यूशन में इस तरह से काम करते हैं जैसे कि वे अलग-अलग नाम वाले मॉड्यूल हों. हालांकि, आखिरी डिपेंडेंसी ग्राफ़ में एक ही नाम वाले कई मॉड्यूल नहीं हो सकते. हालांकि, कॉम्पोनेंट के साथ काम करने के अलग-अलग लेवल शामिल नहीं किए जा सकते. ऐसा तब तक होता है, जब तक multiple_version_override लागू न हो. ज़्यादा जानकारी के लिए यहां देखें.
|
repo_name
|
डिफ़ॉल्ट = '' इस मॉड्यूल को दिखाने वाली रिपॉज़िटरी का नाम, जैसा कि मॉड्यूल में देखा जा सकता है. डिफ़ॉल्ट रूप से, रेपो का नाम ही मॉड्यूल का नाम होता है. इसका इस्तेमाल उन प्रोजेक्ट के लिए, माइग्रेशन को आसान बनाने के लिए किया जा सकता है जो अपने लिए ऐसे रेपो नाम का इस्तेमाल कर रहे हैं जो अपने मॉड्यूल के नाम से अलग है. |
bazel_compatibility
|
Iterable of strings ;
डिफ़ॉल्ट = []बेज़ल वर्शन की ऐसी सूची जिससे लोग यह बता सकते हैं कि इस मॉड्यूल के साथ Baज़र के कौनसे वर्शन काम करते हैं. इससे डिपेंडेंसी रिज़ॉल्यूशन पर कोई असर नहीं पड़ता. हालांकि, bzlmod इस जानकारी का इस्तेमाल यह जांचने के लिए करेगा कि आपका मौजूदा Basel वर्शन काम करता है या नहीं. इस वैल्यू का फ़ॉर्मैट, कुछ कंस्ट्रेंट वैल्यू की एक स्ट्रिंग है, जिन्हें कॉमा लगाकर अलग किया गया है. तीन कंस्ट्रेंट का इस्तेमाल किया जा सकता है: <=X.X.X: Basel का वर्शन X.X.X के बराबर या उससे पुराना होना चाहिए. इसका इस्तेमाल तब किया जाता है जब किसी नए वर्शन में कोई ऐसा बदलाव होता है जो काम नहीं करता. >=X.X.X: Basel का वर्शन X.X.X के बराबर या उससे नया होना चाहिए.इसका इस्तेमाल सिर्फ़ तब किया जाता है, जब आपके डिवाइस में ऐसी सुविधाएं हों जो सिर्फ़ X.X.X के बाद उपलब्ध हैं. -X.X.X: Baज़र का वर्शन X.X.X, इस डिवाइस के साथ काम नहीं करता है. इसका इस्तेमाल तब किया जाता है, जब X.X.X में कोई ऐसा गड़बड़ी हो जिसकी वजह से आपको ब्रेक मिल रहा हो, लेकिन बाद के वर्शन में इसे ठीक कर दिया गया हो. |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc='')
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
implementation
|
ज़रूरी है इस मॉड्यूल एक्सटेंशन को लागू करने वाला फ़ंक्शन. एक पैरामीटर होना ज़रूरी है, module_ctx . बिल्ड की शुरुआत में इस फ़ंक्शन को एक बार कॉल किया जाता है, ताकि उपलब्ध डेटा स्टोर करने की जगहों का सेट तय किया जा सके.
|
tag_classes
|
default = {} एक्सटेंशन में इस्तेमाल की जाने वाली सभी टैग क्लास के बारे में जानकारी देने के लिए डिक्शनरी. यह टैग क्लास के नाम से tag_class ऑब्जेक्ट पर मैप होता है.
|
doc
|
डिफ़ॉल्ट = '' मॉड्यूल एक्सटेंशन की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल की मदद से निकाला जा सकता है. |
multiple_version_override
None multiple_version_override(module_name, versions, registry='')
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
module_name
|
ज़रूरी है यह बदलाव लागू करने के लिए, Baज़र मॉड्यूल की डिपेंडेंसी का नाम. |
versions
|
Iterable of strings ;
ज़रूरी हैसाफ़ तौर पर उन वर्शन की जानकारी देता है जिन्हें एक साथ मौजूद होने की अनुमति है. ये वर्शन, चुनाव से पहले डिपेंडेंसी ग्राफ़ में पहले से मौजूद होने चाहिए. इस मॉड्यूल की डिपेंडेंसी "अपग्रेड" की जाएगी एक ही कंपैटबिलिटी लेवल पर, अनुमति वाले सबसे पास के वर्शन से अपडेट हो सकता है. वहीं, जिन डिपेंडेंसी में किसी दूसरे वर्शन के साथ काम करने के एक ही लेवल पर अनुमति वाले वर्शन से नया वर्शन होता है, उनकी वजह से गड़बड़ी हो सकती है. |
registry
|
डिफ़ॉल्ट = '' इस मॉड्यूल के लिए रजिस्ट्री को बदलता है; रजिस्ट्री की डिफ़ॉल्ट सूची से इस मॉड्यूल को ढूंढने के बजाय, दी गई रजिस्ट्री का इस्तेमाल किया जाना चाहिए. |
प्रिंट करें
None print(sep=" ", *args)
args
को डीबग आउटपुट के तौर पर प्रिंट करता है. इसे "DEBUG"
स्ट्रिंग और इस कॉल की जगह (फ़ाइल और लाइन नंबर) के आगे लगाया जाएगा. आर्ग्युमेंट को स्ट्रिंग में बदलने का सटीक तरीका नहीं बताया गया है और यह किसी भी समय बदल सकता है. खास तौर पर, यह str()
और repr()
के फ़ॉर्मैट से अलग और ज़्यादा जानकारी वाली हो सकती है.लोगों के लिए स्पैम वाला स्पैम होने की वजह से, प्रोडक्शन कोड में print
का इस्तेमाल करने की सलाह नहीं दी जाती. बंद करने के लिए, जब भी हो सके fail()
का इस्तेमाल करके मुश्किल गड़बड़ी को प्राथमिकता दें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
sep
|
डिफ़ॉल्ट = " '' ऑब्जेक्ट के बीच सेपरेटर स्ट्रिंग, डिफ़ॉल्ट स्पेस (" ") होती है. |
args
|
ज़रूरी है प्रिंट किए जाने वाले ऑब्जेक्ट. |
provider
unknown provider(doc='', *, fields=None, init=None)
MyInfo = provider() ... def _my_library_impl(ctx): ... my_info = MyInfo(x = 2, y = 3) # my_info.x == 2 # my_info.y == 3 ...
सेवा देने वाली कंपनियों के इस्तेमाल के तरीके के बारे में पूरी जानकारी देने वाली गाइड के लिए, नियम (सेवा देने वाली कंपनियां) देखें.
अगर init
नहीं बताया गया है, तो Provider
कॉल करने लायक वैल्यू दिखाता है.
अगर init
बताया गया है, तो दो एलिमेंट का टपल दिखाता है: Provider
कॉल की जा सकने वाली वैल्यू और रॉ कंस्ट्रक्टर, कॉल की जा सकने वाली वैल्यू. नियम (पसंद के मुताबिक सेवा देने वाली कंपनियों को अपने हिसाब से शुरू करने की सुविधा) और ज़्यादा जानकारी के लिए, नीचे दिए गए init
पैरामीटर के बारे में ज़्यादा जानकारी देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
doc
|
डिफ़ॉल्ट = '' दस्तावेज़ जनरेट करने वाले टूल की मदद से, सेवा देने वाली कंपनी के बारे में जानकारी. |
fields
|
sequence of strings; or dict; or None ;
डिफ़ॉल्ट = कोई नहींअगर तय किया गया है, तो अनुमति वाले फ़ील्ड के सेट को सीमित करता है. संभावित मान ये हैं:
|
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 बढ़ोतरी (डिफ़ॉल्ट रूप से यह संख्या एक होती है). यह नकारात्मक हो सकता है. |
register_execution_platforms()
None register_execution_platforms(*platform_labels)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
platform_labels
|
sequence of strings ;
ज़रूरी हैरजिस्टर किए जाने वाले प्लैटफ़ॉर्म के लेबल. |
register_execution_platforms(dev_dependency)
None register_execution_platforms(dev_dependency=False, *platform_labels)
@
या //
से शुरू होना चाहिए). ज़्यादा जानकारी के लिए, टूलचेन रिज़ॉल्यूशन पर जाएं.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
dev_dependency
|
डिफ़ॉल्ट = गलत सही होने पर, अगर मौजूदा मॉड्यूल रूट मॉड्यूल नहीं है या `--ignore_dev_dependency` चालू है, तो एक्ज़ीक्यूशन प्लैटफ़ॉर्म रजिस्टर नहीं किए जाएंगे. |
platform_labels
|
sequence of strings ;
ज़रूरी हैरजिस्टर किए जाने वाले प्लैटफ़ॉर्म के लेबल. |
register_toolchains()
None register_toolchains(*toolchain_labels)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
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 ;
ज़रूरी हैरजिस्टर किए जाने वाले टूलचेन के लेबल. |
रिपॉज़िटरी_नियम(लागू करना, attrs, लोकल, एनवायरन, कॉन्फ़िगर करना, रिमोट करने लायक, दस्तावेज़)
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
implementation
|
ज़रूरी है वह फ़ंक्शन जो इस नियम को लागू करता है. एक ही पैरामीटर होना चाहिए, repository_ctx . नियम के हर इंस्टेंस के लिए, फ़ंक्शन को लोड होने के दौरान कॉल किया जाता है.
|
attrs
|
dict; or None ;
डिफ़ॉल्ट = कोई नहींशब्दकोश का इस्तेमाल करें. यह एक एट्रिब्यूट के नाम से किसी एट्रिब्यूट ऑब्जेक्ट पर मैप होता है (attr मॉड्यूल देखें). _ से शुरू होने वाले एट्रिब्यूट निजी होते हैं. इनका इस्तेमाल, किसी फ़ाइल के लेबल पर इंप्लिसिट डिपेंडेंसी जोड़ने के लिए किया जा सकता है. डेटा स्टोर करने का नियम, जनरेट किए गए आर्टफ़ैक्ट पर निर्भर नहीं कर सकता. name विशेषता को निहित रूप से जोड़ा गया है और उसे बताया नहीं जाना चाहिए.
|
local
|
डिफ़ॉल्ट = गलत इससे पता चलता है कि इस नियम के तहत लोकल सिस्टम से सब कुछ फ़ेच किया जाता है. साथ ही, हर बार फ़ेच करने पर इसका फिर से आकलन किया जाना चाहिए. |
environ
|
sequence of strings ;
डिफ़ॉल्ट = []ऐसे एनवायरमेंट वैरिएबल की सूची देता है जिस पर डेटा स्टोर करने का यह नियम निर्भर करता है. अगर उस सूची में कोई एनवायरमेंट वैरिएबल बदलता है, तो रिपॉज़िटरी को फिर से लाया जाएगा. |
configure
|
डिफ़ॉल्ट = गलत इससे पता चलता है कि डेटा स्टोर करने की जगह, कॉन्फ़िगरेशन के लिए सिस्टम की जांच करती है |
remotable
|
डिफ़ॉल्ट = गलत प्रयोग के तौर पर. इस पैरामीटर को अभी आज़माया जा रहा है और इसमें किसी भी समय बदलाव किया जा सकता है. कृपया इस पर निर्भर न रहें. इसे एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. इसके लिए, ---experimental_repo_remote_exec रिमोट से एक्ज़ीक्यूट करने की सुविधा के साथ काम करता है |
doc
|
डिफ़ॉल्ट = '' रिपॉज़िटरी के नियम के बारे में जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल की मदद से हासिल किया जा सकता है. |
रिपॉज़िटरी_नियम(लागू करना, attrs, लोकल, एनवायरन, कॉन्फ़िगर करना, रिमोट करने लायक, दस्तावेज़)
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
implementation
|
ज़रूरी है वह फ़ंक्शन जो इस नियम को लागू करता है. एक ही पैरामीटर होना चाहिए, repository_ctx . नियम के हर इंस्टेंस के लिए, फ़ंक्शन को लोड होने के दौरान कॉल किया जाता है.
|
attrs
|
dict; or None ;
डिफ़ॉल्ट = कोई नहींशब्दकोश का इस्तेमाल करें. यह एक एट्रिब्यूट के नाम से किसी एट्रिब्यूट ऑब्जेक्ट पर मैप होता है (attr मॉड्यूल देखें). _ से शुरू होने वाले एट्रिब्यूट निजी होते हैं. इनका इस्तेमाल, किसी फ़ाइल के लेबल पर इंप्लिसिट डिपेंडेंसी जोड़ने के लिए किया जा सकता है. डेटा स्टोर करने का नियम, जनरेट किए गए आर्टफ़ैक्ट पर निर्भर नहीं कर सकता. name विशेषता को निहित रूप से जोड़ा गया है और उसे बताया नहीं जाना चाहिए.
|
local
|
डिफ़ॉल्ट = गलत इससे पता चलता है कि इस नियम के तहत लोकल सिस्टम से सब कुछ फ़ेच किया जाता है. साथ ही, हर बार फ़ेच करने पर इसका फिर से आकलन किया जाना चाहिए. |
environ
|
sequence of strings ;
डिफ़ॉल्ट = []ऐसे एनवायरमेंट वैरिएबल की सूची देता है जिस पर डेटा स्टोर करने का यह नियम निर्भर करता है. अगर उस सूची में कोई एनवायरमेंट वैरिएबल बदलता है, तो रिपॉज़िटरी को फिर से लाया जाएगा. |
configure
|
डिफ़ॉल्ट = गलत इससे पता चलता है कि डेटा स्टोर करने की जगह, कॉन्फ़िगरेशन के लिए सिस्टम की जांच करती है |
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)
.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
|
डिफ़ॉल्ट = गलत क्या इस नियम को लागू किया जा सकता है या नहीं, इसका मतलब है कि क्या इस पर blaze run निर्देश लागू हो सकता है. ज़्यादा जानकारी के लिए, नियमों वाला पेज देखें.
|
output_to_genfiles
|
डिफ़ॉल्ट = गलत अगर सही है, तो फ़ाइलें बिन डायरेक्ट्री के बजाय genfile की डायरेक्ट्री में जनरेट की जाएंगी. जब तक आपको मौजूदा नियमों के साथ काम करने के लिए इसकी ज़रूरत न हो (जैसे, 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
|
डिफ़ॉल्ट = गलत अब यह इस्तेमाल में नहीं है और इसे हटा दिया जाना चाहिए. अब यह काम नहीं कर रहा है. |
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 s तक एक्ज़ीक्यूशन करने का टेक्स्ट. अगर यह नीति सेट की जाती है, तो इससे नियमों को किसी एक टारगेट में कई एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाइयां करने की अनुमति मिलती है. ज़्यादा जानकारी के लिए, लागू किए जाने वाले ग्रुप का दस्तावेज़ देखें.
|
compile_one_filetype
|
sequence of strings; or None ;
डिफ़ॉल्ट = कोई नहीं--compile_one_dependency से इस्तेमाल किया जाता है: अगर एक से ज़्यादा नियम तय फ़ाइल का इस्तेमाल करते हैं, तो क्या हमें दूसरे नियम के बजाय यह नियम चुनना चाहिए. |
name
|
string; or None ;
डिफ़ॉल्ट = कोई नहींअब काम नहीं करता. इस पैरामीटर के इस्तेमाल पर रोक लगा दी गई है और इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें. यह --+incompatible_remove_rule_name_parameter के साथ बंद है. इस फ़्लैग का इस्तेमाल करके, पुष्टि करें कि आपका कोड जल्द ही हटाए जाने के साथ काम करता है. अब काम नहीं करता: इस्तेमाल न करें. इस नियम का नाम, जैसा कि बेज़ल ने समझा और लॉगिंग, अगर इस पैरामीटर को शामिल नहीं किया जाता है, तो नियम का नाम पहले Starlark ग्लोबल वैरिएबल के नाम पर सेट कर दिया जाएगा. ऐसा इसलिए किया जाएगा, ताकि तय किए गए .bzl मॉड्यूल में ही इस नियम का पालन किया जा सके. इसलिए, अगर नाम किसी नियम के लिए साफ़ तौर पर नाम तय करने से, वह जगह नहीं बदलती है जहां आपको नियम को इंस्टैंशिएट करने की अनुमति होती है. |
चुनें
unknown select(x, no_match_error='')
select()
एक हेल्पर फ़ंक्शन है, जो नियम एट्रिब्यूट को कॉन्फ़िगर करने लायक बनाता है. ज़्यादा जानकारी के लिए, बिल्ड एनसाइक्लोपीडिया देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
ज़रूरी है ऐसा डिक्शनरी जो कॉन्फ़िगरेशन की शर्तों को वैल्यू पर मैप करता है. हर कुंजी एक लेबल या लेबल स्ट्रिंग होती है, जो config_setting या programt_value इंस्टेंस की पहचान करती है. किसी स्ट्रिंग के बजाय लेबल का उपयोग कब करना है, इसके लिए मैक्रो से संबंधित दस्तावेज़ देखें. |
no_match_error
|
डिफ़ॉल्ट = '' अगर कोई शर्त मेल नहीं खाती है, तो रिपोर्ट करने के लिए वैकल्पिक कस्टम गड़बड़ी. |
single_version_override
None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
module_name
|
ज़रूरी है यह बदलाव लागू करने के लिए, Baज़र मॉड्यूल की डिपेंडेंसी का नाम. |
version
|
डिफ़ॉल्ट = '' डिपेंडेंसी ग्राफ़ में इस मॉड्यूल के घोषित वर्शन को बदल देता है. दूसरे शब्दों में, यह मॉड्यूल "पिन किया गया" होगा इन बदलावों को लागू कर दें. अगर कोई व्यक्ति रजिस्ट्री या पैच को ओवरराइड करना चाहता है, तो इस एट्रिब्यूट को छोड़ा जा सकता है. |
registry
|
डिफ़ॉल्ट = '' इस मॉड्यूल के लिए रजिस्ट्री को बदलता है; रजिस्ट्री की डिफ़ॉल्ट सूची से इस मॉड्यूल को ढूंढने के बजाय, दी गई रजिस्ट्री का इस्तेमाल किया जाना चाहिए. |
patches
|
Iterable of strings ;
डिफ़ॉल्ट = []इस मॉड्यूल पर लागू करने के लिए, पैच फ़ाइलों की ओर पॉइंट करने वाले लेबल की सूची. पैच फ़ाइलें टॉप लेवल प्रोजेक्ट के सोर्स ट्री में मौजूद होनी चाहिए. ये सूची के क्रम में लागू किए जाते हैं. |
patch_cmds
|
Iterable of strings ;
डिफ़ॉल्ट = []पैच लागू होने के बाद, Linux/Macos पर Bash कमांड का क्रम. |
patch_strip
|
डिफ़ॉल्ट = 0 Unix पैच के --strip तर्क की तरह ही. |
क्रम से लगाया गया
list sorted(iterable, *, key=None, reverse=False)
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='')
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
attrs
|
default = {} इस टैग क्लास के सभी एट्रिब्यूट के बारे में जानकारी देने के लिए डिक्शनरी. यह एक एट्रिब्यूट के नाम से किसी एट्रिब्यूट ऑब्जेक्ट पर मैप होता है (attr मॉड्यूल देखें). |
doc
|
डिफ़ॉल्ट = '' टैग क्लास की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल की मदद से हासिल किया जा सकता है. |
टपल
tuple tuple(x=())
tuple([1, 2]) == (1, 2) tuple((2, 3, 2)) == (2, 3, 2) tuple({5: "a", 2: "b", 4: "c"}) == (5, 2, 4)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
x
|
डिफ़ॉल्ट = () वह ऑब्जेक्ट जिसे बदलना है. |
टाइप
string type(x)
type(2) == "int" type([1]) == "list" type(struct(a = 2)) == "struct"
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
|
डिफ़ॉल्ट = गलत अगर सही है, तो मॉड्यूल एक्सटेंशन के इस्तेमाल को अनदेखा कर दिया जाएगा. ऐसा तब होगा, जब मौजूदा मॉड्यूल, रूट मॉड्यूल न हो या `--ignore_dev_dependency` चालू हो. |
use_repo
None use_repo(extension_proxy, *args, **kwargs)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
extension_proxy
|
ज़रूरी हैuse_extension कॉल से लौटाया गया मॉड्यूल एक्सटेंशन प्रॉक्सी ऑब्जेक्ट.
|
args
|
ज़रूरी है इंपोर्ट किए जाने वाले डेटा स्टोर के नाम. |
kwargs
|
ज़रूरी है मौजूदा मॉड्यूल के स्कोप में इंपोर्ट करने के लिए, अलग-अलग नामों के साथ कुछ डेटा संग्रह स्थान तय करता है. कुंजियों का नाम वही होना चाहिए जिसका इस्तेमाल मौजूदा दायरे में करना है, जबकि वैल्यू वे मूल नाम होनी चाहिए जिन्हें मॉड्यूल एक्सटेंशन से एक्सपोर्ट किया गया हो. |
कैसा दिखाई दे
None visibility(value)
यह नीति, फ़िलहाल शुरू किए जा रहे .bzl मॉड्यूल के लोड होने की जानकारी को सेट करती है.
मॉड्यूल के लोड होने की सेटिंग से यह तय होता है कि अन्य बिल्ड और .bzl फ़ाइलों को लोड किया जा सकता है या नहीं. (यह मौजूदा .bzl सोर्स फ़ाइल के टारगेट के हिसाब से दिखने की सेटिंग से अलग है. इससे यह कंट्रोल किया जाता है कि फ़ाइल, अन्य टारगेट की डिपेंडेंसी के तौर पर दिख सकती है या नहीं.) लोड करने की सेटिंग, पैकेज के लेवल पर काम करती है: किसी मॉड्यूल को लोड करने के लिए, फ़ाइल उस पैकेज में लाइव होनी चाहिए जिसे मॉड्यूल को ऐक्सेस करने की अनुमति दी गई है. मॉड्यूल को हमेशा उसके अपने पैकेज में लोड किया जा सकता है, चाहे उसकी दृश्यता कुछ भी हो.
visibility()
को हर .bzl फ़ाइल के लिए सिर्फ़ एक बार कॉल किया जा सकता है. यह सिर्फ़ ऊपर के लेवल पर कॉल किया जा सकता है, किसी फ़ंक्शन के अंदर नहीं. हमारा सुझाव है कि इस कॉल को load()
स्टेटमेंट के ठीक नीचे रखें और तर्क तय करने के लिए कोई छोटा सा लॉजिक हो.
अगर --check_bzl_visibility
फ़्लैग को 'गलत है' पर सेट किया जाता है, तो कॉन्टेंट लोड होने के दौरान आने वाली सूचनाओं का उल्लंघन होगा. इससे चेतावनी मिलेगी, लेकिन बिल्ड पूरा नहीं होगा.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
value
|
ज़रूरी है पैकेज की खास बातों वाली स्ट्रिंग या एक पैकेज की खास जानकारी वाली स्ट्रिंग. पैकेज की जानकारी,
"@" सिंटैक्स की अनुमति नहीं है; सभी स्पेसिफ़िकेशन को मौजूदा मॉड्यूल की रिपॉज़िटरी के आधार पर समझा जाता है. अगर ध्यान दें कि |
कार्यस्थान
None workspace(name)
इस फ़ंक्शन का इस्तेमाल सिर्फ़ WORKSPACE
फ़ाइल में किया जा सकता है. साथ ही, इसका एलान WORKSPACE
फ़ाइल में मौजूद दूसरे सभी फ़ंक्शन से पहले किया जाना चाहिए. हर WORKSPACE
फ़ाइल में workspace
फ़ंक्शन होना चाहिए.
इस फ़ाइल फ़ोल्डर के लिए नाम सेट करता है. फ़ाइल फ़ोल्डर के नाम, प्रोजेक्ट की जानकारी देने के लिए Java-पैकेज-स्टाइल के होने चाहिए.साथ ही, अंडरस्कोर का इस्तेमाल सेपरेटर के तौर पर किया जाना चाहिए. उदाहरण के लिए, github.com/batzbuild/baकोई आपको com_github_baZZbuild_baकोई इस्तेमाल करना चाहिए.
इस नाम का इस्तेमाल उस डायरेक्ट्री के लिए किया जाता है जिसमें रिपॉज़िटरी की रनफ़ाइल सेव होती हैं. उदाहरण के लिए, अगर लोकल रिपॉज़िटरी में रनफ़ाइल foo/bar
है और वर्कस्पेस फ़ाइल में workspace(name = 'baz')
है, तो रनफ़ाइल mytarget.runfiles/baz/foo/bar
में उपलब्ध होगी. अगर फ़ाइल फ़ोल्डर का कोई नाम नहीं दिया गया है, तो रनफ़ाइल को bar.runfiles/foo/bar
से सिमलिंक कर दिया जाएगा.
रिमोट रिपॉज़िटरी नियम के नाम, वर्कस्पेस के मान्य नाम होने चाहिए. उदाहरण के लिए, आपके पास maven_jar(name = 'foo')
हो सकता है, लेकिन maven_jar(name = 'foo%bar')
नहीं. इसकी वजह यह है कि Basel, workspace(name = 'foo%bar')
वाले maven_jar
के लिए एक WorkSPACE फ़ाइल लिखने की कोशिश करेगा.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
ज़रूरी है फ़ाइल फ़ोल्डर का नाम डालें. नाम किसी अक्षर से शुरू होने चाहिए और इनमें सिर्फ़ अक्षर, संख्याएं, अंडरस्कोर, डैश, और बिंदु हो सकते हैं. |
zip
list zip(*args)
tuple
का list
दिखाता है, जहां i-th ट्यूपल में हर आर्ग्युमेंट के क्रम या बार-बार लागू किए जा सकने वाले एलिमेंट का 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
|
ज़रूरी है ज़िप करने के लिए सूचियां. |