attr

यह किसी नियम या पहलू के एट्रिब्यूट स्कीमा को तय करने के लिए, टॉप-लेवल का मॉड्यूल है. हर फ़ंक्शन, किसी एक एट्रिब्यूट के स्कीमा को दिखाने वाला ऑब्जेक्ट दिखाता है. इन ऑब्जेक्ट का इस्तेमाल, rule(), aspect(), repository_rule(), और tag_class() के attrs डिक्शनरी आर्ग्युमेंट की वैल्यू के तौर पर किया जाता है.

एट्रिब्यूट तय करने और इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, नियमों का पेज देखें.

सदस्य

बूल

Attribute attr.bool(*, configurable=unbound, default=False, doc=None, mandatory=False)

यह फ़ंक्शन, बूलियन एट्रिब्यूट के लिए स्कीमा बनाता है. इससे जुड़ा ctx.attr एट्रिब्यूट, bool टाइप का होगा.

पैरामीटर

पैरामीटर ब्यौरा
configurable bool; or unbound; डिफ़ॉल्ट रूप से unbound
होता है इस आर्ग्युमेंट को सिर्फ़ सिंबॉलिक मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है.

अगर configurable को साफ़ तौर पर False पर सेट किया गया है, तो सिंबॉलिक मैक्रो एट्रिब्यूट को कॉन्फ़िगर नहीं किया जा सकता. इसका मतलब है कि यह select() वैल्यू नहीं ले सकता. अगर configurable को अनबाउंड किया गया है या इसे साफ़ तौर पर True पर सेट किया गया है, तो एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है. साथ ही, इसे select() वैल्यू दी जा सकती है.

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को अनबाउंड छोड़ना होगा. ज़्यादातर Starlark नियम एट्रिब्यूट को हमेशा कॉन्फ़िगर किया जा सकता है. हालांकि, attr.output(), attr.output_list(), और attr.license() नियम एट्रिब्यूट को कभी भी कॉन्फ़िगर नहीं किया जा सकता.

default bool; डिफ़ॉल्ट तौर पर False
होता है यह एक डिफ़ॉल्ट वैल्यू है. इसका इस्तेमाल तब किया जाता है, जब नियम को इंस्टैंटिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है.
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.

int

Attribute attr.int(*, configurable=unbound, default=0, doc=None, mandatory=False, values=[])

यह फ़ंक्शन, पूर्णांक एट्रिब्यूट के लिए स्कीमा बनाता है. वैल्यू, साइंड 32-बिट रेंज में होनी चाहिए. इससे जुड़ा ctx.attr एट्रिब्यूट, int टाइप का होगा.

पैरामीटर

पैरामीटर ब्यौरा
configurable bool; or unbound; डिफ़ॉल्ट रूप से unbound
होता है इस आर्ग्युमेंट को सिर्फ़ सिंबॉलिक मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है.

अगर configurable को साफ़ तौर पर False पर सेट किया गया है, तो सिंबॉलिक मैक्रो एट्रिब्यूट को कॉन्फ़िगर नहीं किया जा सकता. इसका मतलब है कि यह select() वैल्यू नहीं ले सकता. अगर configurable को अनबाउंड किया गया है या इसे साफ़ तौर पर True पर सेट किया गया है, तो एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है. साथ ही, इसे select() वैल्यू दी जा सकती है.

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को अनबाउंड छोड़ना होगा. ज़्यादातर Starlark नियम एट्रिब्यूट को हमेशा कॉन्फ़िगर किया जा सकता है. हालांकि, attr.output(), attr.output_list(), और attr.license() नियम एट्रिब्यूट को कभी भी कॉन्फ़िगर नहीं किया जा सकता.

default int; डिफ़ॉल्ट वैल्यू 0
है अगर नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू.
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.
values int का sequence; डिफ़ॉल्ट रूप से []
होता है यह एट्रिब्यूट के लिए अनुमति वाली वैल्यू की सूची होती है. अगर कोई दूसरी वैल्यू दी जाती है, तो गड़बड़ी का मैसेज दिखता है.

int_list

Attribute attr.int_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)

यह फ़ंक्शन, पूर्णांकों की सूची वाले एट्रिब्यूट के लिए स्कीमा बनाता है. हर एलिमेंट, 32-बिट की रेंज में होना चाहिए.

पैरामीटर

पैरामीटर ब्यौरा
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.
allow_empty bool; डिफ़ॉल्ट तौर पर True
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही है.
configurable bool; or unbound; डिफ़ॉल्ट रूप से unbound
होता है इस आर्ग्युमेंट को सिर्फ़ सिंबॉलिक मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है.

अगर configurable को साफ़ तौर पर False पर सेट किया गया है, तो सिंबॉलिक मैक्रो एट्रिब्यूट को कॉन्फ़िगर नहीं किया जा सकता. इसका मतलब है कि यह select() वैल्यू नहीं ले सकता. अगर configurable को अनबाउंड किया गया है या इसे साफ़ तौर पर True पर सेट किया गया है, तो एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है. साथ ही, इसे select() वैल्यू दी जा सकती है.

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को अनबाउंड छोड़ना होगा. ज़्यादातर Starlark नियम एट्रिब्यूट को हमेशा कॉन्फ़िगर किया जा सकता है. हालांकि, attr.output(), attr.output_list(), और attr.license() नियम एट्रिब्यूट को कभी भी कॉन्फ़िगर नहीं किया जा सकता.

default ints का sequence; डिफ़ॉल्ट वैल्यू []
है यह एक डिफ़ॉल्ट वैल्यू है. इसका इस्तेमाल तब किया जाता है, जब नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है.
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.

लेबल

Attribute attr.label(*, configurable=unbound, default=None, materializer=None, doc=None, executable=False, allow_files=None, allow_single_file=None, mandatory=False, skip_validations=False, providers=[], for_dependency_resolution=unbound, allow_rules=None, cfg=None, aspects=[], flags=[])

यह फ़ंक्शन, लेबल एट्रिब्यूट के लिए स्कीमा बनाता है. यह एक डिपेंडेंसी एट्रिब्यूट है.

