แอตทริบิวต์

รายงานปัญหา ดูแหล่งที่มา รุ่น Nightly · 7.4 7.3 · 7.2 · 7.1 · 7.0 · 6.5

นี่คือโมดูลระดับบนสุดสำหรับการกำหนดสคีมาแอตทริบิวต์ของกฎหรือแง่มุม แต่ละฟังก์ชันจะแสดงผลออบเจ็กต์ที่แสดงสคีมาของแอตทริบิวต์เดียว ออบเจ็กต์เหล่านี้ใช้เป็นค่าของอาร์กิวเมนต์พจนานุกรม attrs ของ rule() และ aspect()

ดูข้อมูลเพิ่มเติมเกี่ยวกับการกําหนดและการใช้แอตทริบิวต์ได้ในหน้ากฎ

สมาชิก

บูลีน

Attribute attr.bool(default=False, doc=None, mandatory=False)

สร้างสคีมาสําหรับแอตทริบิวต์บูลีน แอตทริบิวต์ ctx.attr ที่เกี่ยวข้องจะเป็นประเภท bool

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
default default is False
ค่าเริ่มต้นที่จะใช้หากไม่ได้ระบุค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ
doc สตริง หรือ 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 ค่าเริ่มต้นคือ []
นี่คือรายการค่าที่อนุญาตสำหรับแอตทริบิวต์ ระบบจะแสดงข้อผิดพลาดหากระบุค่าอื่น

int_list

Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc=None)

สร้างสคีมาสําหรับแอตทริบิวต์รายการจำนวนเต็ม องค์ประกอบแต่ละรายการต้องอยู่ในช่วง 32 บิตที่มีค่าบวก

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
mandatory ค่าเริ่มต้นคือ False
หากเป็น "จริง" ต้องระบุค่าอย่างชัดแจ้ง (แม้ว่าจะมี default ก็ตาม)
allow_empty default is True
True if the attribute can be empty.
default ลําดับของ int ค่าเริ่มต้นคือ []
ค่าเริ่มต้นที่จะใช้หากไม่ได้ระบุค่าสําหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ
doc สตริง หรือ 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=[])

สร้างสคีมาสําหรับแอตทริบิวต์ป้ายกํากับ นี่คือแอตทริบิวต์ของทรัพยากร Dependency

แอตทริบิวต์นี้มีค่า 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
หากทรัพยากร Dependency ต้องเรียกใช้ได้ ซึ่งหมายความว่าป้ายกำกับต้องอ้างอิงถึงไฟล์ที่ปฏิบัติการได้ หรือกฎที่แสดงผลไฟล์ที่ปฏิบัติการได้ เข้าถึงป้ายกำกับด้วย 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 ค่าเริ่มต้นคือ False
หากเป็น "จริง" จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
providers ค่าเริ่มต้นคือ []
ผู้ให้บริการที่จะต้องมาจากทรัพยากร Dependency ที่ปรากฏในแอตทริบิวต์นี้

รูปแบบของอาร์กิวเมนต์นี้คือลิสต์ของลิสต์ผู้ให้บริการ ซึ่งเป็นออบเจ็กต์ *Info ที่ provider() แสดงผล (หรือในกรณีของผู้ให้บริการเดิม ให้ใช้ชื่อสตริงของผู้ให้บริการ) ทรัพยากร Dependency ต้องแสดงผลผู้ให้บริการทั้งหมดที่กล่าวถึงในรายการภายในอย่างน้อย 1 รายการ อาร์กิวเมนต์นี้อาจเป็นรายการผู้ให้บริการระดับเดียวเพื่อความสะดวกด้วย ซึ่งในกรณีนี้ ระบบจะรวมไว้ในรายการภายนอกที่มีองค์ประกอบเดียว กฎของ Dependency ไม่จำเป็นต้องโฆษณาผู้ให้บริการเหล่านั้นในพารามิเตอร์ provides แต่ถือเป็นแนวทางปฏิบัติแนะนำ

