हर Label इंस्टेंस l के लिए, स्ट्रिंग के तौर पर दिखाए गए str(l) में यह प्रॉपर्टी Label(str(l)) == l होती है. इससे कोई फ़र्क़ नहीं पड़ता कि Label() कॉल कहां होता है.
सदस्य
लेबल
Label Label(input)
Label ऑब्जेक्ट में बदलता है. यह उस पैकेज के हिसाब से काम करता है जिसमें कॉलिंग .bzl सोर्स फ़ाइल मौजूद है. अगर दी गई वैल्यू पहले से ही Label है, तो उसे बिना किसी बदलाव के दिखाया जाता है.मैक्रो के लिए, इससे जुड़ा फ़ंक्शन native.package_relative_label(), इनपुट को Label में बदलता है. यह बदलाव, मौजूदा समय में बनाए जा रहे पैकेज के हिसाब से होता है. इस फ़ंक्शन का इस्तेमाल करके, स्ट्रिंग को लेबल में बदलने की प्रोसेस को दोहराया जा सकता है. यह प्रोसेस, लेबल की वैल्यू वाले नियम एट्रिब्यूट अपने-आप करते हैं.
पैरामीटर
| पैरामीटर | ब्यौरा |
|---|---|
input
|
स्ट्रिंग; या लेबल;
ज़रूरी है इनपुट लेबल स्ट्रिंग या लेबल ऑब्जेक्ट. अगर कोई Label ऑब्जेक्ट पास किया जाता है, तो उसे वैसे ही लौटा दिया जाता है. |
नाम
string Label.name
Label("//pkg/foo:abc").name == "abc"पैकेज
string Label.package
Label("//pkg/foo:abc").package == "pkg/foo"संबंधित
Label Label.relative(relName)
// से शुरू होता है) या मौजूदा पैकेज के हिसाब से होता है. अगर यह लेबल किसी रिमोट डेटाबेस में है, तो आर्ग्युमेंट को उस डेटाबेस के हिसाब से हल किया जाएगा. अगर आर्ग्युमेंट में किसी रिपॉज़िटरी का नाम शामिल है, तो मौजूदा लेबल को अनदेखा कर दिया जाता है. साथ ही, आर्ग्युमेंट को उसी तरह से दिखाया जाता है. हालांकि, अगर रिपॉज़िटरी का नाम मौजूदा रिपॉज़िटरी मैपिंग में है, तो उसे फिर से लिखा जाता है. रिज़र्व किए गए लेबल भी उसी तरह दिखाए जाएंगे.उदाहरण के लिए:
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
|
ज़रूरी है यह वह लेबल है जिसे इस लेबल के हिसाब से तय किया जाएगा. |
workspace_name
string Label.workspace_name
Label("@foo//bar:baz").workspace_name == "foo"workspace_root
string Label.workspace_root
Label("@repo//pkg/foo:abc").workspace_root == "external/repo"