इस एट्रिब्यूट में यूनीक Label वैल्यू शामिल हैं. अगर Label की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदला जाएगा. लेबल पाथ के रिलेटिव हिस्से, इंस्टैंटिएट किए गए टारगेट के पैकेज के हिसाब से तय किए जाते हैं. इनमें (शायद नाम बदली गई) रिपॉज़िटरी भी शामिल होती है.

विश्लेषण के समय (नियम लागू करने वाले फ़ंक्शन के अंदर), ctx.attr से एट्रिब्यूट वैल्यू वापस पाने पर, लेबल की जगह उनसे जुड़े Target दिखते हैं. इससे आपको मौजूदा टारगेट की डिपेंडेंसी के प्रोवाइडर को ऐक्सेस करने की अनुमति मिलती है.

आम सोर्स फ़ाइलों के अलावा, इस तरह के एट्रिब्यूट का इस्तेमाल अक्सर किसी टूल का रेफ़रंस देने के लिए किया जाता है. उदाहरण के लिए, कंपाइलर. ऐसे टूल को सोर्स फ़ाइलों की तरह ही डिपेंडेंसी माना जाता है. उपयोगकर्ताओं को अपनी BUILD फ़ाइलों में नियम का इस्तेमाल करते समय, हर बार टूल का लेबल तय करने की ज़रूरत न पड़े, इसके लिए कैननिकल टूल के लेबल को इस एट्रिब्यूट की default वैल्यू के तौर पर हार्ड-कोड किया जा सकता है. अगर आपको उपयोगकर्ताओं को इस डिफ़ॉल्ट वैल्यू को बदलने से रोकना है, तो एट्रिब्यूट को निजी के तौर पर सेट किया जा सकता है. इसके लिए, एट्रिब्यूट का नाम अंडरस्कोर से शुरू करें. ज़्यादा जानकारी के लिए, नियम पेज देखें.

पैरामीटर

पैरामीटर ब्यौरा
configurable bool; or unbound; डिफ़ॉल्ट रूप से unbound
होता है इस आर्ग्युमेंट को सिर्फ़ सिंबॉलिक मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है.

अगर configurable को साफ़ तौर पर False पर सेट किया गया है, तो सिंबॉलिक मैक्रो एट्रिब्यूट को कॉन्फ़िगर नहीं किया जा सकता. इसका मतलब है कि यह select() वैल्यू नहीं ले सकता. अगर configurable को अनबाउंड किया गया है या इसे साफ़ तौर पर True पर सेट किया गया है, तो एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है. साथ ही, इसे select() वैल्यू दी जा सकती है.

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को अनबाउंड छोड़ना होगा. ज़्यादातर Starlark नियम एट्रिब्यूट को हमेशा कॉन्फ़िगर किया जा सकता है. हालांकि, attr.output(), attr.output_list(), और attr.license() नियम एट्रिब्यूट को कभी भी कॉन्फ़िगर नहीं किया जा सकता.

default Label; या string; या LateBoundDefault; या NativeComputedDefault; या function; या None; default is None
यह एक डिफ़ॉल्ट वैल्यू है. इसका इस्तेमाल तब किया जाता है, जब नियम को इंस्टैंटिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है. डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Label फ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए, attr.label(default = "//a:b").
materializer function; डिफ़ॉल्ट रूप से None
होता है एक्सपेरिमेंट के तौर पर उपलब्ध है. यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है. इसमें कभी भी बदलाव किया जा सकता है. कृपया इसके भरोसे न रहें. इसे एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. इसके लिए, --experimental_dormant_deps
को सेट करना होगा. अगर इसे सेट किया जाता है, तो एट्रिब्यूट, ट्रांज़िटिव क्लोज़र से डॉर्मेंट डिपेंडेंसी को मटीरियलाइज़ करता है. इस पैरामीटर की वैल्यू एक ऐसा फ़ंक्शन होना चाहिए जो नियम के उन एट्रिब्यूट की वैल्यू को ऐक्सेस करता है जो डिपेंडेंसी नहीं हैं या जिन्हें डिपेंडेंसी की समस्या हल करने के लिए उपलब्ध के तौर पर मार्क किया गया है. यह एट्रिब्यूट के टाइप के आधार पर, या तो एक ऐसी डिपेंडेंसी दिखाता है जो काम नहीं कर रही है या ऐसी डिपेंडेंसी की सूची दिखाता है
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
executable bool; डिफ़ॉल्ट तौर पर False
होता है अगर डिपेंडेंसी को लागू किया जाना है, तो यह 'सही' होती है. इसका मतलब है कि लेबल, किसी एक्ज़ीक्यूटेबल फ़ाइल या किसी ऐसे नियम के बारे में होना चाहिए जो एक्ज़ीक्यूटेबल फ़ाइल बनाता है. ctx.executable.<attribute_name> की मदद से लेबल ऐक्सेस करें.
allow_files bool; या sequence of strings; या None; डिफ़ॉल्ट तौर पर None
होता है यह तय करता है कि File टारगेट की अनुमति है या नहीं. यह True, False (डिफ़ॉल्ट) या अनुमति वाले फ़ाइल एक्सटेंशन की सूची हो सकती है. उदाहरण के लिए, [".cc", ".cpp"].
allow_single_file डिफ़ॉल्ट वैल्यू None
है यह allow_files के जैसा ही है. हालांकि, इसमें यह पाबंदी है कि लेबल, सिर्फ़ एक File से मेल खाना चाहिए. इसे ctx.file.<attribute_name> से ऐक्सेस करें.
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.
skip_validations bool; डिफ़ॉल्ट तौर पर False
होता है अगर सही है, तो इस एट्रिब्यूट से ट्रांज़िटिव डिपेंडेंसी की पुष्टि करने वाली कार्रवाइयां नहीं चलेंगी. यह समस्या को कुछ समय के लिए ठीक करने का तरीका है. आने वाले समय में इसे हटा दिया जाएगा.
providers sequence; डिफ़ॉल्ट रूप से []
होता है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के लिए, सेवा देने वाली कंपनियों की सूची.