allow_rules ลําดับของ สตริง หรือ None หรือ ค่าเริ่มต้นคือ None
ซึ่งกฎเป้าหมาย (ชื่อของคลาส) ได้รับอนุญาต การตั้งค่านี้เลิกใช้งานแล้ว (เก็บไว้เพื่อใช้งานร่วมกันได้เท่านั้น) ให้ใช้ผู้ให้บริการแทน
cfg default is None
Configuration of the attribute. ซึ่งอาจเป็น "exec" ซึ่งระบุว่ามีการบิลด์ข้อกำหนดสำหรับ execution platform หรือ "target" ซึ่งระบุว่ามีการบิลด์ข้อกำหนดสำหรับ target platform ตัวอย่างทั่วไปของความแตกต่างคือการสร้างแอปบนอุปกรณ์เคลื่อนที่ โดยที่ target platform คือ Android หรือ iOS ส่วน execution platform คือ Linux, macOS หรือ Windows ต้องใช้พารามิเตอร์นี้หาก executable เป็น "จริง" เพื่อป้องกันการสร้างเครื่องมือโฮสต์โดยไม่ตั้งใจในการกำหนดค่าเป้าหมาย "target" ไม่ส่งผลกระทบใดๆ ต่อความหมาย ดังนั้นอย่าตั้งค่าเมื่อ executable เป็น "เท็จ" นอกจากจะช่วยทำให้เข้าใจเจตนาของคุณได้จริง
aspects ลําดับของ Aspect ค่าเริ่มต้นคือ []
Aspect ที่ควรใช้กับ Dependency หรือ Dependencies ที่ระบุโดยแอตทริบิวต์นี้
flags ลําดับของ สตริง ค่าเริ่มต้นคือ []
เลิกใช้งานแล้วและจะถูกนําออก

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

สร้างสคีมาสําหรับแอตทริบิวต์ที่มีพจนานุกรม โดยที่คีย์คือป้ายกํากับและค่าคือสตริง นี่เป็นแอตทริบิวต์ของทรัพยากร Dependency

แอตทริบิวต์นี้มีค่า Label ที่ไม่ซ้ำกัน หากระบุสตริงแทน Label ระบบจะแปลงสตริงโดยใช้เครื่องมือสร้างป้ายกำกับ ระบบจะแก้ไขส่วนที่สัมพันธ์กันของเส้นทางป้ายกำกับ ซึ่งรวมถึงที่เก็บ (อาจเปลี่ยนชื่อ) โดยอิงตามแพ็กเกจของเป้าหมายที่สร้างขึ้น

ในเวลาวิเคราะห์ (ภายในฟังก์ชันการใช้งานของกฎ) เมื่อดึงค่าแอตทริบิวต์จาก ctx.attr ระบบจะแทนที่ป้ายกํากับด้วย Target ที่เกี่ยวข้อง ซึ่งจะช่วยให้คุณเข้าถึงผู้ให้บริการของข้อกําหนดของเป้าหมายปัจจุบันได้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
allow_empty default is True
True if the attribute can be empty.
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 ค่าเริ่มต้นคือ []
ผู้ให้บริการที่ต้องระบุโดยข้อกําหนดใดๆ ที่ปรากฏในแอตทริบิวต์นี้

รูปแบบของอาร์กิวเมนต์นี้คือรายการรายชื่อผู้ให้บริการ -- ออบเจ็กต์ *Info ที่แสดงผลโดย provider() (หรือในกรณีของผู้ให้บริการเดิม คือชื่อสตริง) รายการดังกล่าวต้องแสดงผู้ให้บริการทั้งหมดที่กล่าวถึงในรายการย่อยอย่างน้อย 1 รายการ อาร์กิวเมนต์นี้อาจเป็นรายการผู้ให้บริการระดับเดียวเพื่อความสะดวกด้วย ซึ่งในกรณีนี้ ระบบจะรวมไว้ในรายการภายนอกที่มีองค์ประกอบเดียว ไม่ได้กำหนดให้กฎของทรัพยากร Dependency ต้องโฆษณาผู้ให้บริการเหล่านั้นในพารามิเตอร์ provides แต่ก็ถือเป็นแนวทางปฏิบัติแนะนำ

