rule() और aspect() के attrs डिक्शनरी आर्ग्युमेंट की वैल्यू के तौर पर किया जाता है.एट्रिब्यूट तय करने और इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, नियमों का पेज देखें.
सदस्य
- bool
- int
- int_list
- लेबल
- label_keyed_string_dict
- label_list
- output
- output_list
- स्ट्रिंग
- string_dict
- string_keyed_label_dict
- string_list
- string_list_dict
बूल
Attribute attr.bool(default=False, doc=None, mandatory=False)
ctx.attr एट्रिब्यूट की वैल्यू bool टाइप की होगी.
          
      पैरामीटर
| पैरामीटर | ब्यौरा | 
|---|---|
| default | डिफ़ॉल्ट वैल्यू Falseयह एक डिफ़ॉल्ट वैल्यू है. इसका इस्तेमाल तब किया जाता है, जब नियम को लागू करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है. | 
| doc | string; या None;
                                     डिफ़ॉल्ट तौर परNoneहोता है एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. | 
| mandatory | डिफ़ॉल्ट वैल्यू Falseहै अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें defaultमौजूद हो. | 
int
Attribute attr.int(default=0, doc=None, mandatory=False, values=[])
ctx.attr एट्रिब्यूट की वैल्यू int टाइप की होगी.
          
      पैरामीटर
| पैरामीटर | ब्यौरा | 
|---|---|
| default | डिफ़ॉल्ट वैल्यू 0यह एक डिफ़ॉल्ट वैल्यू है. इसका इस्तेमाल तब किया जाता है, जब नियम को लागू करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है. | 
| doc | string; या None;
                                     डिफ़ॉल्ट तौर परNoneहोता है एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. | 
| mandatory | डिफ़ॉल्ट वैल्यू Falseहै अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें defaultमौजूद हो. | 
| values | int का sequence;
                                     डिफ़ॉल्ट रूप से []होता है यह एट्रिब्यूट के लिए इस्तेमाल की जा सकने वाली वैल्यू की सूची होती है. कोई दूसरी वैल्यू देने पर गड़बड़ी का मैसेज दिखता है. | 
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc=None)
पैरामीटर
| पैरामीटर | ब्यौरा | 
|---|---|
| mandatory | डिफ़ॉल्ट वैल्यू Falseहै अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें defaultमौजूद हो. | 
| allow_empty | डिफ़ॉल्ट तौर पर Trueहोता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही होता है. | 
| default | ints का sequence;
                                     डिफ़ॉल्ट वैल्यू []है यह एक डिफ़ॉल्ट वैल्यू है. इसका इस्तेमाल तब किया जाता है, जब नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है. | 
| doc | string; या None;
                                     डिफ़ॉल्ट तौर परNoneहोता है एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. | 
लेबल
Attribute attr.label(default=None, doc=None, executable=False, allow_files=None, allow_single_file=None, mandatory=False, providers=[], allow_rules=None, cfg=None, aspects=[], flags=[])
यह फ़ंक्शन, लेबल एट्रिब्यूट के लिए स्कीमा बनाता है. यह एक डिपेंडेंसी एट्रिब्यूट है.
इस एट्रिब्यूट में यूनीक Label वैल्यू शामिल हैं. अगर Label की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदला जाएगा. लेबल पाथ के रिलेटिव हिस्सों को इंस्टैंटिएट किए गए टारगेट के पैकेज के हिसाब से हल किया जाता है. इनमें (शायद नाम बदली गई) रिपॉज़िटरी भी शामिल है.
विश्लेषण के समय (नियम लागू करने वाले फ़ंक्शन के अंदर), ctx.attr से एट्रिब्यूट वैल्यू वापस पाने पर, लेबल को उनसे जुड़े Target से बदल दिया जाता है. इससे आपको मौजूदा टारगेट की डिपेंडेंसी के प्रोवाइडर को ऐक्सेस करने की अनुमति मिलती है.
इस तरह के एट्रिब्यूट का इस्तेमाल, आम तौर पर सोर्स फ़ाइलों के साथ-साथ किसी टूल को रेफ़र करने के लिए भी किया जाता है. उदाहरण के लिए, कंपाइलर. ऐसे टूल को सोर्स फ़ाइलों की तरह ही डिपेंडेंसी माना जाता है. उपयोगकर्ताओं को अपनी BUILD फ़ाइलों में नियम का इस्तेमाल करते समय, हर बार टूल का लेबल तय करने की ज़रूरत न पड़े, इसके लिए कैननिकल टूल के लेबल को इस एट्रिब्यूट की default वैल्यू के तौर पर हार्ड-कोड किया जा सकता है. अगर आपको उपयोगकर्ताओं को इस डिफ़ॉल्ट वैल्यू को बदलने से रोकना है, तो एट्रिब्यूट को निजी बनाया जा सकता है. इसके लिए, एट्रिब्यूट को ऐसा नाम दें जो अंडरस्कोर से शुरू होता हो. ज़्यादा जानकारी के लिए, नियम पेज देखें.
          
      
पैरामीटर
| पैरामीटर | ब्यौरा | 
|---|---|
| default | Label; या string; या LateBoundDefault; या NativeComputedDefault; या function; या None;
                                     डिफ़ॉल्ट रूप सेNoneहोता है अगर नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Labelफ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए,attr.label(default = "//a:b"). | 