इस आर्ग्युमेंट का फ़ॉर्मैट, प्रोवाइडर की सूचियों की सूची होती है. यह provider() से मिले *Info ऑब्जेक्ट होते हैं. हालांकि, लेगसी प्रोवाइडर के मामले में, यह उसका स्ट्रिंग नाम होता है. डिपेंडेंसी को कम से कम एक इनर लिस्ट में बताए गए सभी प्रोवाइडर की जानकारी देनी होगी. सुविधा के लिए, यह आर्ग्युमेंट प्रोवाइडर की सिंगल-लेवल सूची भी हो सकता है. ऐसे में, इसे एक एलिमेंट वाली बाहरी सूची में रैप किया जाता है. इसका मतलब है कि [A, B] का मतलब [[A, B]] है. यह ज़रूरी नहीं है कि डिपेंडेंसी का नियम, उन प्रोवाइडर का विज्ञापन अपने provides पैरामीटर में दिखाए. हालांकि, इसे सबसे सही तरीका माना जाता है.

for_dependency_resolution डिफ़ॉल्ट तौर पर unbound
होता है अगर इसे सेट किया जाता है, तो एट्रिब्यूट, मटीरियलाइज़र के लिए उपलब्ध होता है. इस तरह के एट्रिब्यूट के ज़रिए, सिर्फ़ उन नियमों को रेफ़रंस किया जा सकता है जिन्हें एक ही नाम वाले फ़्लैग से मार्क किया गया है.
allow_rules स्ट्रिंग का क्रम या None; डिफ़ॉल्ट रूप से None
होता है किन नियमों के टारगेट (क्लास के नाम) की अनुमति है. इसे बंद कर दिया गया है. इसे सिर्फ़ कंपैटिबिलिटी के लिए रखा गया है. इसके बजाय, प्रोवाइडर का इस्तेमाल करें.
cfg डिफ़ॉल्ट रूप से None
होता है एट्रिब्यूट का कॉन्फ़िगरेशन. यह "exec" या "target" हो सकता है. "exec" का मतलब है कि डिपेंडेंसी execution platform के लिए बनाई गई है. वहीं, "target" का मतलब है कि डिपेंडेंसी target platform के लिए बनाई गई है. मोबाइल ऐप्लिकेशन बनाते समय, इस अंतर का एक सामान्य उदाहरण मिलता है. इसमें target platform, Android या iOS होता है, जबकि execution platform, Linux, macOS या Windows होता है. अगर executable की वैल्यू True पर सेट है, तो इस पैरामीटर की ज़रूरत होती है. इससे टारगेट कॉन्फ़िगरेशन में गलती से होस्ट टूल बनाने से बचा जा सकता है. "target" का कोई सिमैंटिक असर नहीं होता. इसलिए, जब executable की वैल्यू False हो, तब इसे सेट न करें. हालांकि, अगर इससे आपके इरादों को समझने में मदद मिलती है, तो इसे सेट किया जा सकता है.
aspects sequence of Aspects; डिफ़ॉल्ट रूप से []
होता है ऐसे आसपेक्ट जिन्हें इस एट्रिब्यूट से तय की गई डिपेंडेंसी या डिपेंडेंसी पर लागू किया जाना चाहिए.
flags sequence of strings; डिफ़ॉल्ट []
होता है अब इस्तेमाल नहीं किया जा सकता, इसे हटा दिया जाएगा.

label_keyed_string_dict

Attribute attr.label_keyed_string_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], for_dependency_resolution=unbound, flags=[], mandatory=False, skip_validations=False, cfg=None, aspects=[])

यह डिक्शनरी रखने वाले एट्रिब्यूट के लिए स्कीमा बनाता है. इसमें कुंजियां लेबल होती हैं और वैल्यू स्ट्रिंग होती हैं. यह एक डिपेंडेंसी एट्रिब्यूट है.

इस एट्रिब्यूट में यूनीक Label वैल्यू शामिल हैं. अगर Label की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदला जाएगा. लेबल पाथ के रिलेटिव हिस्से, इंस्टैंटिएट किए गए टारगेट के पैकेज के हिसाब से तय किए जाते हैं. इनमें (शायद नाम बदली गई) रिपॉज़िटरी भी शामिल होती है.

विश्लेषण के समय (नियम लागू करने वाले फ़ंक्शन के अंदर), ctx.attr से एट्रिब्यूट वैल्यू वापस पाने पर, लेबल की जगह उनसे जुड़े Target दिखते हैं. इससे आपको मौजूदा टारगेट की डिपेंडेंसी के प्रोवाइडर को ऐक्सेस करने की अनुमति मिलती है.

पैरामीटर

पैरामीटर ब्यौरा
allow_empty bool; डिफ़ॉल्ट तौर पर True
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही है.
configurable bool; or unbound; डिफ़ॉल्ट रूप से unbound
होता है इस आर्ग्युमेंट को सिर्फ़ सिंबॉलिक मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है.

अगर configurable को साफ़ तौर पर False पर सेट किया गया है, तो सिंबॉलिक मैक्रो एट्रिब्यूट को कॉन्फ़िगर नहीं किया जा सकता. इसका मतलब है कि यह select() वैल्यू नहीं ले सकता. अगर configurable को अनबाउंड किया गया है या इसे साफ़ तौर पर True पर सेट किया गया है, तो एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है. साथ ही, इसे select() वैल्यू दी जा सकती है.

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को अनबाउंड छोड़ना होगा. ज़्यादातर Starlark नियम एट्रिब्यूट को हमेशा कॉन्फ़िगर किया जा सकता है. हालांकि, attr.output(), attr.output_list(), और attr.license() नियम एट्रिब्यूट को कभी भी कॉन्फ़िगर नहीं किया जा सकता.

default dict; या function; डिफ़ॉल्ट रूप से {}
होता है अगर नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Label फ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए, attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}).
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
allow_files bool; या sequence of strings; या None; डिफ़ॉल्ट तौर पर None
होता है यह तय करता है कि File टारगेट की अनुमति है या नहीं. यह True, False (डिफ़ॉल्ट) या अनुमति वाले फ़ाइल एक्सटेंशन की सूची हो सकती है. उदाहरण के लिए, [".cc", ".cpp"].
allow_rules स्ट्रिंग का क्रम या None; डिफ़ॉल्ट रूप से None
होता है किन नियमों के टारगेट (क्लास के नाम) की अनुमति है. इसे बंद कर दिया गया है. इसे सिर्फ़ कंपैटिबिलिटी के लिए रखा गया है. इसके बजाय, प्रोवाइडर का इस्तेमाल करें.
providers sequence; डिफ़ॉल्ट रूप से []
होता है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के लिए, सेवा देने वाली कंपनियों की सूची.