flags ลำดับ ของสตริง ค่าเริ่มต้นคือ []
ที่เลิกใช้งานแล้ว และจะถูกนำออก
mandatory ค่าเริ่มต้นคือ False
หากเป็น "จริง" จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
cfg default is None
Configuration of the attribute. อาจเป็น "exec" ซึ่งบ่งบอกว่ามีการสร้างทรัพยากร Dependency สำหรับ execution platform หรือ "target" ซึ่งบ่งบอกว่าทรัพยากร Dependency สร้างขึ้นสำหรับ target platform ตัวอย่างทั่วไปของความแตกต่างคือเมื่อสร้างแอปบนอุปกรณ์เคลื่อนที่ โดยที่ target platform คือ Android หรือ iOS ในขณะที่ execution platform คือ Linux, macOS หรือ Windows
aspects ลําดับของ Aspect ค่าเริ่มต้นคือ []
Aspect ที่ควรใช้กับ Dependency หรือ Dependencies ที่ระบุโดยแอตทริบิวต์นี้

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

สร้างสคีมาสำหรับแอตทริบิวต์รายการป้ายกำกับ นี่เป็นแอตทริบิวต์ของทรัพยากร Dependency แอตทริบิวต์ ctx.attr ที่เกี่ยวข้องจะเป็นประเภทลิสต์ของ Target

แอตทริบิวต์นี้มีค่า Label ที่ไม่ซ้ำกัน หากระบุสตริงแทน Label ระบบจะแปลงสตริงโดยใช้เครื่องมือสร้างป้ายกำกับ ระบบจะแก้ไขส่วนที่สัมพันธ์กันของเส้นทางป้ายกำกับ ซึ่งรวมถึงที่เก็บ (อาจเปลี่ยนชื่อ) โดยอิงตามแพ็กเกจของเป้าหมายที่สร้างขึ้น

ในเวลาวิเคราะห์ (ภายในฟังก์ชันการใช้งานของกฎ) เมื่อดึงค่าแอตทริบิวต์จาก ctx.attr ระบบจะแทนที่ป้ายกํากับด้วย Target ที่เกี่ยวข้อง ซึ่งจะช่วยให้คุณเข้าถึงผู้ให้บริการทรัพยากร Dependency ของเป้าหมายปัจจุบันได้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
allow_empty ค่าเริ่มต้นคือ True
เป็นจริงหากแอตทริบิวต์ว่างเปล่าได้
default ลําดับป้ายกํากับหรือฟังก์ชัน ค่าเริ่มต้นคือ []
ค่าเริ่มต้นที่จะใช้หากไม่ได้ระบุค่าสําหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ ใช้สตริงหรือฟังก์ชัน Label เพื่อระบุค่าเริ่มต้น เช่น attr.label_list(default = ["//a:b", "//a:c"])
doc string หรือ None ค่าเริ่มต้นคือ None
คำอธิบายแอตทริบิวต์ที่ดึงข้อมูลได้ด้วยเครื่องมือสร้างเอกสาร
allow_files bool หรือลําดับสตริง หรือ None ค่าเริ่มต้นคือ None
อนุญาตให้ใช้เป้าหมาย File หรือไม่ อาจเป็น True, False (ค่าเริ่มต้น) หรือรายการนามสกุลไฟล์ที่อนุญาต (เช่น [".cc", ".cpp"])
allow_rules ลําดับของ สตริง หรือ None หรือ ค่าเริ่มต้นคือ None
ซึ่งกฎเป้าหมาย (ชื่อของคลาส) ได้รับอนุญาต การตั้งค่านี้เลิกใช้งานแล้ว (เก็บไว้เพื่อใช้งานร่วมกันได้เท่านั้น) ให้ใช้ผู้ให้บริการแทน
providers ค่าเริ่มต้นคือ []
ผู้ให้บริการที่ต้องระบุโดยข้อกําหนดใดๆ ที่ปรากฏในแอตทริบิวต์นี้