| doc | string; या None;
                                     डिफ़ॉल्ट तौर परNoneहोता है एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. | 
| executable | डिफ़ॉल्ट रूप से FalseTrue if the dependency has to be executable. इसका मतलब है कि लेबल, किसी एक्ज़ीक्यूटेबल फ़ाइल या किसी ऐसे नियम के बारे में होना चाहिए जो एक्ज़ीक्यूटेबल फ़ाइल बनाता है. ctx.executable.<attribute_name>की मदद से लेबल ऐक्सेस करें. | 
| allow_files | bool; या string का sequence; या None;
                                     डिफ़ॉल्ट रूप सेNoneहोता है क्या Fileटारगेट की अनुमति है. यहTrue,False(डिफ़ॉल्ट) या फ़ाइल एक्सटेंशन की ऐसी सूची हो सकती है जिन्हें अनुमति है (उदाहरण के लिए,[".cc", ".cpp"]). | 
| allow_single_file | डिफ़ॉल्ट वैल्यू Noneहै यह allow_filesके जैसा ही है. हालांकि, इसमें यह पाबंदी है कि लेबल, किसी एक फ़ाइल से मेल खाना चाहिए. इसेctx.file.<attribute_name>से ऐक्सेस करें. | 
| mandatory | डिफ़ॉल्ट वैल्यू Falseहै अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें defaultमौजूद हो. | 
| providers | डिफ़ॉल्ट रूप से []होता है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के लिए, प्रोवाइडर की जानकारी देना ज़रूरी है. इस आर्ग्युमेंट का फ़ॉर्मैट, प्रोवाइडर की सूचियों की सूची होती है. यह  | 
| allow_rules | string का sequence; या None;
                                     डिफ़ॉल्ट रूप सेNoneहोता है नियम के लिए, टारगेट करने की अनुमति वाली क्लास के नाम. इसे बंद कर दिया गया है. इसे सिर्फ़ कंपैटिबिलिटी के लिए रखा गया है. इसके बजाय, प्रोवाइडर का इस्तेमाल करें. | 
| cfg | डिफ़ॉल्ट रूप से Noneहोता है एट्रिब्यूट का कॉन्फ़िगरेशन. यह "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, *, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
यह एक ऐसी एट्रिब्यूट के लिए स्कीमा बनाता है जिसमें डिक्शनरी होती है. इसमें कुंजियां लेबल होती हैं और वैल्यू स्ट्रिंग होती हैं. यह एक डिपेंडेंसी एट्रिब्यूट है.
इस एट्रिब्यूट में यूनीक Label वैल्यू शामिल हैं. अगर Label की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदला जाएगा. लेबल पाथ के रिलेटिव हिस्सों को इंस्टैंटिएट किए गए टारगेट के पैकेज के हिसाब से हल किया जाता है. इनमें (शायद नाम बदली गई) रिपॉज़िटरी भी शामिल है.
विश्लेषण के समय (नियम लागू करने वाले फ़ंक्शन के अंदर), ctx.attr से एट्रिब्यूट वैल्यू वापस पाने पर, लेबल को उनसे जुड़े Target से बदल दिया जाता है. इससे आपको मौजूदा टारगेट की डिपेंडेंसी के प्रोवाइडर को ऐक्सेस करने की अनुमति मिलती है.
          
      
पैरामीटर
| पैरामीटर | ब्यौरा | 
|---|---|
| allow_empty | डिफ़ॉल्ट तौर पर Trueहोता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही होता है. | 
| default | dict; या function;
                                     डिफ़ॉल्ट रूप से {}होता है अगर नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Labelफ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए,attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}). | 