इस आर्ग्युमेंट का फ़ॉर्मैट, प्रोवाइडर की सूचियों की सूची होती है. यह provider() से मिले *Info ऑब्जेक्ट होते हैं. हालांकि, लेगसी प्रोवाइडर के मामले में, यह उसका स्ट्रिंग नाम होता है. डिपेंडेंसी को कम से कम एक इनर लिस्ट में बताए गए सभी प्रोवाइडर की जानकारी देनी होगी. सुविधा के लिए, यह आर्ग्युमेंट प्रोवाइडर की सिंगल-लेवल सूची भी हो सकता है. ऐसे में, इसे एक एलिमेंट वाली बाहरी सूची में रैप किया जाता है. इसका मतलब है कि [A, B] का मतलब [[A, B]] है. यह ज़रूरी नहीं है कि डिपेंडेंसी का नियम, उन प्रोवाइडर का विज्ञापन अपने provides पैरामीटर में दिखाए. हालांकि, इसे सबसे सही तरीका माना जाता है.

for_dependency_resolution डिफ़ॉल्ट तौर पर unbound
होता है अगर इसे सेट किया जाता है, तो एट्रिब्यूट, मटीरियलाइज़र के लिए उपलब्ध होता है. इस तरह के एट्रिब्यूट के ज़रिए, सिर्फ़ उन नियमों को रेफ़रंस किया जा सकता है जिन्हें एक ही नाम वाले फ़्लैग से मार्क किया गया है.
flags sequence of strings; डिफ़ॉल्ट []
होता है अब इस्तेमाल नहीं किया जा सकता, इसे हटा दिया जाएगा.
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.
skip_validations bool; डिफ़ॉल्ट तौर पर False
होता है अगर सही है, तो इस एट्रिब्यूट से ट्रांज़िटिव डिपेंडेंसी की पुष्टि करने वाली कार्रवाइयां नहीं चलेंगी. यह समस्या को कुछ समय के लिए ठीक करने का तरीका है. आने वाले समय में इसे हटा दिया जाएगा.
cfg डिफ़ॉल्ट रूप से None
होता है एट्रिब्यूट का कॉन्फ़िगरेशन. यह "exec" या "target" हो सकता है. "exec" का मतलब है कि डिपेंडेंसी execution platform के लिए बनाई गई है. वहीं, "target" का मतलब है कि डिपेंडेंसी target platform के लिए बनाई गई है. मोबाइल ऐप्लिकेशन बनाते समय, इस अंतर का एक सामान्य उदाहरण मिलता है. इसमें target platform, Android या iOS होता है, जबकि execution platform, Linux, macOS या Windows होता है.
aspects sequence of Aspects; डिफ़ॉल्ट रूप से []
होता है ऐसे आसपेक्ट जिन्हें इस एट्रिब्यूट से तय की गई डिपेंडेंसी या डिपेंडेंसी पर लागू किया जाना चाहिए.

label_list

Attribute attr.label_list(allow_empty=True, *, configurable=unbound, default=[], materializer=None, doc=None, allow_files=None, allow_rules=None, providers=[], for_dependency_resolution=unbound, flags=[], mandatory=False, skip_validations=False, cfg=None, aspects=[])

यह फ़ंक्शन, लेबल की सूची वाले एट्रिब्यूट के लिए स्कीमा बनाता है. यह एक डिपेंडेंसी एट्रिब्यूट है. इससे जुड़ा ctx.attr एट्रिब्यूट, Targets की list टाइप का होगा.

इस एट्रिब्यूट में यूनीक Label वैल्यू शामिल हैं. अगर Label की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदला जाएगा. लेबल पाथ के रिलेटिव हिस्से, इंस्टैंटिएट किए गए टारगेट के पैकेज के हिसाब से तय किए जाते हैं. इनमें (शायद नाम बदली गई) रिपॉज़िटरी भी शामिल होती है.

विश्लेषण के समय (नियम लागू करने वाले फ़ंक्शन के अंदर), ctx.attr से एट्रिब्यूट वैल्यू वापस पाने पर, लेबल की जगह उनसे जुड़े Target दिखते हैं. इससे आपको मौजूदा टारगेट की डिपेंडेंसी के प्रोवाइडर को ऐक्सेस करने की अनुमति मिलती है.

पैरामीटर

पैरामीटर ब्यौरा
allow_empty bool; डिफ़ॉल्ट तौर पर True
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही है.
configurable bool; or unbound; डिफ़ॉल्ट रूप से unbound
होता है इस आर्ग्युमेंट को सिर्फ़ सिंबॉलिक मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है.

अगर configurable को साफ़ तौर पर False पर सेट किया गया है, तो सिंबॉलिक मैक्रो एट्रिब्यूट को कॉन्फ़िगर नहीं किया जा सकता. इसका मतलब है कि यह select() वैल्यू नहीं ले सकता. अगर configurable को अनबाउंड किया गया है या इसे साफ़ तौर पर True पर सेट किया गया है, तो एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है. साथ ही, इसे select() वैल्यू दी जा सकती है.

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को अनबाउंड छोड़ना होगा. ज़्यादातर Starlark नियम एट्रिब्यूट को हमेशा कॉन्फ़िगर किया जा सकता है. हालांकि, attr.output(), attr.output_list(), और attr.license() नियम एट्रिब्यूट को कभी भी कॉन्फ़िगर नहीं किया जा सकता.