รูปแบบของอาร์กิวเมนต์นี้คือรายการรายชื่อผู้ให้บริการ -- ออบเจ็กต์ *Info ที่แสดงผลโดย provider() (หรือในกรณีของผู้ให้บริการเดิม คือชื่อสตริง) รายการดังกล่าวต้องแสดงผู้ให้บริการทั้งหมดที่กล่าวถึงในรายการย่อยอย่างน้อย 1 รายการ อาร์กิวเมนต์นี้อาจเป็นรายการผู้ให้บริการระดับเดียวเพื่อความสะดวกด้วย ซึ่งในกรณีนี้ ระบบจะรวมไว้ในรายการภายนอกที่มีองค์ประกอบเดียว ไม่ได้กำหนดให้กฎของทรัพยากร Dependency ต้องโฆษณาผู้ให้บริการเหล่านั้นในพารามิเตอร์ provides แต่ก็ถือเป็นแนวทางปฏิบัติแนะนำ

flags ลําดับสตริง ค่าเริ่มต้นคือ []
เลิกใช้งานแล้วและจะถูกนําออก
mandatory ค่าเริ่มต้นคือ False
หากเป็น "จริง" จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
cfg ค่าเริ่มต้นคือ None
การกําหนดค่าของแอตทริบิวต์ ซึ่งอาจเป็น "exec" ซึ่งระบุว่ามีการบิลด์ข้อกำหนดสำหรับ execution platform หรือ "target" ซึ่งระบุว่ามีการบิลด์ข้อกำหนดสำหรับ target platform ตัวอย่างทั่วไปของความแตกต่างคือการสร้างแอปบนอุปกรณ์เคลื่อนที่ โดยที่ target platform คือ Android หรือ iOS ส่วน execution platform คือ Linux, macOS หรือ Windows
aspects ลําดับของ Aspect ค่าเริ่มต้นคือ []
Aspect ที่ควรใช้กับ Dependency หรือ Dependencies ที่ระบุโดยแอตทริบิวต์นี้

เอาต์พุต

Attribute attr.output(doc=None, mandatory=False)

สร้างสคีมาสำหรับแอตทริบิวต์เอาต์พุต (ป้ายกำกับ)

แอตทริบิวต์นี้มีค่า Label ที่ไม่ซ้ำกัน หากระบุสตริงแทน Label ระบบจะแปลงสตริงโดยใช้เครื่องมือสร้างป้ายกำกับ ระบบจะแก้ไขส่วนที่สัมพันธ์กันของเส้นทางป้ายกำกับ ซึ่งรวมถึงที่เก็บ (อาจเปลี่ยนชื่อ) โดยอิงตามแพ็กเกจของเป้าหมายที่สร้างขึ้น

ในเวลาที่วิเคราะห์ คุณสามารถดึงข้อมูล File ที่เกี่ยวข้องได้โดยใช้ ctx.outputs

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
doc สตริง หรือ None ค่าเริ่มต้นคือ None
คำอธิบายแอตทริบิวต์ที่เครื่องมือสร้างเอกสารประกอบสามารถดึงข้อมูลได้
mandatory ค่าเริ่มต้นคือ False
หากเป็น "จริง" จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)

output_list

Attribute attr.output_list(allow_empty=True, *, doc=None, mandatory=False)

สร้างสคีมาสําหรับแอตทริบิวต์รายการเอาต์พุต

แอตทริบิวต์นี้มีค่า Label ที่ไม่ซ้ำกัน หากระบุสตริงแทน Label ระบบจะแปลงสตริงโดยใช้เครื่องมือสร้างป้ายกำกับ ระบบจะแก้ไขส่วนที่สัมพันธ์กันของเส้นทางป้ายกำกับ ซึ่งรวมถึงที่เก็บ (อาจเปลี่ยนชื่อ) โดยอิงตามแพ็กเกจของเป้าหมายที่สร้างขึ้น

