यह किसी नियम या पहलू के एट्रिब्यूट स्कीमा को तय करने के लिए, टॉप-लेवल मॉड्यूल है. हर फ़ंक्शन, किसी एक एट्रिब्यूट के स्कीमा को दिखाने वाला ऑब्जेक्ट दिखाता है. इन ऑब्जेक्ट का इस्तेमाल, rule()
, aspect()
, repository_rule()
, और tag_class()
के attrs
डिक्शनरी आर्ग्युमेंट की वैल्यू के तौर पर किया जाता है.
एट्रिब्यूट को तय करने और उनका इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, 'नियम' पेज देखें.
सदस्य
- bool
- int
- int_list
- लेबल
- label_keyed_string_dict
- label_list
- आउटपुट
- output_list
- स्ट्रिंग
- string_dict
- string_keyed_label_dict
- string_list
- string_list_dict
बूल
Attribute attr.bool(configurable=unbound, default=False, doc=None, mandatory=False)
ctx.attr
एट्रिब्यूट, bool
टाइप का होगा.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
configurable
|
bool; या अनबाउंड;
डिफ़ॉल्ट unbound हैयह आर्ग्युमेंट सिर्फ़ किसी सिंबल वाले मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है. अगर किसी नियम या पहलू के एट्रिब्यूट के लिए, |
default
|
bool;
डिफ़ॉल्ट False है नियम को लागू करते समय, अगर इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. |
doc
|
string या None ; डिफ़ॉल्ट तौर पर None एट्रिब्यूट की जानकारी होती है. इसे दस्तावेज़ जनरेट करने वाले टूल की मदद से निकाला जा सकता है. |
mandatory
|
bool;
डिफ़ॉल्ट वैल्यू False है अगर यह 'सही है' है, तो वैल्यू साफ़ तौर पर बताई जानी चाहिए. भले ही, उसमें default हो.
|
int
Attribute attr.int(configurable=unbound, default=0, doc=None, mandatory=False, values=[])
ctx.attr
एट्रिब्यूट, int
टाइप का होगा.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
configurable
|
bool या अनबाउंड;
डिफ़ॉल्ट तौर पर unbound होता है इस आर्ग्युमेंट को सिर्फ़ सिंबल मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है. अगर किसी नियम या पहलू के एट्रिब्यूट के लिए, |
default
|
int;
डिफ़ॉल्ट 0 है नियम को लागू करते समय, अगर इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. |
doc
|
string या None ; डिफ़ॉल्ट तौर पर None एट्रिब्यूट की जानकारी होती है. इसे दस्तावेज़ जनरेट करने वाले टूल की मदद से निकाला जा सकता है. |
mandatory
|
bool;
डिफ़ॉल्ट वैल्यू False है अगर यह 'सही है' है, तो वैल्यू साफ़ तौर पर बताई जानी चाहिए. भले ही, उसमें default हो.
|
values
|
int के sequence;
डिफ़ॉल्ट [] है एट्रिब्यूट के लिए इस्तेमाल की जा सकने वाली वैल्यू की सूची. अगर कोई दूसरी वैल्यू दी जाती है, तो गड़बड़ी दर्ज की जाती है. |
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
mandatory
|
bool;
डिफ़ॉल्ट वैल्यू False है अगर यह 'सही है' है, तो वैल्यू साफ़ तौर पर बताई जानी चाहिए. भले ही, उसमें default हो.
|
allow_empty
|
bool;
डिफ़ॉल्ट रूप से True पर सेट होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो इसकी वैल्यू 'सही' पर सेट करें. |
configurable
|
bool या अनबाउंड;
डिफ़ॉल्ट तौर पर unbound होता है इस आर्ग्युमेंट को सिर्फ़ सिंबल मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है. अगर किसी नियम या पहलू के एट्रिब्यूट के लिए, |
default
|
ints का सीक्वेंस;
डिफ़ॉल्ट रूप से [] यह एक डिफ़ॉल्ट वैल्यू होती है. अगर नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो यह डिफ़ॉल्ट वैल्यू होती है. |
doc
|
स्ट्रिंग या None ;
डिफ़ॉल्ट तौर पर None एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
लेबल
Attribute attr.label(configurable=unbound, default=None, materializer=None, doc=None, executable=False, allow_files=None, allow_single_file=None, mandatory=False, skip_validations=False, providers=[], for_dependency_resolution=unbound, allow_rules=None, cfg=None, aspects=[], flags=[])
लेबल एट्रिब्यूट के लिए स्कीमा बनाता है. यह डिपेंडेंसी एट्रिब्यूट है.
इस एट्रिब्यूट में यूनीक Label
वैल्यू शामिल होती हैं. अगर Label
के बजाय कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदल दिया जाएगा. लेबल पाथ के मिलते-जुलते हिस्सों का समाधान, इंस्टैंशिएट किए गए टारगेट के पैकेज के हिसाब से किया जाता है. इसमें डेटा स्टोर करने की जगह (संभावित रूप से उसका नाम बदला जा सकता है) भी शामिल होता है.
विश्लेषण के समय (नियम के लागू होने के फ़ंक्शन में), ctx.attr
से एट्रिब्यूट की वैल्यू हासिल करने पर, लेबल को उनसे जुड़े Target
से बदल दिया जाता है. इसकी मदद से, मौजूदा टारगेट की डिपेंडेंसी के लिए, सेवा देने वाली कंपनियों को ऐक्सेस किया जा सकता है.
सामान्य सोर्स फ़ाइलों के अलावा, इस तरह के एट्रिब्यूट का इस्तेमाल अक्सर किसी टूल के बारे में बताने के लिए किया जाता है. उदाहरण के लिए, कंपाइलर. ऐसे टूल को सोर्स फ़ाइलों की तरह ही डिपेंडेंसी माना जाता है. जब भी उपयोगकर्ता अपनी बिल्ड फ़ाइलों में नियम का इस्तेमाल करें, तब उन्हें टूल का लेबल बताने की ज़रूरत न पड़े, इसके लिए इस एट्रिब्यूट की default
वैल्यू के तौर पर किसी कैननिकल टूल के लेबल को हार्ड कोड किया जा सकता है. अगर आपको उपयोगकर्ताओं को इस डिफ़ॉल्ट वैल्यू को बदलने से भी रोकना है, तो एट्रिब्यूट को निजी बनाया जा सकता है. इसके लिए, एट्रिब्यूट को अंडरस्कोर से शुरू होने वाला नाम दें. ज़्यादा जानकारी के लिए, नियम पेज देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
configurable
|
bool या अनबाउंड;
डिफ़ॉल्ट तौर पर unbound होता है इस आर्ग्युमेंट को सिर्फ़ सिंबल मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है. अगर किसी नियम या पहलू के एट्रिब्यूट के लिए, |
default
|
Label; या string; या LateBoundDefault; या NativeComputedDefault; या function; या None ;
डिफ़ॉल्ट None नियम को लागू करते समय, अगर इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Label फ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए, attr.label(default = "//a:b") .
|
materializer
|
Function है;
डिफ़ॉल्ट रूप से None प्रयोग के तौर पर है. यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है. इसमें कभी भी बदलाव किया जा सकता है. कृपया इस पर निर्भर न रहें. इसे एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. इसके लिए, --experimental_dormant_deps को सेट करें. अगर यह सेट किया जाता है, तो एट्रिब्यूट, ट्रांसीटिव क्लोज़र से निष्क्रिय डिपेंडेंसी को लागू करता है. इस पैरामीटर की वैल्यू, ऐसा फ़ंक्शन होना चाहिए जो नियम के उन एट्रिब्यूट की वैल्यू का ऐक्सेस पाता हो जो डिपेंडेंसी नहीं हैं या जिन्हें डिपेंडेंसी रिज़ॉल्यूशन के लिए उपलब्ध के तौर पर मार्क किया गया है. यह एट्रिब्यूट के टाइप के आधार पर, एक निष्क्रिय डिपेंडेंसी या उनकी सूची दिखानी चाहिए |
doc
|
string या None ; डिफ़ॉल्ट तौर पर None एट्रिब्यूट की जानकारी होती है. इसे दस्तावेज़ जनरेट करने वाले टूल की मदद से निकाला जा सकता है. |
executable
|
bool;
डिफ़ॉल्ट रूप से False पर सेट होती है अगर डिपेंडेंसी को चलाया जा सकता है, तो 'सही' पर सेट करें. इसका मतलब है कि लेबल को एक्ज़ीक्यूटेबल फ़ाइल या किसी ऐसे नियम के बारे में बताया जाना चाहिए जो एक्ज़ीक्यूटेबल फ़ाइल हो. ctx.executable.<attribute_name> का इस्तेमाल करके लेबल को ऐक्सेस करें.
|
allow_files
|
bool; या स्ट्रिंग का क्रम; या 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
|
sequence;
डिफ़ॉल्ट तौर पर, इसकी वैल्यू [] होती है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के लिए, ये वे कंपनियां होती हैं जिन्हें दिया जाना चाहिए. इस आर्ग्युमेंट का फ़ॉर्मैट, सेवा देने वाली कंपनियों की सूचियों की सूची है -- |
for_dependency_resolution
|
डिफ़ॉल्ट रूप से unbound पर सेट होता है अगर यह सेट है, तो एट्रिब्यूट, मटीरियलाइज़र के लिए उपलब्ध होता है. इस तरह के एट्रिब्यूट में, सिर्फ़ उन नियमों का रेफ़रंस दिया जा सकता है जिन पर एक जैसे नाम वाले झंडे का निशान लगा हो. |
allow_rules
|
स्ट्रिंग का क्रम या None ;
डिफ़ॉल्ट रूप से None किन नियम टारगेट (क्लास का नाम) की अनुमति है. इस सुविधा के इस्तेमाल पर रोक लगा दी गई है. इसे सिर्फ़ साथ काम करने के लिए रखा जाता है. इसके बजाय, सेवा देने वाली कंपनियों का इस्तेमाल करें. |
cfg
|
डिफ़ॉल्ट रूप से, एट्रिब्यूट का कॉन्फ़िगरेशन None होता है. यह "exec" या "target" हो सकता है. "exec" से पता चलता है कि डिपेंडेंसी, execution platform के लिए बनाई गई है. वहीं, "target" से पता चलता है कि डिपेंडेंसी, target platform के लिए बनाई गई है. मोबाइल ऐप्लिकेशन बनाते समय, इस अंतर का एक अच्छा उदाहरण है. यहां target platform , Android या iOS होता है, जबकि execution platform , Linux , macOS या Windows होता है. अगर executable की वैल्यू 'सही' है, तो यह पैरामीटर ज़रूरी है. इससे, टारगेट कॉन्फ़िगरेशन में गलती से होस्ट टूल बनाने से बचा जा सकता है. "target" का कोई सेमेटिक असर नहीं होता. इसलिए, जब executable 'गलत है' पर सेट हो, तब इसे तब तक सेट न करें, जब तक कि यह आपके इंटेंट को साफ़ तौर पर बताने में मदद न करे.
|
aspects
|
Aspect का क्रम;
[] ऐसे आसपेक्ट हैं जिन्हें इस एट्रिब्यूट की तय की गई डिपेंडेंसी या डिपेंडेंसी पर लागू किया जाना चाहिए. |
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=[], for_dependency_resolution=unbound, flags=[], mandatory=False, cfg=None, aspects=[])
किसी विशेषता के लिए स्कीमा बनाता है, जिसमें एक डिक्शनरी होती है. इसमें कुंजियां लेबल होती हैं और वैल्यू स्ट्रिंग होती हैं. यह डिपेंडेंसी एट्रिब्यूट है.
इस एट्रिब्यूट में यूनीक Label
वैल्यू शामिल हैं. अगर Label
के बजाय कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदल दिया जाएगा. लेबल पाथ के रिलेटिव हिस्सों को, इंस्टैंशिएट किए गए टारगेट के पैकेज के हिसाब से हल किया जाता है. इन हिस्सों में, संभवतः नाम बदला गया रिपॉज़िटरी भी शामिल है.
विश्लेषण के समय (नियम के लागू होने के फ़ंक्शन में), ctx.attr
से एट्रिब्यूट की वैल्यू हासिल करने पर, लेबल को उनसे जुड़े Target
से बदल दिया जाता है. इससे आपको मौजूदा टारगेट की डिपेंडेंसी देने वाली कंपनियों को ऐक्सेस करने में मदद मिलती है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
allow_empty
|
bool;
डिफ़ॉल्ट रूप से True पर सेट होता है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो इसकी वैल्यू 'सही' पर सेट करें. |
configurable
|
bool या अनबाउंड;
डिफ़ॉल्ट तौर पर unbound होता है इस आर्ग्युमेंट को सिर्फ़ सिंबल मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है. अगर किसी नियम या पहलू के एट्रिब्यूट के लिए, |
default
|
dict; या Function;
डिफ़ॉल्ट रूप से {} अगर नियम को इंस्टैंशिएट करते समय इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो यह डिफ़ॉल्ट वैल्यू होती है.डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Label फ़ंक्शन का इस्तेमाल करें, जैसे कि attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}) .
|
doc
|
स्ट्रिंग या None ;
डिफ़ॉल्ट तौर पर None एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
allow_files
|
bool; या स्ट्रिंग या None का सीक्वेंस;
डिफ़ॉल्ट None है क्या File टारगेट की अनुमति है. यह True , False (डिफ़ॉल्ट) या अनुमति वाले फ़ाइल एक्सटेंशन की सूची हो सकती है. उदाहरण के लिए, [".cc", ".cpp"] .
|
allow_rules
|
स्ट्रिंग का क्रम या None ;
डिफ़ॉल्ट रूप से None किन नियम टारगेट (क्लास का नाम) की अनुमति है. इसे बंद कर दिया गया है (सिर्फ़ काम करने के लिए रखा गया है). इसके बजाय, प्रोवाइडर का इस्तेमाल करें. |
providers
|
क्रम;
डिफ़ॉल्ट रूप से [] सेवा देने वाली कंपनियों को इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी के हिसाब से तय करना ज़रूरी है. इस आर्ग्युमेंट का फ़ॉर्मैट, सेवा देने वाली कंपनियों की सूचियों की सूची है -- |
for_dependency_resolution
|
डिफ़ॉल्ट रूप से unbound पर सेट होता है अगर यह सेट है, तो एट्रिब्यूट, मटीरियलाइज़र के लिए उपलब्ध होता है. ऐसे एट्रिब्यूट की मदद से, सिर्फ़ एक ही नाम के फ़्लैग वाले नियमों का रेफ़रंस दिया जा सकता है. |
flags
|
string का सीक्वेंस;
डिफ़ॉल्ट रूप से [] यह काम नहीं करता है, इसे हटा दिया जाएगा. |
mandatory
|
bool;
डिफ़ॉल्ट False हैअगर सही है, तो वैल्यू साफ़ तौर पर बताई जानी चाहिए (भले ही उसमें default हो).
|
cfg
|
एट्रिब्यूट का None कॉन्फ़िगरेशन डिफ़ॉल्ट है. यह "exec" या "target" हो सकता है. "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=[], materializer=None, doc=None, allow_files=None, allow_rules=None, providers=[], for_dependency_resolution=unbound, flags=[], mandatory=False, skip_validations=False, cfg=None, aspects=[])
'लेबल की सूची' एट्रिब्यूट के लिए स्कीमा बनाता है. यह डिपेंडेंसी एट्रिब्यूट है. इससे जुड़ा ctx.attr
एट्रिब्यूट, Target
की सूची टाइप का होगा.
इस एट्रिब्यूट में यूनीक Label
वैल्यू शामिल होती हैं. अगर Label
की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदल दिया जाएगा. लेबल पाथ के रिलेटिव हिस्सों को, इंस्टैंशिएट किए गए टारगेट के पैकेज के हिसाब से हल किया जाता है. इन हिस्सों में, संभवतः नाम बदला गया रिपॉज़िटरी भी शामिल है.
विश्लेषण के समय (नियम लागू करने वाले फ़ंक्शन में), ctx.attr
से एट्रिब्यूट वैल्यू को वापस लाने पर, लेबल को उससे जुड़े Target
से बदल दिया जाता है. इससे आपको मौजूदा टारगेट की डिपेंडेंसी देने वाली कंपनियों को ऐक्सेस करने में मदद मिलती है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
allow_empty
|
bool;
डिफ़ॉल्ट तौर पर, इसकी वैल्यू True होती है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो इसकी वैल्यू 'सही' होनी चाहिए. |
configurable
|
bool या अनबाउंड;
डिफ़ॉल्ट तौर पर unbound होता है इस आर्ग्युमेंट को सिर्फ़ सिंबल मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है. अगर किसी नियम या पहलू के एट्रिब्यूट के लिए, |
default
|
लेबल या फ़ंक्शन का क्रम;
डिफ़ॉल्ट [] नियम लागू करते समय, अगर इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Label फ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए, attr.label_list(default = ["//a:b", "//a:c"]) .
|
materializer
|
function;
डिफ़ॉल्ट तौर पर None है एक्सपेरिमेंटल. यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है. इसमें कभी भी बदलाव किया जा सकता है. कृपया इस पर भरोसा न करें. इसे एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. इसके लिए, --experimental_dormant_deps को सेट करें. अगर यह सेट किया जाता है, तो एट्रिब्यूट, ट्रांज़िशन क्लोज़र से निष्क्रिय डिपेंडेंसी को लागू करता है. इस पैरामीटर की वैल्यू एक फ़ंकटन होनी चाहिए, जिसे नियम के एट्रिब्यूट की उन वैल्यू का ऐक्सेस मिले जो या तो डिपेंडेंसी नहीं हैं या जिन्हें डिपेंडेंसी रिज़ॉल्यूशन के लिए उपलब्ध के तौर पर मार्क किया गया है. एट्रिब्यूट के टाइप के हिसाब से, इसमें डॉरमेंट डिपेंडेंसी या उनकी सूची होनी चाहिए |
doc
|
स्ट्रिंग या None ;
डिफ़ॉल्ट तौर पर None एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
allow_files
|
bool; या स्ट्रिंग का क्रम; या None ;
डिफ़ॉल्ट रूप से None क्या File टारगेट की अनुमति है. यह True , False (डिफ़ॉल्ट) या अनुमति वाले फ़ाइल एक्सटेंशन की सूची हो सकती है. उदाहरण के लिए, [".cc", ".cpp"] .
|
allow_rules
|
स्ट्रिंग का क्रम या None ;
डिफ़ॉल्ट रूप से None किन नियम टारगेट (क्लास का नाम) की अनुमति है. इसे बंद कर दिया गया है (सिर्फ़ काम करने के लिए रखा गया है). इसके बजाय, प्रोवाइडर का इस्तेमाल करें. |
providers
|
sequence;
डिफ़ॉल्ट [] है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी से, ये प्रोवाइडर दिए जाने चाहिए. इस आर्ग्युमेंट का फ़ॉर्मैट, सेवा देने वाली कंपनियों की सूचियों की सूची है -- |
for_dependency_resolution
|
डिफ़ॉल्ट रूप से unbound पर सेट होता है अगर यह सेट है, तो एट्रिब्यूट, मटीरियलाइज़र के लिए उपलब्ध होता है. इस तरह के एट्रिब्यूट में, सिर्फ़ उन नियमों का रेफ़रंस दिया जा सकता है जिन पर एक जैसे नाम वाले झंडे का निशान लगा हो. |
flags
|
स्ट्रिंग का क्रम;
डिफ़ॉल्ट रूप से [] होता है इस्तेमाल नहीं किया जा सकता. इसे हटा दिया जाएगा. |
mandatory
|
bool;
डिफ़ॉल्ट वैल्यू False है अगर यह 'सही है' है, तो वैल्यू साफ़ तौर पर बताई जानी चाहिए. भले ही, उसमें default हो.
|
skip_validations
|
bool;
डिफ़ॉल्ट तौर पर, इसकी वैल्यू False होती है अगर इसकी वैल्यू 'सही' है, तो इस एट्रिब्यूट से ट्रांज़िशन की डिपेंडेंसी की पुष्टि करने वाली कार्रवाइयां नहीं चलेंगी. यह कुछ समय के लिए है और आने वाले समय में इसे हटा दिया जाएगा. |
cfg
|
डिफ़ॉल्ट रूप से, एट्रिब्यूट का कॉन्फ़िगरेशन None होता है. यह "exec" या "target" हो सकता है. "exec" से पता चलता है कि डिपेंडेंसी, execution platform के लिए बनाई गई है. वहीं, "target" से पता चलता है कि डिपेंडेंसी, target platform के लिए बनाई गई है. मोबाइल ऐप्लिकेशन बनाते समय, इस अंतर का एक अच्छा उदाहरण है. यहां target platform , Android या iOS होता है, जबकि execution platform , Linux , macOS या Windows होता है.
|
aspects
|
Aspect का क्रम;
[] ऐसे आसपेक्ट हैं जिन्हें इस एट्रिब्यूट की तय की गई डिपेंडेंसी या डिपेंडेंसी पर लागू किया जाना चाहिए. |
आउटपुट
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
के बजाय कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदल दिया जाएगा. लेबल पाथ के रिलेटिव हिस्सों को, इंस्टैंशिएट किए गए टारगेट के पैकेज के हिसाब से हल किया जाता है. इन हिस्सों में, संभवतः नाम बदला गया रिपॉज़िटरी भी शामिल है.
विश्लेषण के समय, ctx.outputs
का इस्तेमाल करके, उससे जुड़ा File
वापस पाया जा सकता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
allow_empty
|
bool;
डिफ़ॉल्ट तौर पर, इसकी वैल्यू True होती है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो इसकी वैल्यू 'सही' होनी चाहिए. |
doc
|
स्ट्रिंग या None ;
डिफ़ॉल्ट तौर पर None एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
mandatory
|
bool;
डिफ़ॉल्ट वैल्यू False है अगर यह 'सही है' है, तो वैल्यू साफ़ तौर पर बताई जानी चाहिए. भले ही, उसमें default हो.
|
स्ट्रिंग
Attribute attr.string(configurable=unbound, default='', doc=None, mandatory=False, values=[])
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
configurable
|
bool या अनबाउंड;
डिफ़ॉल्ट तौर पर unbound होता है इस आर्ग्युमेंट को सिर्फ़ सिंबल मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है. अगर किसी नियम या पहलू के एट्रिब्यूट के लिए, |
default
|
string या NativeComputedDefault;
डिफ़ॉल्ट '' है नियम को लागू करते समय, अगर इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. |
doc
|
स्ट्रिंग या 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 होता है इस आर्ग्युमेंट को सिर्फ़ सिंबल मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है. अगर किसी नियम या पहलू के एट्रिब्यूट के लिए, |
default
|
dict;
डिफ़ॉल्ट {} नियम को लागू करते समय, अगर इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. |
doc
|
स्ट्रिंग या None ;
डिफ़ॉल्ट तौर पर None एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
mandatory
|
bool;
डिफ़ॉल्ट वैल्यू False है अगर यह 'सही है' है, तो वैल्यू साफ़ तौर पर बताई जानी चाहिए. भले ही, उसमें default हो.
|
string_keyed_label_dict
Attribute attr.string_keyed_label_dict(allow_empty=True, *, configurable=unbound, default={}, doc=None, allow_files=None, allow_rules=None, providers=[], for_dependency_resolution=unbound, flags=[], mandatory=False, cfg=None, aspects=[])
ऐसी एट्रिब्यूट के लिए स्कीमा बनाता है जिसकी वैल्यू एक डिक्शनरी होती है, जिसमें कुंजियों को स्ट्रिंग और वैल्यू, लेबल होती हैं. यह एक डिपेंडेंसी एट्रिब्यूट है.
इस एट्रिब्यूट में यूनीक Label
वैल्यू शामिल होती हैं. अगर Label
की जगह कोई स्ट्रिंग दी जाती है, तो उसे लेबल कंस्ट्रक्टर का इस्तेमाल करके बदल दिया जाएगा. लेबल पाथ के रिलेटिव हिस्सों को, इंस्टैंशिएट किए गए टारगेट के पैकेज के हिसाब से हल किया जाता है. इन हिस्सों में, संभवतः नाम बदला गया रिपॉज़िटरी भी शामिल है.
विश्लेषण के समय (नियम के लागू होने के फ़ंक्शन में), ctx.attr
से एट्रिब्यूट की वैल्यू हासिल करने पर, लेबल को उनसे जुड़े Target
से बदल दिया जाता है. इससे आपको मौजूदा टारगेट की डिपेंडेंसी देने वाली कंपनियों को ऐक्सेस करने में मदद मिलती है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
allow_empty
|
bool;
डिफ़ॉल्ट तौर पर, इसकी वैल्यू True होती है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो इसकी वैल्यू 'सही' होनी चाहिए. |
configurable
|
bool; या अनबाउंड;
डिफ़ॉल्ट unbound हैयह आर्ग्युमेंट सिर्फ़ किसी सिंबल वाले मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है. अगर किसी नियम या पहलू के एट्रिब्यूट के लिए, |
default
|
dict या function;
डिफ़ॉल्ट {} नियम को लागू करते समय, अगर इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. डिफ़ॉल्ट वैल्यू तय करने के लिए, स्ट्रिंग या Label फ़ंक्शन का इस्तेमाल करें. उदाहरण के लिए, attr.string_keyed_label_dict(default = {"foo": "//a:b", "bar": "//a:c"}) .
|
doc
|
string या None ; डिफ़ॉल्ट तौर पर None एट्रिब्यूट की जानकारी होती है. इसे दस्तावेज़ जनरेट करने वाले टूल की मदद से निकाला जा सकता है. |
allow_files
|
bool; या स्ट्रिंग का क्रम; या None ;
डिफ़ॉल्ट रूप से None क्या File टारगेट की अनुमति है. यह True , False (डिफ़ॉल्ट) या अनुमति वाले फ़ाइल एक्सटेंशन की सूची हो सकती है (उदाहरण के लिए, [".cc", ".cpp"] ).
|
allow_rules
|
स्ट्रिंग का क्रम या None ;
डिफ़ॉल्ट रूप से None किन नियम टारगेट (क्लास का नाम) की अनुमति है. इस सुविधा के इस्तेमाल पर रोक लगा दी गई है. इसे सिर्फ़ साथ काम करने के लिए रखा जाता है. इसके बजाय, सेवा देने वाली कंपनियों का इस्तेमाल करें. |
providers
|
sequence;
डिफ़ॉल्ट [] है इस एट्रिब्यूट में दिखने वाली किसी भी डिपेंडेंसी से, ये प्रोवाइडर दिए जाने चाहिए. इस आर्ग्युमेंट का फ़ॉर्मैट, सेवा देने वाली कंपनियों की सूचियों की सूची है -- |
for_dependency_resolution
|
unbound डिफ़ॉल्ट हैअगर यह सेट है, तो यह एट्रिब्यूट मटेरियलाइज़र के लिए उपलब्ध होता है. ऐसे एट्रिब्यूट की मदद से, सिर्फ़ एक ही नाम के फ़्लैग वाले नियमों का रेफ़रंस दिया जा सकता है. |
flags
|
स्ट्रिंग का क्रम;
डिफ़ॉल्ट रूप से [] होता है इस्तेमाल नहीं किया जा सकता. इसे हटा दिया जाएगा. |
mandatory
|
bool;
डिफ़ॉल्ट वैल्यू False है अगर यह 'सही है' है, तो वैल्यू साफ़ तौर पर बताई जानी चाहिए. भले ही, उसमें default हो.
|
cfg
|
डिफ़ॉल्ट रूप से, एट्रिब्यूट का कॉन्फ़िगरेशन None होता है. यह "exec" या "target" हो सकता है. "exec" से पता चलता है कि डिपेंडेंसी, execution platform के लिए बनाई गई है. वहीं, "target" से पता चलता है कि डिपेंडेंसी, target platform के लिए बनाई गई है. मोबाइल ऐप्लिकेशन बनाते समय, इस अंतर का एक अच्छा उदाहरण है. यहां target platform , Android या iOS होता है, जबकि execution platform , Linux , macOS या Windows होता है.
|
aspects
|
ऐस्पेक्ट का क्रम;
डिफ़ॉल्ट तौर पर, [] होता है ऐसे ऐस्पेक्ट जिन्हें इस एट्रिब्यूट से तय की गई डिपेंडेंसी या डिपेंडेंसी पर लागू किया जाना चाहिए. |
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, configurable=unbound, default=[], doc=None)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
mandatory
|
bool;
डिफ़ॉल्ट वैल्यू False है अगर यह 'सही है' है, तो वैल्यू साफ़ तौर पर बताई जानी चाहिए. भले ही, उसमें default हो.
|
allow_empty
|
bool;
डिफ़ॉल्ट तौर पर, इसकी वैल्यू True होती है अगर एट्रिब्यूट की वैल्यू खाली हो सकती है, तो इसकी वैल्यू 'सही' होनी चाहिए. |
configurable
|
bool या अनबाउंड;
डिफ़ॉल्ट तौर पर unbound होता है इस आर्ग्युमेंट को सिर्फ़ सिंबल मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है. अगर किसी नियम या पहलू के एट्रिब्यूट के लिए, |
default
|
स्ट्रिंग का क्रम या नेटिव कंप्यूटेड डिफ़ॉल्ट;
डिफ़ॉल्ट [] नियम को इंस्टैंशिएट करते समय, अगर इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. |
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 होता है इस आर्ग्युमेंट को सिर्फ़ सिंबल मैक्रो के एट्रिब्यूट के लिए तय किया जा सकता है. अगर किसी नियम या पहलू के एट्रिब्यूट के लिए, |
default
|
dict;
डिफ़ॉल्ट {} नियम को लागू करते समय, अगर इस एट्रिब्यूट के लिए कोई वैल्यू नहीं दी जाती है, तो इस्तेमाल करने के लिए डिफ़ॉल्ट वैल्यू. |
doc
|
स्ट्रिंग या None ;
डिफ़ॉल्ट तौर पर None एट्रिब्यूट की जानकारी, जिसे दस्तावेज़ जनरेट करने वाले टूल से निकाला जा सकता है. |
mandatory
|
bool;
डिफ़ॉल्ट वैल्यू False है अगर यह 'सही है' है, तो वैल्यू साफ़ तौर पर बताई जानी चाहिए. भले ही, उसमें default हो.
|