अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है बिल्ड टारगेट आइडेंटिफ़ायर.
हर Label
इंस्टेंस l
के लिए, स्ट्रिंग प्रज़ेंटेशन str(l)
में Label(str(l)) == l
प्रॉपर्टी होती है, चाहे Label()
कॉल कहीं भी हो.
सदस्य
लेबल
Label Label(input)
Label
ऑब्जेक्ट में बदलता है. ऐसा उस पैकेज के हिसाब से होता है जहां .bzl
सोर्स फ़ाइल को कॉल किया जा रहा है. अगर दिया गया मान पहले से ही Label
है, तो इसमें कोई बदलाव नहीं किया जाता.मैक्रो के लिए, मिलता-जुलता फ़ंक्शन native.package_relative_label()
, इनपुट को Label
में, फ़िलहाल बनाए जा रहे पैकेज के हिसाब से बदल देता है. उस फ़ंक्शन का इस्तेमाल करके स्ट्रिंग-टू-लेबल कन्वर्ज़न की नकल करें जो लेबल वैल्यू वाले नियम एट्रिब्यूट के ज़रिए अपने-आप होता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
input
|
string; या लेबल;
ज़रूरी है इनपुट लेबल स्ट्रिंग या लेबल ऑब्जेक्ट. अगर लेबल ऑब्जेक्ट को पास किया जाता है, तो उसे पहले जैसा किया जाता है. |
नाम
string Label.name
Label("@@foo//pkg/foo:abc").name == "abc"
पैकेज
string Label.package
Label("@@repo//pkg/foo:abc").package == "pkg/foo"
संबंधित
Label Label.relative(relName)
--+incompatible_enable_deprecated_label_apis
अब काम नहीं करता पर सेट करके, एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. जब इस तरीके का इस्तेमाल किसी ऐसे तर्क के साथ किया जाता है जिसमें साफ़ तौर पर रेपो नाम होता है, तो यह शानदार तरीके से काम करता है. इसके बजाय,
Label.same_package_label()
, native.package_relative_label()
या Label()
को प्राथमिकता दें.यह ऐसे लेबल को हल करता है जो या तो पूरी तरह से (//
से शुरू होता है) है या मौजूदा पैकेज से मिलता-जुलता है. अगर यह लेबल किसी रिमोट रिपॉज़िटरी (डेटा स्टोर करने की जगह) में है, तो तर्क को उस डेटा स्टोर करने की जगह के हिसाब से हल किया जाएगा. अगर आर्ग्युमेंट में किसी रिपॉज़िटरी का नाम शामिल है, तो मौजूदा लेबल को अनदेखा कर दिया जाता है और तर्क को पहले जैसा कर दिया जाता है. हालांकि, अगर रिपॉज़िटरी की मौजूदा मैपिंग में रिपॉज़िटरी का नाम मौजूद है, तो उसे फिर से लिखा जाता है. रिज़र्व किए गए लेबल को पहले की तरह दिखाया जाएगा.
उदाहरण के लिए:
Label("//foo/bar:baz").relative(":quux") == Label("//foo/bar:quux") Label("//foo/bar:baz").relative("//wiz:quux") == Label("//wiz:quux") Label("@repo//foo/bar:baz").relative("//wiz:quux") == Label("@repo//wiz:quux") Label("@repo//foo/bar:baz").relative("//visibility:public") == Label("//visibility:public") Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@other//wiz:quux")
अगर डेटा स्टोर करने की जगह की मैपिंग {'@other' : '@remapped'}
है, तो डेटा को फिर से मैप किया जाएगा:
Label("@repo//foo/bar:baz").relative("@other//wiz:quux") == Label("@remapped//wiz:quux")
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
relName
|
ज़रूरी है इस लेबल के हिसाब से, इस लेबल का समाधान किया जाएगा. |
repo_name
string Label.repo_name
@
) नहीं है. उदाहरण के लिए, Label("@@foo//bar:baz").repo_name == "foo"
same_package_label
Label Label.same_package_label(target_name)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
target_name
|
ज़रूरी है नए लेबल का टारगेट नाम. |
workspace_name
string Label.workspace_name
--+incompatible_enable_deprecated_label_apis
अब काम नहीं करता पर सेट करके, एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. फ़ील्ड का नाम "फ़ाइल फ़ोल्डर का नाम" कोई गलत नाम है; इसके बजाय, एक जैसा व्यवहार करने वाले
Label.repo_name
का इस्तेमाल करें.डेटा स्टोर करने की उस जगह का कैननिकल नाम जिसमें इस लेबल से रेफ़र किया गया टारगेट मौजूद है. इसमें पहले से कोई चिह्न (@
) नहीं है. उदाहरण के लिए,
Label("@@foo//bar:baz").workspace_name == "foo"
workspace_root
string Label.workspace_root
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"