default Label का sequence या function; डिफ़ॉल्ट वैल्यू []
है अगर नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Label फ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए, attr.label_list(default = ["//a:b", "//a:c"]).
materializer function; डिफ़ॉल्ट रूप से None
होता है एक्सपेरिमेंट के तौर पर उपलब्ध है. यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है. इसमें कभी भी बदलाव किया जा सकता है. कृपया इसके भरोसे न रहें. इसे एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. इसके लिए, --experimental_dormant_deps
को सेट करना होगा. अगर इसे सेट किया जाता है, तो एट्रिब्यूट, ट्रांज़िटिव क्लोज़र से डॉर्मेंट डिपेंडेंसी को मटीरियलाइज़ करता है. इस पैरामीटर की वैल्यू एक ऐसा फ़ंक्शन होना चाहिए जो नियम के उन एट्रिब्यूट की वैल्यू को ऐक्सेस करता है जो डिपेंडेंसी नहीं हैं या जिन्हें डिपेंडेंसी की समस्या हल करने के लिए उपलब्ध के तौर पर मार्क किया गया है. यह एट्रिब्यूट के टाइप के आधार पर, या तो एक ऐसी डिपेंडेंसी दिखाता है जो काम नहीं कर रही है या ऐसी डिपेंडेंसी की सूची दिखाता है
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
allow_files bool; या sequence of strings; या None; डिफ़ॉल्ट तौर पर None
होता है यह तय करता है कि File टारगेट की अनुमति है या नहीं. यह True, False (डिफ़ॉल्ट) या अनुमति वाले फ़ाइल एक्सटेंशन की सूची हो सकती है. उदाहरण के लिए, [".cc", ".cpp"].
allow_rules स्ट्रिंग का क्रम या None; डिफ़ॉल्ट रूप से None
होता है किन नियमों के टारगेट (क्लास के नाम) की अनुमति है. इसे बंद कर दिया गया है. इसे सिर्फ़ कंपैटिबिलिटी के लिए रखा गया है. इसके बजाय, प्रोवाइडर का इस्तेमाल करें.
providers sequence; डिफ़ॉल्ट रूप से []
होता है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के लिए, सेवा देने वाली कंपनियों की सूची.

इस आर्ग्युमेंट का फ़ॉर्मैट, प्रोवाइडर की सूचियों की सूची होती है. यह provider() से मिले *Info ऑब्जेक्ट होते हैं. हालांकि, लेगसी प्रोवाइडर के मामले में, यह उसका स्ट्रिंग नाम होता है. डिपेंडेंसी को कम से कम एक इनर लिस्ट में बताए गए सभी प्रोवाइडर की जानकारी देनी होगी. सुविधा के लिए, यह आर्ग्युमेंट प्रोवाइडर की सिंगल-लेवल सूची भी हो सकता है. ऐसे में, इसे एक एलिमेंट वाली बाहरी सूची में रैप किया जाता है. इसका मतलब है कि [A, B] का मतलब [[A, B]] है. यह ज़रूरी नहीं है कि डिपेंडेंसी का नियम, उन प्रोवाइडर का विज्ञापन अपने provides पैरामीटर में दिखाए. हालांकि, इसे सबसे सही तरीका माना जाता है.

for_dependency_resolution डिफ़ॉल्ट तौर पर unbound
होता है अगर इसे सेट किया जाता है, तो एट्रिब्यूट, मटीरियलाइज़र के लिए उपलब्ध होता है. इस तरह के एट्रिब्यूट के ज़रिए, सिर्फ़ उन नियमों को रेफ़रंस किया जा सकता है जिन्हें एक ही नाम वाले फ़्लैग से मार्क किया गया है.
flags sequence of strings; डिफ़ॉल्ट []
होता है अब इस्तेमाल नहीं किया जा सकता, इसे हटा दिया जाएगा.
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.
skip_validations bool; डिफ़ॉल्ट तौर पर False
होता है अगर सही है, तो इस एट्रिब्यूट से ट्रांज़िटिव डिपेंडेंसी की पुष्टि करने वाली कार्रवाइयां नहीं चलेंगी. यह समस्या को कुछ समय के लिए ठीक करने का तरीका है. आने वाले समय में इसे हटा दिया जाएगा.
cfg डिफ़ॉल्ट रूप से None
होता है एट्रिब्यूट का कॉन्फ़िगरेशन. यह "exec" या "target" हो सकता है. "exec" का मतलब है कि डिपेंडेंसी execution platform के लिए बनाई गई है. वहीं, "target" का मतलब है कि डिपेंडेंसी target platform के लिए बनाई गई है. मोबाइल ऐप्लिकेशन बनाते समय, इस अंतर का एक सामान्य उदाहरण मिलता है. इसमें target platform, Android या iOS होता है, जबकि execution platform, Linux, macOS या Windows होता है.
aspects sequence of Aspects; डिफ़ॉल्ट रूप से []
होता है ऐसे आसपेक्ट जिन्हें इस एट्रिब्यूट से तय की गई डिपेंडेंसी या डिपेंडेंसी पर लागू किया जाना चाहिए.

label_list_dict

Attribute attr.label_list_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], for_dependency_resolution=unbound, flags=[], mandatory=False, skip_validations=False, cfg=None, aspects=[])

यह डिक्शनरी रखने वाली एट्रिब्यूट के लिए स्कीमा बनाता है. इसमें कुंजियां स्ट्रिंग होती हैं और वैल्यू, लेबल की सूची होती है. यह एक डिपेंडेंसी एट्रिब्यूट है.

इस एट्रिब्यूट में यूनीक Label वैल्यू शामिल हैं. अगर Label की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदला जाएगा. लेबल पाथ के रिलेटिव हिस्से, इंस्टैंटिएट किए गए टारगेट के पैकेज के हिसाब से तय किए जाते हैं. इनमें (शायद नाम बदली गई) रिपॉज़िटरी भी शामिल होती है.

विश्लेषण के समय (नियम लागू करने वाले फ़ंक्शन के अंदर), ctx.attr से एट्रिब्यूट वैल्यू वापस पाने पर, लेबल की जगह उनसे जुड़े Target दिखते हैं. इससे आपको मौजूदा टारगेट की डिपेंडेंसी के प्रोवाइडर को ऐक्सेस करने की अनुमति मिलती है.

पैरामीटर

पैरामीटर ब्यौरा
allow_empty bool; डिफ़ॉल्ट तौर पर True
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही है.
configurable bool; or unbound; डिफ़ॉल्ट रूप से unbound
होता है इस आर्ग्युमेंट को सिर्फ़ सिंबॉलिक मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है.