| doc | string; या None;
                                     डिफ़ॉल्ट तौर परNoneहोता है एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. | 
| allow_files | bool; या string का sequence; या None;
                                     डिफ़ॉल्ट रूप सेNoneहोता है क्या Fileटारगेट की अनुमति है. यहTrue,False(डिफ़ॉल्ट) या फ़ाइल एक्सटेंशन की ऐसी सूची हो सकती है जिन्हें अनुमति है (उदाहरण के लिए,[".cc", ".cpp"]). | 
| allow_rules | string का sequence; या None;
                                     डिफ़ॉल्ट रूप सेNoneहोता है नियम के लिए, टारगेट करने की अनुमति वाली क्लास के नाम. इसे बंद कर दिया गया है. इसे सिर्फ़ कंपैटिबिलिटी के लिए रखा गया है. इसके बजाय, प्रोवाइडर का इस्तेमाल करें. | 
| providers | डिफ़ॉल्ट रूप से []होता है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के लिए, प्रोवाइडर की जानकारी देना ज़रूरी है. इस आर्ग्युमेंट का फ़ॉर्मैट, प्रोवाइडर की सूचियों की सूची होती है. यह  | 
| flags | sequence of strings;
                                     डिफ़ॉल्ट तौर पर []होता है अब इस्तेमाल नहीं किया जा सकता. इसे हटा दिया जाएगा. | 
| mandatory | डिफ़ॉल्ट वैल्यू Falseहै अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें defaultमौजूद हो. | 
| cfg | डिफ़ॉल्ट रूप से Noneहोता है एट्रिब्यूट का कॉन्फ़िगरेशन. यह "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, *, default=[], doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
यह फ़ंक्शन, लेबल की सूची वाले एट्रिब्यूट के लिए स्कीमा बनाता है. यह एक डिपेंडेंसी एट्रिब्यूट है. इससे जुड़ा ctx.attr एट्रिब्यूट, Targets की list टाइप का होगा.
इस एट्रिब्यूट में यूनीक Label वैल्यू शामिल हैं. अगर Label की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदला जाएगा. लेबल पाथ के रिलेटिव हिस्सों को इंस्टैंटिएट किए गए टारगेट के पैकेज के हिसाब से हल किया जाता है. इनमें (शायद नाम बदली गई) रिपॉज़िटरी भी शामिल है.
विश्लेषण के समय (नियम लागू करने वाले फ़ंक्शन के अंदर), ctx.attr से एट्रिब्यूट वैल्यू वापस पाने पर, लेबल को उनसे जुड़े Target से बदल दिया जाता है. इससे आपको मौजूदा टारगेट की डिपेंडेंसी के प्रोवाइडर को ऐक्सेस करने की अनुमति मिलती है.
          
      
पैरामीटर
| पैरामीटर | ब्यौरा | 
|---|---|
| allow_empty | डिफ़ॉल्ट तौर पर Trueहोता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही होता है. | 
| default | Label का sequence; या function;
                                     डिफ़ॉल्ट रूप से []होता है अगर नियम को इंस्टैंटिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Labelफ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए,attr.label_list(default = ["//a:b", "//a:c"]). | 
| doc | string; या None;
                                     डिफ़ॉल्ट तौर परNoneहोता है एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. | 
| allow_files | bool; या string का sequence; या None;
                                     डिफ़ॉल्ट रूप सेNoneहोता है क्या Fileटारगेट की अनुमति है. यहTrue,False(डिफ़ॉल्ट) या फ़ाइल एक्सटेंशन की ऐसी सूची हो सकती है जिन्हें अनुमति है (उदाहरण के लिए,[".cc", ".cpp"]). | 
