पैसे चुकाकर बने सदस्य
- analysis_test_transition
- मकसद
- config_field
- डेप्सेट
- exec_group
- module_extensions
- सेवा देने वाली कंपनी
- repository_rule
- नियम
- चुनें
- tag_class
- वीडियो किसको दिखे
विश्लेषण_टेस्ट_ट्रांज़िशन
transition analysis_test_transition(settings)
यह एक कॉन्फ़िगरेशन ट्रांज़िशन बनाता है, जिसे ऐनलिसिस-टेस्ट नियम की डिपेंडेंसी पर लागू किया जाता है. यह बदलाव सिर्फ़ analysis_test = True
वाले नियमों की विशेषताओं पर लागू किया जा सकता है. इस तरह के नियम, सुविधाओं पर लागू नहीं होते (उदाहरण के लिए, डिपेंडेंसी ट्री का साइज़ सीमित है). इसलिए, इस फ़ंक्शन का इस्तेमाल करके बनाए गए ट्रांज़िशन, transition()
का इस्तेमाल करके बनाए गए ट्रांज़िशन की तुलना में सीमित दायरे में हो सकते हैं.
यह फ़ंक्शन मुख्य रूप से विश्लेषण टेस्ट फ़्रेमवर्क की मुख्य लाइब्रेरी को आसान बनाने के लिए डिज़ाइन किया गया है. सबसे सही तरीके जानने के लिए, इसके दस्तावेज़ (या लागू करने की जानकारी) देखें.
पैरामीटर
पैरामीटर | जानकारी |
---|---|
settings
|
ज़रूरी है डिक्शनरी में कॉन्फ़िगरेशन से जुड़ी सेटिंग की जानकारी है. इसे कॉन्फ़िगरेशन में हुए बदलाव के हिसाब से सेट किया जाना चाहिए. कुंजियां, बिल्ड सेटिंग लेबल हैं. वैल्यू, ट्रांज़िशन के बाद बनाई गई उनकी नई वैल्यू हैं. अन्य सेटिंग में कोई बदलाव नहीं किया गया है. इसका इस्तेमाल, कॉन्फ़िगरेशन की उन खास सेटिंग के बारे में बताने के लिए करें जिन्हें विश्लेषण के टेस्ट के लिए सेट करना ज़रूरी है. |
आसपेक्ट
Aspect aspect(implementation, attr_aspects=[], attrs=None, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc=None, *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None)एक नया पहलू बनाता है. इस फ़ंक्शन का नतीजा, ग्लोबल वैल्यू में स्टोर किया जाना चाहिए. ज़्यादा जानकारी के लिए, आस-पास की जानकारी देखें.
पैरामीटर
पैरामीटर | जानकारी |
---|---|
implementation
|
ज़रूरी है इस आसपेक्ट रेशियो को लागू करने वाला Starlark फ़ंक्शन, सिर्फ़ दो पैरामीटर का इस्तेमाल करता है: टारगेट (जिस आसपेक्ट पर आसपेक्ट रेशियो लागू होता है) और टॉक (नियम का वह रेफ़रंस जिससे टारगेट बनाया जाता है). टारगेट के एट्रिब्यूट, 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
|
string; or None :
डिफ़ॉल्ट = कोई नहींउस आसपेक्ट का ब्यौरा जो दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
apply_to_generating_rules
|
डिफ़ॉल्ट = गलत अगर सही है, तो आउटपुट फ़ाइल पर लागू किए जाने पर आसपेक्ट रेशियो, आउटपुट फ़ाइल के नियम पर लागू होगा. उदाहरण के लिए, मान लें कि कोई आसपेक्ट , `deps` विशेषता के ज़रिए ट्रांज़िट रूप से फैलता है और इसे `ऐल्फ़ा` टारगेट करने पर लागू किया जाता है. मान लें कि `ऐल्फ़ा` में `deps = [':बीटा_आउटपुट'` है, जहां `बीटा_आउटपुट` टारगेट `बीटा` का बताया गया आउटपुट है. मान लें कि बीटा के एक टारगेट को `डिप्स` में से एक के तौर पर चुना गया है. अगर `लागू करें_उपोषक करें तो वसव जाकर ` सर्वेस को वसंत जाकर तय करें डिफ़ॉल्ट रूप से 'गलत' पर सेट होता है. |
exec_compatible_with
|
sequence of strings ;
डिफ़ॉल्ट = [एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर लागू कंस्ट्रेंट की सूची, जो इस पहलू के सभी इंस्टेंस पर लागू होती है. |
exec_groups
|
dict; or None
डिफ़ॉल्ट = कोई नहींएक्ज़ीक्यूशन ग्रुप के नाम (स्ट्रिंग) को exec_group में बदलें. अगर नीति को सेट किया गया है, तो इससे एक ही इंस्टेंस में कई एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाइयां की जा सकती हैं. ज़्यादा जानकारी के लिए, एक्ज़ीक्यूशन ग्रुप से जुड़े दस्तावेज़ देखें.
|
कॉन्फ़िगरेशन_फ़ील्ड
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)
में मिला है.
हैश आधारित सेट का इस्तेमाल, इटरेशन के दौरान डुप्लीकेट को हटाने के लिए किया जाता है. इसलिए, डिपसेट के सभी एलिमेंट हैश किए जाने लायक होने चाहिए. हालांकि, इस इन्वैरिएंट की जांच सभी कंस्ट्रक्टर में हमेशा नहीं की जाती है. लगातार जांच चालू करने के लिए --insupported_always_check_depset_elements फ़्लैग का इस्तेमाल करें; यह आने वाली रिलीज़ में डिफ़ॉल्ट व्यवहार होगा; समस्या 10313 देखें.
हालांकि, आने वाले समय में एलिमेंट में कोई बदलाव नहीं हो सकेगा.
बनाए गए डेप्सेट का क्रम, इसके transitive
डिपेस के क्रम के साथ काम करना चाहिए. "default"
ऑर्डर किसी भी दूसरे ऑर्डर के साथ काम करता है. बाकी सभी ऑर्डर सिर्फ़ अपने साथ काम करते हैं.
पुराने/आगे के वर्शन के साथ काम करने की सुविधा पर ध्यान दें. फ़िलहाल, यह फ़ंक्शन पोज़िशनल items
पैरामीटर स्वीकार करता है. इसके इस्तेमाल पर रोक लगा दी गई है और आने वाले समय में इसे हटा दिया जाएगा. साथ ही, इसे हटाने के बाद depset
फ़ंक्शन के लिए, direct
एक पोज़िशनल पैरामीटर बन जाएगा. इसलिए, यहां बताए गए दोनों कॉल बराबर हैं और आने वाले समय में किए जा सकते हैं:
depset(['a', 'b'], transitive = [...]) depset(direct = ['a', 'b'], transitive = [...])
पैरामीटर
पैरामीटर | जानकारी |
---|---|
direct
|
sequence; or None :
डिफ़ॉल्ट = कोई नहींकिसी डिपसेट के डायरेक्ट एलिमेंट की सूची. |
order
|
डिफ़ॉल्ट = "डिफ़ॉल्ट" नए डिपेसेट के लिए ट्रैवर्सल रणनीति. संभावित वैल्यू के लिए यहां देखें. |
transitive
|
sequence of depsets; or None
डिफ़ॉल्ट = कोई नहींउन कमी की सूची जिनके एलिमेंट, डिपसेट के सीधे तौर पर नहीं चलने वाले एलिमेंट बन जाएंगे. |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[])एक एक्ज़ीक्यूशन ग्रुप बनाता है. इसका इस्तेमाल नियम लागू करने के दौरान, किसी खास एक्ज़ीक्यूशन प्लैटफ़ॉर्म के लिए कार्रवाइयां बनाने के लिए किया जा सकता है.
पैरामीटर
पैरामीटर | जानकारी |
---|---|
toolchains
|
sequence ;
डिफ़ॉल्ट = [इस एक्ज़ीक्यूशन ग्रुप के लिए ज़रूरी टूलचेन का सेट. इस सूची में स्ट्रिंग, लेबल या StarlarkToolchainTypeApi ऑब्जेक्ट किसी भी कॉम्बिनेशन में हो सकते हैं. |
exec_compatible_with
|
sequence of strings ;
डिफ़ॉल्ट = [एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कंस्ट्रेंट की सूची. |
मॉड्यूल_एक्सटेंशन
unknown module_extension(implementation, *, tag_classes={}, doc='')नया मॉड्यूल एक्सटेंशन बनाता है. इसे किसी ग्लोबल वैल्यू में सेव करें, ताकि इसे MODULE.bazel फ़ाइल में एक्सपोर्ट और इस्तेमाल किया जा सके.
पैरामीटर
पैरामीटर | जानकारी |
---|---|
implementation
|
ज़रूरी है वह फ़ंक्शन जो इस मॉड्यूल एक्सटेंशन को लागू करता है. सिर्फ़ एक पैरामीटर, module_ctx होना चाहिए. काम के लिए उपलब्ध जगह का सेट तय करने के लिए, फ़ंक्शन को बिल्ड की शुरुआत में एक बार कॉल किया जाता है.
|
tag_classes
|
डिफ़ॉल्ट = {} डिक्शनरी में बताए गए सभी टैग क्लास के लिए एक डिक्शनरी. यह टैग क्लास के नाम से tag_class ऑब्जेक्ट तक मैप होता है.
|
doc
|
डिफ़ॉल्ट = '' मॉड्यूल एक्सटेंशन की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
सामग्री देने वाले का नाम
unknown provider(doc=None, *, 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
|
string; or None :
डिफ़ॉल्ट = कोई नहींप्रोवाइडर के बारे में जानकारी, जो दस्तावेज़ जनरेट करने वाले टूल से निकाली जा सकती है. |
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 = ...) |
रिपॉज़िटरी_नियम
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
|
डिफ़ॉल्ट = गलत बताएं कि यह नियम लोकल सिस्टम से सब कुछ फ़ेच करता है. साथ ही, हर फ़ेच पर इसका फिर से आकलन किया जाना चाहिए. |
environ
|
sequence of strings ;
डिफ़ॉल्ट = [एनवायरमेंट वैरिएबल की सूची देता है, जो डेटा स्टोर करने के इस नियम पर निर्भर करता है. अगर सूची का एनवायरमेंट वैरिएबल बदल जाता है, तो रिपॉज़िटरी को फिर से फ़ेच कर दिया जाएगा. |
configure
|
डिफ़ॉल्ट = गलत बताएं कि रिपॉज़िटरी, कॉन्फ़िगरेशन के मकसद के लिए सिस्टम की जांच करता है |
remotable
|
डिफ़ॉल्ट = गलत प्रयोग के तौर पर. इस पैरामीटर पर प्रयोग किया जा रहा है और यह किसी भी समय बदल सकता है. कृपया इस पर भरोसा न करें. इसे ---experimental_repo_remote_exec रिमोट एक्ज़ीक्यूशन के साथ सेट करके, प्रयोग के तौर पर चालू किया जा सकता है |
doc
|
डिफ़ॉल्ट = '' रिपॉज़िटरी नियम का ब्यौरा. इसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
नियम
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=None, *, 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 फ़ंक्शन का सिर्फ़ एक पैरामीटर होना ज़रूरी है: lock. नियम के हर इंस्टेंस के लिए विश्लेषण के चरण में फ़ंक्शन को कॉल किया जाता है. यह उपयोगकर्ता से मिले एट्रिब्यूट को ऐक्सेस कर सकता है. इससे, एलान किए गए सभी आउटपुट जनरेट करने के लिए, कार्रवाइयां बनानी होंगी. |
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
|
डिफ़ॉल्ट = गलत अगर सही है, तो फ़ाइलें, बिन डायरेक्ट्री के बजाय genfiles डायरेक्ट्री में जनरेट होंगी. जब तक आपको मौजूदा नियमों के साथ काम करने की ज़रूरत न हो (उदाहरण के लिए, C++ के लिए हेडर फ़ाइलें जनरेट करते समय), तब तक इस फ़्लैग को सेट न करें. |
fragments
|
sequence of strings ;
डिफ़ॉल्ट = [कॉन्फ़िगरेशन फ़्रैगमेंट के ऐसे नामों की सूची जिन्हें नियम को टारगेट कॉन्फ़िगरेशन के हिसाब से ज़रूरी है. |
host_fragments
|
sequence of strings ;
डिफ़ॉल्ट = [कॉन्फ़िगरेशन फ़्रैगमेंट के ऐसे नामों की सूची जिन्हें होस्ट को कॉन्फ़िगर करने की ज़रूरत होती है. |
_skylark_testable
|
डिफ़ॉल्ट = गलत (प्रयोग के तौर पर) अगर सही है, तो यह नियम, Actions सेवा देने वाली कंपनी के ज़रिए नियमों पर जांच के लिए अपनी कार्रवाइयों को सार्वजनिक करेगा. सेवा देने वाली कंपनी, नियमों के लिए भी ctx.created_action() पर कॉल करके उपलब्ध है.इसका इस्तेमाल, Starlark के नियमों के विश्लेषण के समय के व्यवहार की जांच के लिए ही किया जाना चाहिए. आने वाले समय में, इस फ़्लैग को हटाया जा सकता है. |
toolchains
|
sequence ;
डिफ़ॉल्ट = [अगर सेट हो, तो इस नियम के लिए ज़रूरी टूलचेन का सेट. इस सूची में स्ट्रिंग, लेबल या StarlarkToolchainTypeApi ऑब्जेक्ट किसी भी कॉम्बिनेशन में हो सकते हैं. मौजूदा प्लैटफ़ॉर्म की जांच करके और ctx.toolchain के ज़रिए नियम लागू करने के लिए, टूलटिप मिलेंगे.
|
incompatible_use_toolchain_transition
|
डिफ़ॉल्ट = गलत बहिष्कृत, अब इसका इस्तेमाल नहीं किया जा सकता है और इसे हटा देना चाहिए. |
doc
|
string; or None :
डिफ़ॉल्ट = कोई नहींउस नियम का ब्यौरा जिसे दस्तावेज़ जनरेट करने वाले टूल की मदद से निकाला जा सकता है. |
provides
|
डिफ़ॉल्ट = [ ] उन कंपनियों की सूची जिन्हें लागू करने का फ़ंक्शन रिटर्न करना है. अगर गड़बड़ी ठीक करने के तरीके में यहां दी गई किसी भी तरह की सेवा देने वाली कंपनी का रिटर्न वैल्यू शामिल नहीं की जाती है, तो यह एक गड़बड़ी होती है. हालांकि, लागू करने की प्रक्रिया में ऐसे अतिरिक्त प्रोवाइडर दिख सकते हैं जो इस सूची में शामिल नहीं हैं. सूची में शामिल हर एलिमेंट, |
exec_compatible_with
|
sequence of strings ;
डिफ़ॉल्ट = [एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर लागू पाबंदियों की सूची, जो इस तरह के नियमों के सभी टारगेट पर लागू होती हैं. |
analysis_test
|
डिफ़ॉल्ट = गलत अगर सही है, तो इस नियम को विश्लेषण की जांच के तौर पर माना जाता है. ध्यान दें: विश्लेषण में जांच के नियम, मुख्य तौर पर Starlark की मुख्य लाइब्रेरी में दिए गए इंफ़्रास्ट्रक्चर का इस्तेमाल करके तय किए जाते हैं. ज़्यादा जानकारी के लिए, जांच देखें. अगर किसी नियम को विश्लेषण की जांच के नियम के तौर पर तय किया जाता है, तो वह अपने एट्रिब्यूट पर analysis_test_transition का इस्तेमाल करके तय किए गए कॉन्फ़िगरेशन ट्रांज़िशन का इस्तेमाल करने की अनुमति देता है. हालांकि, कुछ प्रतिबंधों के साथ ऑप्ट-इन करता है:
|
build_setting
|
BuildSetting; or None :
डिफ़ॉल्ट = कोई नहींअगर सेट है, तो बताएं कि यह नियम किस तरह का build setting है. config मॉड्यूल देखें. अगर यह सेट है, तो इस नियम में "build_setting_default" नाम का ज़रूरी एट्रिब्यूट अपने-आप जुड़ जाता है. साथ ही, यहां पास की गई वैल्यू से जुड़ा टाइप जोड़ा जाता है.
|
cfg
|
डिफ़ॉल्ट = कोई नहीं अगर सेट किया जाता है, तो कॉन्फ़िगरेशन ट्रांज़िशन पर कर्सर ले जाने वाला नियम, विश्लेषण से पहले अपने कॉन्फ़िगरेशन पर लागू होगा. |
exec_groups
|
dict; or None
डिफ़ॉल्ट = कोई नहींएक्ज़ीक्यूशन ग्रुप के नाम (स्ट्रिंग) को exec_group में बदलें. अगर नीति को सेट किया गया है, तो नियमों को एक ही टारगेट में, एक्ज़ीक्यूशन के कई प्लैटफ़ॉर्म पर कार्रवाइयां करने की अनुमति मिलती है. ज़्यादा जानकारी के लिए, एक्ज़ीक्यूशन ग्रुप से जुड़े दस्तावेज़ देखें.
|
compile_one_filetype
|
sequence of strings; or None :
डिफ़ॉल्ट = कोई नहीं--compile_one_dependency: अगर एक से ज़्यादा नियम तय फ़ाइल का इस्तेमाल करते हैं, तो क्या हमें इस नियम को दूसरों से चुनना चाहिए. |
name
|
string; or None :
डिफ़ॉल्ट = कोई नहींकाम नहीं करता. यह पैरामीटर काम नहीं करता है और इसे जल्द ही हटा दिया जाएगा. कृपया इस पर भरोसा न करें. यह --+incompatible_remove_rule_name_parameter के साथ बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड जल्द ही हटा दिया जाएगा. अब सेवा में नहीं है: इस्तेमाल न करें. इस नियम का नाम, जैसा कि बेज़ल ने समझ लिया था. साथ ही, वे अगर इस पैरामीटर को शामिल नहीं किया जाता, तो नियम का नाम, पहले Starlark ग्लोबल वैरिएबल के नाम पर सेट कर दिया जाता है. ऐसा इसलिए किया जाता है, ताकि यह .bzl मॉड्यूल में तय किए गए नियम से जुड़ा हो. इसलिए, अगर नाम किसी नियम के लिए साफ़ तौर पर जानकारी देने वाला नाम तय करने से, नियम लागू करने की जगह पर कोई असर नहीं पड़ता. |
चुनें
unknown select(x, no_match_error='')
select()
, हेल्पर फ़ंक्शन है. इससे नियम एट्रिब्यूट कॉन्फ़िगर किया जा सकता है. ज़्यादा जानकारी के लिए, एन्साइक्लोपीडिया बनाएं देखें.
पैरामीटर
पैरामीटर | जानकारी |
---|---|
x
|
ज़रूरी है ऐसा निर्देश जो कॉन्फ़िगरेशन की शर्तों को वैल्यू पर मैप करता है. हर कुंजी लेबल या लेबल स्ट्रिंग होती है जो config_setting या restricted_value इंस्टेंस की पहचान करती है. स्ट्रिंग के बजाय लेबल का इस्तेमाल करने के समय के लिए मैक्रो पर दस्तावेज़ देखें. |
no_match_error
|
डिफ़ॉल्ट = '' अगर कोई भी शर्त मेल नहीं खाती है, तो रिपोर्ट करने के लिए वैकल्पिक कस्टम गड़बड़ी. |
टैग_क्लास
tag_class tag_class(attrs={}, *, doc='')एक नया Tag_class ऑब्जेक्ट बनाता है, जो टैग के क्लास के लिए एक एट्रिब्यूट स्कीमा तय करता है, जो मॉड्यूल एक्सटेंशन में इस्तेमाल किए जा सकने वाले डेटा ऑब्जेक्ट होते हैं.
पैरामीटर
पैरामीटर | जानकारी |
---|---|
attrs
|
डिफ़ॉल्ट = {} इस टैग क्लास की सभी विशेषताओं का एलान करने के लिए किया गया डिक्शनरी. यह एट्रिब्यूट के नाम से किसी एट्रिब्यूट ऑब्जेक्ट तक मैप होता है (attr मॉड्यूल देखें). |
doc
|
डिफ़ॉल्ट = '' उस टैग क्लास का ब्यौरा जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
कैसा दिखाई दे
None visibility(value)
फ़िलहाल, शुरू किए जा रहे .bzl मॉड्यूल के लोड होने की जानकारी सेट करता है.
किसी मॉड्यूल के लोड होने की स्थिति तय करती है कि अन्य BUILD और .bzl फ़ाइलें उसे लोड कर सकती हैं या नहीं. (यह दिए गए .bzl सोर्स फ़ाइल की टारगेट विज़िबिलिटी से अलग है, जो तय करता है कि फ़ाइल अन्य टारगेट पर निर्भर हो सकती है या नहीं.) लोड विज़िबिलिटी, पैकेज के लेवल पर काम करती है: मॉड्यूल को लोड करने के लिए, पैकेज को लोड करने वाली फ़ाइल, ऐसे पैकेज में होनी चाहिए जिसे मॉड्यूल दिखाई दे. कोई भी मॉड्यूल अपने पैकेज में हमेशा लोड किया जा सकता है, भले ही वह साफ़ तौर पर दिखे.
visibility()
को हर .bzl फ़ाइल के लिए सिर्फ़ एक बार कॉल किया जा सकता है. साथ ही, यह सिर्फ़ किसी टॉप लेवल पर इस्तेमाल किया जा सकता है, किसी फ़ंक्शन में नहीं. इस स्टाइल को सबसे सही तरीका यह है कि इस कॉल को load()
स्टेटमेंट के ठीक नीचे और इस तर्क को तय करने के लिए ज़रूरी कम शब्दों वाले लॉजिक के नीचे रखें.
अगर फ़्लैग --check_bzl_visibility
को 'गलत है' पर सेट किया जाता है, तो कॉन्टेंट लोड होने के दौरान दिखने वाली नीति के उल्लंघन से चेतावनी मिलेगी. हालांकि, यह बिल्ड में असफल हो सकता है.
पैरामीटर
पैरामीटर | जानकारी |
---|---|
value
|
ज़रूरी है पैकेज की खास बातों वाली स्ट्रिंग या एक पैकेज की खास जानकारी वाली स्ट्रिंग की सूची. पैकेज की खास बातों का फ़ॉर्मैट
"@" सिंटैक्स की अनुमति नहीं है; सभी विशेषताओं को मौजूदा मॉड्यूल के डेटा स्टोर करने की जगह के हिसाब से समझा जाता है. अगर ध्यान दें कि |