attr

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है किसी समस्या की शिकायत करें सोर्स देखें नाइटली · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

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

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

सदस्य

बूल

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

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

पैरामीटर

पैरामीटर ब्यौरा
configurable bool; या अनबाउंड; डिफ़ॉल्ट रूप से unbound
है यह तर्क केवल किसी प्रतीकात्मक मैक्रो की किसी विशेषता के लिए ही तय किया जा सकता है.

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

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को बिना किसी सीमा के छोड़ा जाना चाहिए. स्टारलार्क नियम के ज़्यादातर एट्रिब्यूट हमेशा कॉन्फ़िगर किए जा सकते हैं. इनमें 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; या अनबाउंड; डिफ़ॉल्ट रूप से unbound
है यह तर्क केवल किसी प्रतीकात्मक मैक्रो की किसी विशेषता के लिए ही तय किया जा सकता है.

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

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

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

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; या अनबाउंड; डिफ़ॉल्ट रूप से unbound
है यह तर्क केवल किसी प्रतीकात्मक मैक्रो की किसी विशेषता के लिए ही तय किया जा सकता है.

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

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

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

लेबल

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

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

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

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

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

पैरामीटर

पैरामीटर ब्यौरा
configurable bool; या अनबाउंड; डिफ़ॉल्ट रूप से unbound
है यह तर्क केवल किसी प्रतीकात्मक मैक्रो की किसी विशेषता के लिए ही तय किया जा सकता है.

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

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

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

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

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

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=[], flags=[], mandatory=False, cfg=None, aspects=[])

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

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

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

पैरामीटर

पैरामीटर ब्यौरा
allow_empty bool; डिफ़ॉल्ट रूप से True
है एट्रिब्यूट की वैल्यू को खाली छोड़ने पर, 'सही' होता है.
configurable bool; या अनबाउंड; डिफ़ॉल्ट रूप से unbound
है यह तर्क केवल किसी प्रतीकात्मक मैक्रो की किसी विशेषता के लिए ही तय किया जा सकता है.

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

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

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

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

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

label_list

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

'लेबल की सूची' एट्रिब्यूट के लिए स्कीमा बनाता है. यह एक डिपेंडेंसी एट्रिब्यूट है. संबंधित ctx.attr एट्रिब्यूट, Targets की सूची के टाइप की होगी.

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

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

पैरामीटर

पैरामीटर ब्यौरा
allow_empty bool; डिफ़ॉल्ट रूप से True
है एट्रिब्यूट की वैल्यू को खाली छोड़ने पर, 'सही' होता है.
configurable bool; या अनबाउंड; डिफ़ॉल्ट रूप से unbound
है यह तर्क केवल किसी प्रतीकात्मक मैक्रो की किसी विशेषता के लिए ही तय किया जा सकता है.

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

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

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

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

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

आउटपुट

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

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

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

विश्लेषण के समय, संबंधित File को ctx.outputs का इस्तेमाल करके वापस पाया जा सकता है.

पैरामीटर

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

output_list

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

आउटपुट की लिस्ट वाले एट्रिब्यूट के लिए स्कीमा बनाता है.

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

विश्लेषण के समय, संबंधित File को ctx.outputs का इस्तेमाल करके वापस पाया जा सकता है.

पैरामीटर

पैरामीटर ब्यौरा
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; या अनबाउंड; डिफ़ॉल्ट रूप से unbound
है यह तर्क केवल किसी प्रतीकात्मक मैक्रो की किसी विशेषता के लिए ही तय किया जा सकता है.

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

किसी नियम या पहलू के एट्रिब्यूट के लिए, configurable को बिना किसी सीमा के छोड़ा जाना चाहिए. स्टारलार्क नियम के ज़्यादातर एट्रिब्यूट हमेशा कॉन्फ़िगर किए जा सकते हैं. इनमें 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; या अनबाउंड; डिफ़ॉल्ट रूप से unbound
है यह तर्क केवल किसी प्रतीकात्मक मैक्रो की किसी विशेषता के लिए ही तय किया जा सकता है.

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

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

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

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; या अनबाउंड; डिफ़ॉल्ट रूप से unbound
है यह तर्क केवल किसी प्रतीकात्मक मैक्रो की किसी विशेषता के लिए ही तय किया जा सकता है.

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

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

default स्ट्रिंग का सीक्वेंस; या 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; या अनबाउंड; डिफ़ॉल्ट रूप से unbound
है यह तर्क केवल किसी प्रतीकात्मक मैक्रो की किसी विशेषता के लिए ही तय किया जा सकता है.

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

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

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