अगर configurable को साफ़ तौर पर False पर सेट किया गया है, तो सिंबॉलिक मैक्रो एट्रिब्यूट को कॉन्फ़िगर नहीं किया जा सकता. इसका मतलब है कि यह select() वैल्यू नहीं ले सकता. अगर configurable को अनबाउंड किया गया है या इसे साफ़ तौर पर True पर सेट किया गया है, तो एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है. साथ ही, इसे select() वैल्यू दी जा सकती है.

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को अनबाउंड छोड़ना होगा. ज़्यादातर Starlark नियम एट्रिब्यूट को हमेशा कॉन्फ़िगर किया जा सकता है. हालांकि, attr.output(), attr.output_list(), और attr.license() नियम एट्रिब्यूट को कभी भी कॉन्फ़िगर नहीं किया जा सकता.

default dict; डिफ़ॉल्ट तौर पर {}
होता है यह एक डिफ़ॉल्ट वैल्यू है. इसका इस्तेमाल तब किया जाता है, जब नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है. डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Label फ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए, attr.label_list_dict(default = {"key1": ["//a:b", "//a:c"], "key2": [Label("@my_repo//d:e")]}).
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
allow_files bool; या sequence of strings; या None; डिफ़ॉल्ट तौर पर None
होता है यह तय करता है कि File टारगेट की अनुमति है या नहीं. यह True, False (डिफ़ॉल्ट) या अनुमति वाले फ़ाइल एक्सटेंशन की सूची हो सकती है. उदाहरण के लिए, [".cc", ".cpp"].
allow_rules स्ट्रिंग का क्रम या None; डिफ़ॉल्ट रूप से None
होता है किन नियमों के टारगेट (क्लास के नाम) की अनुमति है. इसे बंद कर दिया गया है. इसे सिर्फ़ कंपैटिबिलिटी के लिए रखा गया है. इसके बजाय, प्रोवाइडर का इस्तेमाल करें.
providers sequence; डिफ़ॉल्ट रूप से []
होता है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के लिए, सेवा देने वाली कंपनियों की सूची.

इस आर्ग्युमेंट का फ़ॉर्मैट, प्रोवाइडर की सूचियों की सूची होती है. यह provider() से मिले *Info ऑब्जेक्ट होते हैं. हालांकि, लेगसी प्रोवाइडर के मामले में, यह उसका स्ट्रिंग नाम होता है. डिपेंडेंसी को कम से कम एक इनर लिस्ट में बताए गए सभी प्रोवाइडर की जानकारी देनी होगी. सुविधा के लिए, यह आर्ग्युमेंट प्रोवाइडर की सिंगल-लेवल सूची भी हो सकता है. ऐसे में, इसे एक एलिमेंट वाली बाहरी सूची में रैप किया जाता है. इसका मतलब है कि [A, B] का मतलब [[A, B]] है. यह ज़रूरी नहीं है कि डिपेंडेंसी का नियम, उन प्रोवाइडर का विज्ञापन अपने provides पैरामीटर में दिखाए. हालांकि, इसे सबसे सही तरीका माना जाता है.

for_dependency_resolution डिफ़ॉल्ट तौर पर unbound
होता है अगर इसे सेट किया जाता है, तो एट्रिब्यूट, मटीरियलाइज़र के लिए उपलब्ध होता है. इस तरह के एट्रिब्यूट के ज़रिए, सिर्फ़ उन नियमों को रेफ़रंस किया जा सकता है जिन्हें एक ही नाम वाले फ़्लैग से मार्क किया गया है.
flags sequence of strings; डिफ़ॉल्ट []
होता है अब इस्तेमाल नहीं किया जा सकता, इसे हटा दिया जाएगा.
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.
skip_validations bool; डिफ़ॉल्ट तौर पर False
होता है अगर सही है, तो इस एट्रिब्यूट से ट्रांज़िटिव डिपेंडेंसी की पुष्टि करने वाली कार्रवाइयां नहीं चलेंगी. यह समस्या को कुछ समय के लिए ठीक करने का तरीका है. आने वाले समय में इसे हटा दिया जाएगा.
cfg डिफ़ॉल्ट रूप से None
होता है एट्रिब्यूट का कॉन्फ़िगरेशन. यह "exec" या "target" हो सकता है. "exec" का मतलब है कि डिपेंडेंसी execution platform के लिए बनाई गई है. वहीं, "target" का मतलब है कि डिपेंडेंसी target platform के लिए बनाई गई है. मोबाइल ऐप्लिकेशन बनाते समय, इस अंतर का एक सामान्य उदाहरण मिलता है. इसमें target platform, Android या iOS होता है, जबकि execution platform, Linux, macOS या Windows होता है.
aspects sequence of Aspects; डिफ़ॉल्ट रूप से []
होता है ऐसे आसपेक्ट जिन्हें इस एट्रिब्यूट से तय की गई डिपेंडेंसी या डिपेंडेंसी पर लागू किया जाना चाहिए.

आउटपुट

Attribute attr.output(*, doc=None, mandatory=False)

यह फ़ंक्शन, आउटपुट (लेबल) एट्रिब्यूट के लिए स्कीमा बनाता है.

इस एट्रिब्यूट में यूनीक Label वैल्यू शामिल हैं. अगर Label की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदला जाएगा. लेबल पाथ के रिलेटिव हिस्से, इंस्टैंटिएट किए गए टारगेट के पैकेज के हिसाब से तय किए जाते हैं. इनमें (शायद नाम बदली गई) रिपॉज़िटरी भी शामिल होती है.

विश्लेषण के समय, ctx.outputs का इस्तेमाल करके, इससे जुड़ा File वापस पाया जा सकता है.

पैरामीटर

पैरामीटर ब्यौरा
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.

output_list

Attribute attr.output_list(allow_empty=True, *, doc=None, mandatory=False)

यह फ़ंक्शन, लिस्ट-ऑफ़-आउटपुट एट्रिब्यूट के लिए स्कीमा बनाता है.

इस एट्रिब्यूट में यूनीक Label वैल्यू शामिल हैं. अगर Label की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदला जाएगा. लेबल पाथ के रिलेटिव हिस्से, इंस्टैंटिएट किए गए टारगेट के पैकेज के हिसाब से तय किए जाते हैं. इनमें (शायद नाम बदली गई) रिपॉज़िटरी भी शामिल होती है.

विश्लेषण के समय, ctx.outputs का इस्तेमाल करके, इससे जुड़ा File वापस पाया जा सकता है.

पैरामीटर

पैरामीटर ब्यौरा
allow_empty bool; डिफ़ॉल्ट तौर पर True
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही है.
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.