ในเวลาที่วิเคราะห์ คุณสามารถดึงข้อมูล File ที่เกี่ยวข้องได้โดยใช้ ctx.outputs

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
allow_empty default is True
True if the attribute can be empty.
doc สตริง หรือ None ค่าเริ่มต้นคือ None
คำอธิบายแอตทริบิวต์ที่เครื่องมือสร้างเอกสารประกอบสามารถดึงข้อมูลได้
mandatory ค่าเริ่มต้นคือ False
หากเป็น "จริง" ต้องระบุค่าอย่างชัดแจ้ง (แม้ว่าจะมี default ก็ตาม)

สตริง

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

สร้างสคีมาสําหรับแอตทริบิวต์สตริง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
default string หรือ NativeComputedDefault ค่าเริ่มต้นคือ ''
ค่าเริ่มต้นที่จะใช้หากไม่มีการระบุค่าสำหรับแอตทริบิวต์นี้เมื่อเริ่มต้นกฎ
doc สตริง หรือ None ค่าเริ่มต้นคือ None
คำอธิบายแอตทริบิวต์ที่เครื่องมือสร้างเอกสารประกอบสามารถดึงข้อมูลได้
mandatory ค่าเริ่มต้นคือ False
หากเป็น "จริง" จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
values ลําดับของ สตริง ค่าเริ่มต้นคือ []
ซึ่งก็คือรายการค่าที่อนุญาตสําหรับแอตทริบิวต์ ระบบจะแสดงข้อผิดพลาดหากระบุค่าอื่น

string_dict

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

สร้างสคีมาสําหรับแอตทริบิวต์ที่มีพจนานุกรม โดยที่คีย์และค่าจะเป็นสตริง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
allow_empty default is True
True if the attribute can be empty.
default default is {}
ค่าเริ่มต้นที่จะใช้หากไม่ได้ระบุค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ
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=[])

สร้างสคีมาสําหรับแอตทริบิวต์ซึ่งมีค่าเป็นพจนานุกรมที่คีย์คือสตริงและค่าคือป้ายกํากับ นี่เป็นแอตทริบิวต์ของทรัพยากร Dependency

แอตทริบิวต์นี้มีค่า Label ที่ไม่ซ้ำกัน หากระบุสตริงแทน Label ระบบจะแปลงสตริงโดยใช้เครื่องมือสร้างป้ายกำกับ ระบบจะแก้ไขส่วนที่สัมพันธ์กันของเส้นทางป้ายกำกับ ซึ่งรวมถึงที่เก็บ (อาจเปลี่ยนชื่อ) โดยอิงตามแพ็กเกจของเป้าหมายที่สร้างขึ้น

ขณะวิเคราะห์ (ภายในฟังก์ชันการใช้งานของกฎ) เมื่อดึงค่าแอตทริบิวต์จาก ctx.attr ป้ายกำกับจะถูกแทนที่ด้วย Target ที่เกี่ยวข้อง ซึ่งจะช่วยให้คุณเข้าถึงผู้ให้บริการของข้อกําหนดของเป้าหมายปัจจุบันได้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
allow_empty default is True
True if the attribute can be empty.
default dict หรือ function ค่าเริ่มต้นคือ {}
ค่าเริ่มต้นที่จะใช้หากไม่มีการระบุค่าสำหรับแอตทริบิวต์นี้เมื่อเริ่มต้นกฎ ใช้สตริงหรือฟังก์ชัน Label เพื่อระบุค่าเริ่มต้น เช่น attr.string_keyed_label_dict(default = {"foo": "//a:b", "bar": "//a:c"})
doc สตริง หรือ None ค่าเริ่มต้นคือ None
คำอธิบายแอตทริบิวต์ที่เครื่องมือสร้างเอกสารประกอบสามารถดึงข้อมูลได้
allow_files bool หรือลำดับของสตริง หรือ None ค่าเริ่มต้นคือ None
ระบุว่า File อนุญาตเป้าหมายหรือไม่ อาจเป็น True, False (ค่าเริ่มต้น) หรือรายการนามสกุลไฟล์ที่อนุญาต (เช่น [".cc", ".cpp"])
allow_rules ลําดับของ สตริง หรือ None หรือ ค่าเริ่มต้นคือ None
ซึ่งกฎเป้าหมาย (ชื่อของคลาส) ได้รับอนุญาต เลิกใช้งานแล้ว (เก็บไว้เพื่อความเข้ากันได้เท่านั้น) โปรดใช้ผู้ให้บริการแทน
providers ค่าเริ่มต้นคือ []
ผู้ให้บริการที่ต้องระบุโดยข้อกําหนดใดๆ ที่ปรากฏในแอตทริบิวต์นี้