| allow_rules | string का sequence; या None;
                                     डिफ़ॉल्ट रूप सेNoneहोता है नियम के लिए, टारगेट करने की अनुमति वाली क्लास के नाम. इसे बंद कर दिया गया है. इसे सिर्फ़ कंपैटिबिलिटी के लिए रखा गया है. इसके बजाय, प्रोवाइडर का इस्तेमाल करें. | 
| providers | डिफ़ॉल्ट रूप से []होता है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के लिए, प्रोवाइडर की जानकारी देना ज़रूरी है. इस आर्ग्युमेंट का फ़ॉर्मैट, प्रोवाइडर की सूचियों की सूची होती है. यह  | 
| flags | sequence of strings;
                                     डिफ़ॉल्ट तौर पर []होता है अब इस्तेमाल नहीं किया जा सकता. इसे हटा दिया जाएगा. | 
| mandatory | डिफ़ॉल्ट वैल्यू Falseहै अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें defaultमौजूद हो. | 
| cfg | डिफ़ॉल्ट रूप से Noneहोता है एट्रिब्यूट का कॉन्फ़िगरेशन. यह "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 | डिफ़ॉल्ट वैल्यू Falseहै अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें defaultमौजूद हो. | 
output_list
Attribute attr.output_list(allow_empty=True, *, doc=None, mandatory=False)
इस एट्रिब्यूट में यूनीक Label वैल्यू शामिल हैं. अगर Label की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदला जाएगा. लेबल पाथ के रिलेटिव हिस्सों को इंस्टैंटिएट किए गए टारगेट के पैकेज के हिसाब से हल किया जाता है. इनमें (शायद नाम बदली गई) रिपॉज़िटरी भी शामिल है.
विश्लेषण के समय, ctx.outputs का इस्तेमाल करके, इससे जुड़ा File वापस पाया जा सकता है.
          
      
पैरामीटर
| पैरामीटर | ब्यौरा | 
|---|---|
| allow_empty | डिफ़ॉल्ट तौर पर Trueहोता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही होता है. | 
| doc | string; या None;
                                     डिफ़ॉल्ट तौर परNoneहोता है एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. | 
| mandatory | डिफ़ॉल्ट वैल्यू Falseहै अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें defaultमौजूद हो. | 
स्ट्रिंग
Attribute attr.string(default='', doc=None, mandatory=False, values=[])
पैरामीटर
| पैरामीटर | ब्यौरा | 
|---|---|
| default | string; या NativeComputedDefault;
                                     डिफ़ॉल्ट वैल्यू ''है यह डिफ़ॉल्ट वैल्यू तब इस्तेमाल की जाती है, जब नियम को लागू करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है. | 
| doc | string; या None;
                                     डिफ़ॉल्ट तौर परNoneहोता है एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. | 
| mandatory | डिफ़ॉल्ट वैल्यू Falseहै अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें defaultमौजूद हो. | 
| values | string का sequence;
                                     डिफ़ॉल्ट रूप से []होता है यह एट्रिब्यूट के लिए, अनुमति वाली वैल्यू की सूची होती है. कोई दूसरी वैल्यू देने पर गड़बड़ी का मैसेज दिखता है. | 
string_dict
Attribute attr.string_dict(allow_empty=True, *, default={}, doc=None, mandatory=False)
पैरामीटर
| पैरामीटर | ब्यौरा | 
|---|---|
| allow_empty | डिफ़ॉल्ट तौर पर Trueहोता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही होता है. | 
| default | डिफ़ॉल्ट वैल्यू {}यह एक डिफ़ॉल्ट वैल्यू है. इसका इस्तेमाल तब किया जाता है, जब नियम को लागू करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है. | 
| doc | string; या None;
                                     डिफ़ॉल्ट तौर परNoneहोता है एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. | 