स्ट्रिंग

Attribute attr.string(*, configurable=unbound, default='', doc=None, mandatory=False, values=[])

यह फ़ंक्शन, string एट्रिब्यूट के लिए स्कीमा बनाता है.

पैरामीटर

पैरामीटर ब्यौरा
configurable bool; or unbound; डिफ़ॉल्ट रूप से unbound
होता है इस आर्ग्युमेंट को सिर्फ़ सिंबॉलिक मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है.

अगर configurable को साफ़ तौर पर False पर सेट किया गया है, तो सिंबॉलिक मैक्रो एट्रिब्यूट को कॉन्फ़िगर नहीं किया जा सकता. इसका मतलब है कि यह select() वैल्यू नहीं ले सकता. अगर configurable को अनबाउंड किया गया है या इसे साफ़ तौर पर True पर सेट किया गया है, तो एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है. साथ ही, इसे select() वैल्यू दी जा सकती है.

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को अनबाउंड छोड़ना होगा. ज़्यादातर Starlark नियम एट्रिब्यूट को हमेशा कॉन्फ़िगर किया जा सकता है. हालांकि, attr.output(), attr.output_list(), और attr.license() नियम एट्रिब्यूट को कभी भी कॉन्फ़िगर नहीं किया जा सकता.

default string; या NativeComputedDefault; डिफ़ॉल्ट वैल्यू ''
है यह डिफ़ॉल्ट वैल्यू तब इस्तेमाल की जाती है, जब नियम को लागू करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है.
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.
values स्ट्रिंग का क्रम; डिफ़ॉल्ट रूप से []
होता है यह एट्रिब्यूट के लिए, अनुमति वाली वैल्यू की सूची होती है. अगर कोई दूसरी वैल्यू दी जाती है, तो गड़बड़ी का मैसेज दिखता है.

string_dict

Attribute attr.string_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, mandatory=False)

यह डिक्शनरी रखने वाले एट्रिब्यूट के लिए स्कीमा बनाता है. इसमें कुंजियां और वैल्यू स्ट्रिंग होती हैं.

पैरामीटर

पैरामीटर ब्यौरा
allow_empty bool; डिफ़ॉल्ट तौर पर True
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही है.
configurable bool; or unbound; डिफ़ॉल्ट रूप से unbound
होता है इस आर्ग्युमेंट को सिर्फ़ सिंबॉलिक मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है.

अगर configurable को साफ़ तौर पर False पर सेट किया गया है, तो सिंबॉलिक मैक्रो एट्रिब्यूट को कॉन्फ़िगर नहीं किया जा सकता. इसका मतलब है कि यह select() वैल्यू नहीं ले सकता. अगर configurable को अनबाउंड किया गया है या इसे साफ़ तौर पर True पर सेट किया गया है, तो एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है. साथ ही, इसे select() वैल्यू दी जा सकती है.

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को अनबाउंड छोड़ना होगा. ज़्यादातर Starlark नियम एट्रिब्यूट को हमेशा कॉन्फ़िगर किया जा सकता है. हालांकि, attr.output(), attr.output_list(), और attr.license() नियम एट्रिब्यूट को कभी भी कॉन्फ़िगर नहीं किया जा सकता.

default dict; डिफ़ॉल्ट तौर पर {}
होता है अगर नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू.
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.

string_keyed_label_dict

Attribute attr.string_keyed_label_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], for_dependency_resolution=unbound, flags=[], mandatory=False, cfg=None, aspects=[])

यह ऐसे एट्रिब्यूट के लिए स्कीमा बनाता है जिसकी वैल्यू एक डिक्शनरी होती है. इसमें कुंजियां स्ट्रिंग होती हैं और वैल्यू लेबल होती हैं. यह एक डिपेंडेंसी एट्रिब्यूट है.

इस एट्रिब्यूट में यूनीक Label वैल्यू शामिल हैं. अगर Label की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदला जाएगा. लेबल पाथ के रिलेटिव हिस्से, इंस्टैंटिएट किए गए टारगेट के पैकेज के हिसाब से तय किए जाते हैं. इनमें (शायद नाम बदली गई) रिपॉज़िटरी भी शामिल होती है.

विश्लेषण के समय (नियम लागू करने वाले फ़ंक्शन के अंदर), ctx.attr से एट्रिब्यूट वैल्यू वापस पाने पर, लेबल की जगह उनसे जुड़े Target दिखते हैं. इससे आपको मौजूदा टारगेट की डिपेंडेंसी के प्रोवाइडर को ऐक्सेस करने की अनुमति मिलती है.

पैरामीटर

पैरामीटर ब्यौरा
allow_empty bool; डिफ़ॉल्ट तौर पर True
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही है.
configurable bool; or unbound; डिफ़ॉल्ट रूप से unbound
होता है इस आर्ग्युमेंट को सिर्फ़ सिंबॉलिक मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है.

अगर configurable को साफ़ तौर पर False पर सेट किया गया है, तो सिंबॉलिक मैक्रो एट्रिब्यूट को कॉन्फ़िगर नहीं किया जा सकता. इसका मतलब है कि यह select() वैल्यू नहीं ले सकता. अगर configurable को अनबाउंड किया गया है या इसे साफ़ तौर पर True पर सेट किया गया है, तो एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है. साथ ही, इसे select() वैल्यू दी जा सकती है.

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को अनबाउंड छोड़ना होगा. ज़्यादातर Starlark नियम एट्रिब्यूट को हमेशा कॉन्फ़िगर किया जा सकता है. हालांकि, attr.output(), attr.output_list(), और attr.license() नियम एट्रिब्यूट को कभी भी कॉन्फ़िगर नहीं किया जा सकता.

default dict; या function; डिफ़ॉल्ट रूप से {}
होता है अगर नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Label फ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए, attr.string_keyed_label_dict(default = {"foo": "//a:b", "bar": "//a:c"}).
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
allow_files bool; या sequence of strings; या None; डिफ़ॉल्ट तौर पर None
होता है यह तय करता है कि File टारगेट की अनुमति है या नहीं. यह True, False (डिफ़ॉल्ट) या अनुमति वाले फ़ाइल एक्सटेंशन की सूची हो सकती है. उदाहरण के लिए, [".cc", ".cpp"].
allow_rules स्ट्रिंग का क्रम या None; डिफ़ॉल्ट रूप से None
होता है किन नियमों के टारगेट (क्लास के नाम) की अनुमति है. इसे बंद कर दिया गया है. इसे सिर्फ़ कंपैटिबिलिटी के लिए रखा गया है. इसके बजाय, प्रोवाइडर का इस्तेमाल करें.
providers sequence; डिफ़ॉल्ट रूप से []
होता है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के लिए, सेवा देने वाली कंपनियों की सूची.