รูปแบบของอาร์กิวเมนต์นี้คือรายการรายชื่อผู้ให้บริการ -- ออบเจ็กต์ *Info ที่แสดงผลโดย provider() (หรือในกรณีของผู้ให้บริการเดิม คือชื่อสตริง) ทรัพยากร Dependency ต้องแสดงผลผู้ให้บริการทั้งหมดที่กล่าวถึงในรายการภายในอย่างน้อย 1 รายการ อาร์กิวเมนต์นี้อาจเป็นรายการผู้ให้บริการระดับเดียวเพื่อความสะดวกด้วย ซึ่งในกรณีนี้ ระบบจะรวมไว้ในรายการภายนอกที่มีองค์ประกอบเดียว กฎของ Dependency ไม่จำเป็นต้องโฆษณาผู้ให้บริการเหล่านั้นในพารามิเตอร์ provides แต่ถือเป็นแนวทางปฏิบัติแนะนำ

flags ลำดับ ของสตริง ค่าเริ่มต้นคือ []
ที่เลิกใช้งานแล้ว และจะถูกนำออก
mandatory ค่าเริ่มต้นคือ False
หากเป็น "จริง" ต้องระบุค่าอย่างชัดแจ้ง (แม้ว่าจะมี default ก็ตาม)
cfg default is None
Configuration of the attribute. ซึ่งอาจเป็น "exec" ซึ่งระบุว่ามีการบิลด์ข้อกำหนดสำหรับ execution platform หรือ "target" ซึ่งระบุว่ามีการบิลด์ข้อกำหนดสำหรับ target platform ตัวอย่างทั่วไปของความแตกต่างคือการสร้างแอปบนอุปกรณ์เคลื่อนที่ โดยที่ target platform คือ Android หรือ iOS ส่วน execution platform คือ Linux, macOS หรือ Windows
aspects ลําดับของ Aspect ค่าเริ่มต้นคือ []
Aspect ที่ควรใช้กับ Dependency หรือ Dependencies ที่ระบุโดยแอตทริบิวต์นี้

string_list

Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc=None)

สร้างสคีมาสำหรับแอตทริบิวต์รายการสตริง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
mandatory ค่าเริ่มต้นคือ False
หากเป็น "จริง" ต้องระบุค่าอย่างชัดแจ้ง (แม้ว่าจะมี default ก็ตาม)
allow_empty ค่าเริ่มต้นคือ True
เป็นจริงหากแอตทริบิวต์ว่างเปล่าได้
default ลําดับสตริง หรือ NativeComputedDefault ค่าเริ่มต้นคือ []
ค่าเริ่มต้นที่จะใช้หากไม่ได้ระบุค่าสําหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ
doc สตริง หรือ None ค่าเริ่มต้นคือ None
คำอธิบายแอตทริบิวต์ที่เครื่องมือสร้างเอกสารประกอบสามารถดึงข้อมูลได้

string_list_dict

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

สร้างสคีมาสําหรับแอตทริบิวต์ที่มีพจนานุกรม โดยที่คีย์คือสตริงและค่าคือรายการสตริง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
allow_empty default is True
True if the attribute can be empty.
default default is {}
ค่าเริ่มต้นที่จะใช้หากไม่ได้ระบุค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ
doc สตริง หรือ None ค่าเริ่มต้นคือ None
คำอธิบายแอตทริบิวต์ที่เครื่องมือสร้างเอกสารประกอบสามารถดึงข้อมูลได้
mandatory ค่าเริ่มต้นคือ False
หากเป็น "จริง" จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)