| mandatory | डिफ़ॉल्ट वैल्यू Falseहै अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें defaultमौजूद हो. | 
string_keyed_label_dict
Attribute attr.string_keyed_label_dict(allow_empty=True, *, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
यह एट्रिब्यूट के लिए एक स्कीमा बनाता है. इस एट्रिब्यूट की वैल्यू एक डिक्शनरी होती है. इसमें कुंजियां स्ट्रिंग होती हैं और वैल्यू लेबल होती हैं. यह एक डिपेंडेंसी एट्रिब्यूट है.
इस एट्रिब्यूट में यूनीक Label वैल्यू शामिल हैं. अगर Label की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदला जाएगा. लेबल पाथ के रिलेटिव हिस्सों को इंस्टैंटिएट किए गए टारगेट के पैकेज के हिसाब से हल किया जाता है. इनमें (शायद नाम बदली गई) रिपॉज़िटरी भी शामिल है.
विश्लेषण के समय (नियम लागू करने वाले फ़ंक्शन के अंदर), ctx.attr से एट्रिब्यूट वैल्यू वापस पाने पर, लेबल को उनसे जुड़े Target से बदल दिया जाता है. इससे आपको मौजूदा टारगेट की डिपेंडेंसी के प्रोवाइडर को ऐक्सेस करने की अनुमति मिलती है.
          
      
पैरामीटर
| पैरामीटर | ब्यौरा | 
|---|---|
| allow_empty | डिफ़ॉल्ट तौर पर Trueहोता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही होता है. | 
| default | dict; या function;
                                     डिफ़ॉल्ट रूप से {}होता है अगर नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Labelफ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए,attr.string_keyed_label_dict(default = {"foo": "//a:b", "bar": "//a:c"}). | 
| doc | string; या None;
                                     डिफ़ॉल्ट तौर परNoneहोता है एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. | 
| allow_files | bool; या string का sequence; या None;
                                     डिफ़ॉल्ट रूप सेNoneहोता है क्या Fileटारगेट की अनुमति है. यहTrue,False(डिफ़ॉल्ट) या फ़ाइल एक्सटेंशन की ऐसी सूची हो सकती है जिन्हें अनुमति है (उदाहरण के लिए,[".cc", ".cpp"]). | 
| allow_rules | string का sequence; या None;
                                     डिफ़ॉल्ट रूप सेNoneहोता है नियम के लिए, टारगेट करने की अनुमति वाली क्लास के नाम. इसे बंद कर दिया गया है. इसे सिर्फ़ कंपैटिबिलिटी के लिए रखा गया है. इसके बजाय, प्रोवाइडर का इस्तेमाल करें. | 
| providers | डिफ़ॉल्ट रूप से []होता है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के लिए, प्रोवाइडर की जानकारी देना ज़रूरी है. इस आर्ग्युमेंट का फ़ॉर्मैट, प्रोवाइडर की सूचियों की सूची होती है. यह  | 
| flags | sequence of strings;
                                     डिफ़ॉल्ट तौर पर []होता है अब इस्तेमाल नहीं किया जा सकता. इसे हटा दिया जाएगा. | 
| mandatory | डिफ़ॉल्ट वैल्यू Falseहै अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें defaultमौजूद हो. | 
| cfg | डिफ़ॉल्ट रूप से Noneहोता है एट्रिब्यूट का कॉन्फ़िगरेशन. यह "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, *, default=[], doc=None)
पैरामीटर
| पैरामीटर | ब्यौरा | 
|---|---|
| mandatory | डिफ़ॉल्ट वैल्यू Falseहै अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें defaultमौजूद हो. | 
| allow_empty | डिफ़ॉल्ट तौर पर Trueहोता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही होता है. | 
| default | string का sequence; या NativeComputedDefault;
                                     डिफ़ॉल्ट वैल्यू []है यह एक डिफ़ॉल्ट वैल्यू है. इसका इस्तेमाल तब किया जाता है, जब नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है. | 
| doc | string; या None;
                                     डिफ़ॉल्ट तौर परNoneहोता है एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. | 
string_list_dict
Attribute attr.string_list_dict(allow_empty=True, *, default={}, doc=None, mandatory=False)
पैरामीटर
| पैरामीटर | ब्यौरा | 
|---|---|
| allow_empty | डिफ़ॉल्ट तौर पर Trueहोता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो यह सही होता है. | 
| default | डिफ़ॉल्ट वैल्यू {}यह एक डिफ़ॉल्ट वैल्यू है. इसका इस्तेमाल तब किया जाता है, जब नियम को लागू करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है. | 
| doc | string; या None;
                                     डिफ़ॉल्ट तौर परNoneहोता है एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. | 
| mandatory | डिफ़ॉल्ट वैल्यू Falseहै अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसमें defaultमौजूद हो. |