attr

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

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

सदस्य

बूल

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=[])

यह फ़ंक्शन, पूर्णांक एट्रिब्यूट के लिए स्कीमा बनाता है. वैल्यू, साइंड 32-बिट रेंज में होनी चाहिए. इससे जुड़ा 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)

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

पैरामीटर

पैरामीटर ब्यौरा
mandatory डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसकी वैल्यू default हो.
allow_empty डिफ़ॉल्ट तौर पर True
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो इसे 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; default is None
यह एक डिफ़ॉल्ट वैल्यू है. इसका इस्तेमाल तब किया जाता है, जब नियम को इंस्टैंटिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है. डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Label फ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए, attr.label(default = "//a:b").
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
executable डिफ़ॉल्ट रूप से False
True if the dependency has to be executable. इसका मतलब है कि लेबल, किसी एक्ज़ीक्यूटेबल फ़ाइल या किसी ऐसे नियम के बारे में होना चाहिए जो एक्ज़ीक्यूटेबल फ़ाइल बनाता है. 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 डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसकी वैल्यू default हो.
providers डिफ़ॉल्ट रूप से []
होता है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के लिए, प्रोवाइडर की जानकारी देना ज़रूरी है.

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

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, *, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])

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

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

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

पैरामीटर

पैरामीटर ब्यौरा
allow_empty डिफ़ॉल्ट तौर पर True
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो इसे True पर सेट करें.
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 डिफ़ॉल्ट रूप से []
होता है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के लिए, प्रोवाइडर की जानकारी देना ज़रूरी है.

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

flags sequence of strings; डिफ़ॉल्ट []
होता है अब इस्तेमाल नहीं किया जा सकता, इसे हटा दिया जाएगा.
mandatory डिफ़ॉल्ट वैल्यू 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; डिफ़ॉल्ट रूप से []
होता है ऐसे आसपेक्ट जिन्हें इस एट्रिब्यूट से तय की गई डिपेंडेंसी या डिपेंडेंसी पर लागू किया जाना चाहिए.

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

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

flags sequence of strings; डिफ़ॉल्ट []
होता है अब इस्तेमाल नहीं किया जा सकता, इसे हटा दिया जाएगा.
mandatory डिफ़ॉल्ट वैल्यू 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; डिफ़ॉल्ट रूप से []
होता है ऐसे आसपेक्ट जिन्हें इस एट्रिब्यूट से तय की गई डिपेंडेंसी या डिपेंडेंसी पर लागू किया जाना चाहिए.

आउटपुट

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
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो इसे True पर सेट करें.
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
mandatory डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसकी वैल्यू default हो.

स्ट्रिंग

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

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

पैरामीटर

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

string_dict

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

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

पैरामीटर

पैरामीटर ब्यौरा
allow_empty डिफ़ॉल्ट तौर पर True
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो इसे 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
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो इसे True पर सेट करें.
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 डिफ़ॉल्ट रूप से []
होता है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के लिए, प्रोवाइडर की जानकारी देना ज़रूरी है.

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

flags sequence of strings; डिफ़ॉल्ट []
होता है अब इस्तेमाल नहीं किया जा सकता, इसे हटा दिया जाएगा.
mandatory डिफ़ॉल्ट वैल्यू 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, *, default=[], doc=None)

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

पैरामीटर

पैरामीटर ब्यौरा
mandatory डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसकी वैल्यू default हो.
allow_empty डिफ़ॉल्ट तौर पर True
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो इसे 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
होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो इसे True पर सेट करें.
default डिफ़ॉल्ट वैल्यू {}
यह एक डिफ़ॉल्ट वैल्यू है. इसका इस्तेमाल तब किया जाता है, जब नियम को लागू करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है.
doc string; या None; डिफ़ॉल्ट तौर पर None
होता है दस्तावेज़ जनरेट करने वाले टूल से निकाले जा सकने वाले एट्रिब्यूट की जानकारी.
mandatory डिफ़ॉल्ट वैल्यू False
है अगर वैल्यू सही है, तो उसे साफ़ तौर पर बताना होगा. भले ही, उसकी वैल्यू default हो.