इस आर्ग्युमेंट का फ़ॉर्मैट, प्रोवाइडर की सूचियों की सूची होती है. यह provider() से मिले *Info ऑब्जेक्ट होते हैं. हालांकि, लेगसी प्रोवाइडर के मामले में, यह उसका स्ट्रिंग नाम होता है. डिपेंडेंसी को कम से कम एक इनर लिस्ट में बताए गए सभी प्रोवाइडर की जानकारी देनी होगी. सुविधा के लिए, यह आर्ग्युमेंट प्रोवाइडर की सिंगल-लेवल सूची भी हो सकता है. ऐसे में, इसे एक एलिमेंट वाली बाहरी सूची में रैप किया जाता है. इसका मतलब है कि [A, B] का मतलब [[A, B]] है. यह ज़रूरी नहीं है कि डिपेंडेंसी का नियम, उन प्रोवाइडर का विज्ञापन अपने provides पैरामीटर में दिखाए. हालांकि, इसे सबसे सही तरीका माना जाता है.

for_dependency_resolution डिफ़ॉल्ट तौर पर unbound
होता है अगर इसे सेट किया जाता है, तो एट्रिब्यूट, मटीरियलाइज़र के लिए उपलब्ध होता है. इस तरह के एट्रिब्यूट के ज़रिए, सिर्फ़ उन नियमों को रेफ़रंस किया जा सकता है जिन्हें एक ही नाम वाले फ़्लैग से मार्क किया गया है.
flags sequence of strings; डिफ़ॉल्ट []
होता है अब इस्तेमाल नहीं किया जा सकता, इसे हटा दिया जाएगा.
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.
cfg डिफ़ॉल्ट रूप से None
होता है एट्रिब्यूट का कॉन्फ़िगरेशन. यह "exec" या "target" हो सकता है. "exec" का मतलब है कि डिपेंडेंसी execution platform के लिए बनाई गई है. वहीं, "target" का मतलब है कि डिपेंडेंसी target platform के लिए बनाई गई है. मोबाइल ऐप्लिकेशन बनाते समय, इस अंतर का एक सामान्य उदाहरण मिलता है. इसमें target platform, Android या iOS होता है, जबकि execution platform, Linux, macOS या Windows होता है.
aspects sequence of Aspects; डिफ़ॉल्ट रूप से []
होता है ऐसे आसपेक्ट जिन्हें इस एट्रिब्यूट से तय की गई डिपेंडेंसी या डिपेंडेंसी पर लागू किया जाना चाहिए.

string_list

Attribute attr.string_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)

यह फ़ंक्शन, स्ट्रिंग की सूची वाले एट्रिब्यूट के लिए स्कीमा बनाता है.

पैरामीटर

पैरामीटर ब्यौरा
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.
allow_empty bool; डिफ़ॉल्ट तौर पर True
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही है.
configurable bool; or unbound; डिफ़ॉल्ट रूप से unbound
होता है इस आर्ग्युमेंट को सिर्फ़ सिंबॉलिक मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है.

अगर configurable को साफ़ तौर पर False पर सेट किया गया है, तो सिंबॉलिक मैक्रो एट्रिब्यूट को कॉन्फ़िगर नहीं किया जा सकता. इसका मतलब है कि यह select() वैल्यू नहीं ले सकता. अगर configurable को अनबाउंड किया गया है या इसे साफ़ तौर पर True पर सेट किया गया है, तो एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है. साथ ही, इसे select() वैल्यू दी जा सकती है.

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को अनबाउंड छोड़ना होगा. ज़्यादातर Starlark नियम एट्रिब्यूट को हमेशा कॉन्फ़िगर किया जा सकता है. हालांकि, attr.output(), attr.output_list(), और attr.license() नियम एट्रिब्यूट को कभी भी कॉन्फ़िगर नहीं किया जा सकता.

default string का sequence या NativeComputedDefault; डिफ़ॉल्ट वैल्यू []
है यह एक डिफ़ॉल्ट वैल्यू है. इसका इस्तेमाल तब किया जाता है, जब नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है.
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.

string_list_dict

Attribute attr.string_list_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, mandatory=False)

यह फ़ंक्शन, डिक्शनरी रखने वाले एट्रिब्यूट के लिए स्कीमा बनाता है. इसमें कुंजियां स्ट्रिंग होती हैं और वैल्यू, स्ट्रिंग की सूचियां होती हैं.

पैरामीटर

पैरामीटर ब्यौरा
allow_empty bool; डिफ़ॉल्ट तौर पर True
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही है.
configurable bool; or unbound; डिफ़ॉल्ट रूप से unbound
होता है इस आर्ग्युमेंट को सिर्फ़ सिंबॉलिक मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है.

अगर configurable को साफ़ तौर पर False पर सेट किया गया है, तो सिंबॉलिक मैक्रो एट्रिब्यूट को कॉन्फ़िगर नहीं किया जा सकता. इसका मतलब है कि यह select() वैल्यू नहीं ले सकता. अगर configurable को अनबाउंड किया गया है या इसे साफ़ तौर पर True पर सेट किया गया है, तो एट्रिब्यूट को कॉन्फ़िगर किया जा सकता है. साथ ही, इसे select() वैल्यू दी जा सकती है.

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को अनबाउंड छोड़ना होगा. ज़्यादातर Starlark नियम एट्रिब्यूट को हमेशा कॉन्फ़िगर किया जा सकता है. हालांकि, attr.output(), attr.output_list(), और attr.license() नियम एट्रिब्यूट को कभी भी कॉन्फ़िगर नहीं किया जा सकता.

default dict; डिफ़ॉल्ट तौर पर {}
होता है अगर नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू.
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
mandatory bool; डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें default मौजूद हो.