attr

समस्या की शिकायत करें सोर्स देखें Nightly · 8.4 · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

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

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

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

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

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

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

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

पैरामीटर

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

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

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 मौजूद हो.