attrs ของ rule() และ aspect()ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดและการใช้แอตทริบิวต์ได้ที่หน้ากฎ
สมาชิก
- bool
- int
- int_list
- ป้ายกำกับ
- label_keyed_string_dict
- label_list
- output
- output_list
- สตริง
- string_dict
- string_keyed_label_dict
- string_list
- string_list_dict
บูลีน
Attribute attr.bool(default=False, doc=None, mandatory=False)
ctx.attr ที่เกี่ยวข้องจะเป็นประเภท bool
          
      พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| default | ค่าเริ่มต้นคือ Falseค่าเริ่มต้นที่จะใช้หากไม่มีค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ | 
| doc | สตริง หรือ Noneค่าเริ่มต้นคือNoneคำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ | 
| mandatory | ค่าเริ่มต้นคือ Falseหากเป็นจริง คุณต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี defaultก็ตาม) | 
int
Attribute attr.int(default=0, doc=None, mandatory=False, values=[])
ctx.attr ที่เกี่ยวข้องจะเป็นประเภท int
          
      พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| default | ค่าเริ่มต้นคือ 0ค่าเริ่มต้นที่จะใช้หากไม่มีค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ | 
| doc | สตริง หรือ Noneค่าเริ่มต้นคือNoneคำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ | 
| mandatory | ค่าเริ่มต้นคือ Falseหากเป็นจริง คุณต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี defaultก็ตาม) | 
| values | ลำดับของ ints;
                                     ค่าเริ่มต้นคือ []รายการค่าที่อนุญาตสำหรับแอตทริบิวต์ ระบบจะแสดงข้อผิดพลาดหากระบุค่าอื่น | 
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc=None)
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| mandatory | ค่าเริ่มต้นคือ Falseหากเป็นจริง คุณต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี defaultก็ตาม) | 
| allow_empty | ค่าเริ่มต้นคือ TrueTrue หากแอตทริบิวต์ว่างได้ | 
| 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=[])
สร้างสคีมาสำหรับแอตทริบิวต์ป้ายกำกับ นี่คือแอตทริบิวต์การอ้างอิง
แอตทริบิวต์นี้มีค่า Label ที่ไม่ซ้ำกัน หากมีการระบุสตริงแทน Label ระบบจะแปลงสตริงโดยใช้ตัวสร้างป้ายกำกับ ระบบจะแก้ไขส่วนที่เกี่ยวข้องของเส้นทางป้ายกำกับ รวมถึงที่เก็บ (ซึ่งอาจมีการเปลี่ยนชื่อ) โดยอิงตามแพ็กเกจของเป้าหมายที่สร้างอินสแตนซ์
ในเวลาที่วิเคราะห์ (ภายในฟังก์ชันการใช้งานของกฎ) เมื่อดึงค่าแอตทริบิวต์จาก ctx.attr ระบบจะแทนที่ป้ายกำกับด้วย Target ที่เกี่ยวข้อง ซึ่งจะช่วยให้คุณเข้าถึงผู้ให้บริการของทรัพยากร Dependency ของเป้าหมายปัจจุบันได้
นอกจากไฟล์ต้นฉบับทั่วไปแล้ว แอตทริบิวต์ประเภทนี้มักใช้เพื่ออ้างอิงถึงเครื่องมือ เช่น คอมไพเลอร์ เครื่องมือดังกล่าวถือเป็นทรัพยากร Dependency เช่นเดียวกับไฟล์ต้นฉบับ หากไม่ต้องการให้ผู้ใช้ระบุป้ายกำกับของเครื่องมือทุกครั้งที่ใช้กฎในไฟล์ BUILD คุณสามารถฮาร์ดโค้ดป้ายกำกับของเครื่องมือ Canonical เป็นค่า default ของแอตทริบิวต์นี้ได้ หากต้องการป้องกันไม่ให้ผู้ใช้ลบล้างค่าเริ่มต้นนี้ คุณสามารถทําให้แอตทริบิวต์เป็นแบบส่วนตัวได้โดยตั้งชื่อให้ขึ้นต้นด้วยขีดล่าง ดูข้อมูลเพิ่มเติมได้ที่หน้ากฎ
          
      
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| default | Label หรือ string หรือ LateBoundDefault หรือ NativeComputedDefault หรือ function หรือ Noneค่าเริ่มต้นคือNoneค่าเริ่มต้นที่จะใช้หากไม่มีค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ ให้ใช้สตริงหรือฟังก์ชัน Labelเพื่อระบุค่าเริ่มต้น เช่นattr.label(default = "//a:b") | 
| doc | สตริง หรือ Noneค่าเริ่มต้นคือNoneคำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ | 
| executable | ค่าเริ่มต้นคือ FalseTrue หากต้องเรียกใช้ทรัพยากร Dependency ซึ่งหมายความว่าป้ายกำกับต้องอ้างอิงถึงไฟล์ที่เรียกใช้งานได้ หรือกฎที่สร้างไฟล์ที่เรียกใช้งานได้ เข้าถึงป้ายกำกับด้วย ctx.executable.<attribute_name> | 
| allow_files | bool หรือ sequence ของ string หรือ Noneค่าเริ่มต้นคือNoneอนุญาตให้ใช้เป้าหมาย Fileหรือไม่ อาจเป็นTrue,False(ค่าเริ่มต้น) หรือรายการนามสกุลไฟล์ที่อนุญาต (เช่น[".cc", ".cpp"]) | 
| allow_single_file | ค่าเริ่มต้นคือ Noneซึ่งคล้ายกับ allow_filesโดยมีข้อจำกัดว่าป้ายกำกับต้องสอดคล้องกับ File เดียว เข้าถึงได้ผ่านctx.file.<attribute_name> | 
| mandatory | ค่าเริ่มต้นคือ Falseหากเป็นจริง คุณต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี defaultก็ตาม) | 
| providers | ค่าเริ่มต้นคือ []ผู้ให้บริการที่ต้องระบุโดยการอ้างอิงใดๆ ที่ปรากฏในแอตทริบิวต์นี้ รูปแบบของอาร์กิวเมนต์นี้คือลิสต์ของลิสต์ของผู้ให้บริการ ซึ่งเป็นออบเจ็กต์  | 
| allow_rules | ลำดับของสตริง หรือ 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 | ลำดับของ Aspect
                                     ค่าเริ่มต้นคือ []Aspect ที่ควรใช้กับทรัพยากร Dependency หรือทรัพยากร Dependency ที่ระบุโดยแอตทริบิวต์นี้ | 
| 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=[])
สร้างสคีมาสำหรับแอตทริบิวต์ที่มีพจนานุกรม โดยคีย์คือป้ายกำกับและค่าคือสตริง นี่คือแอตทริบิวต์การอ้างอิง
แอตทริบิวต์นี้มีค่า Label ที่ไม่ซ้ำกัน หากมีการระบุสตริงแทน Label ระบบจะแปลงสตริงโดยใช้ตัวสร้างป้ายกำกับ ระบบจะแก้ไขส่วนที่เกี่ยวข้องของเส้นทางป้ายกำกับ รวมถึงที่เก็บ (ซึ่งอาจมีการเปลี่ยนชื่อ) โดยอิงตามแพ็กเกจของเป้าหมายที่สร้างอินสแตนซ์
ในเวลาที่วิเคราะห์ (ภายในฟังก์ชันการใช้งานของกฎ) เมื่อดึงค่าแอตทริบิวต์จาก ctx.attr ระบบจะแทนที่ป้ายกำกับด้วย Target ที่เกี่ยวข้อง ซึ่งจะช่วยให้คุณเข้าถึงผู้ให้บริการของทรัพยากร Dependency ของเป้าหมายปัจจุบันได้
          
      
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| allow_empty | ค่าเริ่มต้นคือ TrueTrue หากแอตทริบิวต์ว่างได้ | 
| default | dict หรือ function
                                     ค่าเริ่มต้นคือ {}ค่าเริ่มต้นที่จะใช้หากไม่มีค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ ใช้สตริงหรือฟังก์ชัน Labelเพื่อระบุค่าเริ่มต้น เช่นattr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"}) | 
| doc | สตริง หรือ Noneค่าเริ่มต้นคือNoneคำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ | 
| allow_files | bool หรือ sequence ของ string หรือ Noneค่าเริ่มต้นคือNoneอนุญาตให้ใช้เป้าหมาย Fileหรือไม่ อาจเป็นTrue,False(ค่าเริ่มต้น) หรือรายการนามสกุลไฟล์ที่อนุญาต (เช่น[".cc", ".cpp"]) | 
| allow_rules | ลำดับของสตริง หรือ Noneค่าเริ่มต้นคือNoneอนุญาตให้ใช้กฎใด (ชื่อของคลาส) โดยการตั้งค่านี้เลิกใช้งานแล้ว (เก็บไว้เพื่อความเข้ากันได้เท่านั้น) โปรดใช้ผู้ให้บริการแทน | 
| providers | ค่าเริ่มต้นคือ []ผู้ให้บริการที่ต้องระบุโดยการอ้างอิงใดๆ ที่ปรากฏในแอตทริบิวต์นี้ รูปแบบของอาร์กิวเมนต์นี้คือลิสต์ของลิสต์ของผู้ให้บริการ ซึ่งเป็นออบเจ็กต์  | 
| 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 หรือทรัพยากร Dependency ที่ระบุโดยแอตทริบิวต์นี้ | 
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 ที่เกี่ยวข้องจะเป็นประเภทlist ของ Targets
แอตทริบิวต์นี้มีค่า Label ที่ไม่ซ้ำกัน หากมีการระบุสตริงแทน Label ระบบจะแปลงสตริงโดยใช้ตัวสร้างป้ายกำกับ ระบบจะแก้ไขส่วนที่เกี่ยวข้องของเส้นทางป้ายกำกับ รวมถึงที่เก็บ (ซึ่งอาจมีการเปลี่ยนชื่อ) โดยอิงตามแพ็กเกจของเป้าหมายที่สร้างอินสแตนซ์
ในเวลาที่วิเคราะห์ (ภายในฟังก์ชันการใช้งานของกฎ) เมื่อดึงค่าแอตทริบิวต์จาก ctx.attr ระบบจะแทนที่ป้ายกำกับด้วย Target ที่เกี่ยวข้อง ซึ่งจะช่วยให้คุณเข้าถึงผู้ให้บริการของทรัพยากร Dependency ของเป้าหมายปัจจุบันได้
          
      
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| allow_empty | ค่าเริ่มต้นคือ TrueTrue หากแอตทริบิวต์ว่างได้ | 
| default | ลำดับของ Label หรือ function
                                     ค่าเริ่มต้นคือ []ค่าเริ่มต้นที่จะใช้หากไม่มีค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ ให้ใช้สตริงหรือฟังก์ชัน Labelเพื่อระบุค่าเริ่มต้น เช่นattr.label_list(default = ["//a:b", "//a:c"]) | 
| doc | สตริง หรือ Noneค่าเริ่มต้นคือNoneคำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ | 
| allow_files | bool หรือ sequence ของ string หรือ Noneค่าเริ่มต้นคือNoneอนุญาตให้ใช้เป้าหมาย Fileหรือไม่ อาจเป็นTrue,False(ค่าเริ่มต้น) หรือรายการนามสกุลไฟล์ที่อนุญาต (เช่น[".cc", ".cpp"]) | 
| allow_rules | ลำดับของสตริง หรือ Noneค่าเริ่มต้นคือNoneอนุญาตให้ใช้กฎใด (ชื่อของคลาส) โดยการตั้งค่านี้เลิกใช้งานแล้ว (เก็บไว้เพื่อความเข้ากันได้เท่านั้น) โปรดใช้ผู้ให้บริการแทน | 
| providers | ค่าเริ่มต้นคือ []ผู้ให้บริการที่ต้องระบุโดยการอ้างอิงใดๆ ที่ปรากฏในแอตทริบิวต์นี้ รูปแบบของอาร์กิวเมนต์นี้คือลิสต์ของลิสต์ของผู้ให้บริการ ซึ่งเป็นออบเจ็กต์  | 
| 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 หรือทรัพยากร Dependency ที่ระบุโดยแอตทริบิวต์นี้ | 
เอาต์พุต
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 | ค่าเริ่มต้นคือ TrueTrue หากแอตทริบิวต์ว่างได้ | 
| 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 | ค่าเริ่มต้นคือ TrueTrue หากแอตทริบิวต์ว่างได้ | 
| default | ค่าเริ่มต้นคือ {}ค่าเริ่มต้นที่จะใช้หากไม่มีค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ | 
| doc | สตริง หรือ 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 ที่เกี่ยวข้อง ซึ่งจะช่วยให้คุณเข้าถึงผู้ให้บริการของทรัพยากร Dependency ของเป้าหมายปัจจุบันได้
          
      
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| allow_empty | ค่าเริ่มต้นคือ TrueTrue หากแอตทริบิวต์ว่างได้ | 
| default | dict หรือ function
                                     ค่าเริ่มต้นคือ {}ค่าเริ่มต้นที่จะใช้หากไม่มีค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ ใช้สตริงหรือฟังก์ชัน Labelเพื่อระบุค่าเริ่มต้น เช่นattr.string_keyed_label_dict(default = {"foo": "//a:b", "bar": "//a:c"}) | 
| doc | สตริง หรือ Noneค่าเริ่มต้นคือNoneคำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ | 
| allow_files | bool หรือ sequence ของ string หรือ Noneค่าเริ่มต้นคือNoneอนุญาตให้ใช้เป้าหมาย Fileหรือไม่ อาจเป็นTrue,False(ค่าเริ่มต้น) หรือรายการนามสกุลไฟล์ที่อนุญาต (เช่น[".cc", ".cpp"]) | 
| allow_rules | ลำดับของสตริง หรือ Noneค่าเริ่มต้นคือNoneอนุญาตให้ใช้กฎใด (ชื่อของคลาส) โดยการตั้งค่านี้เลิกใช้งานแล้ว (เก็บไว้เพื่อความเข้ากันได้เท่านั้น) โปรดใช้ผู้ให้บริการแทน | 
| providers | ค่าเริ่มต้นคือ []ผู้ให้บริการที่ต้องระบุโดยการอ้างอิงใดๆ ที่ปรากฏในแอตทริบิวต์นี้ รูปแบบของอาร์กิวเมนต์นี้คือลิสต์ของลิสต์ของผู้ให้บริการ ซึ่งเป็นออบเจ็กต์  | 
| 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 หรือทรัพยากร Dependency ที่ระบุโดยแอตทริบิวต์นี้ | 
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc=None)
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| mandatory | ค่าเริ่มต้นคือ Falseหากเป็นจริง คุณต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี defaultก็ตาม) | 
| allow_empty | ค่าเริ่มต้นคือ TrueTrue หากแอตทริบิวต์ว่างได้ | 
| default | ลำดับของสตริง หรือ NativeComputedDefault
                                     ค่าเริ่มต้นคือ []ค่าเริ่มต้นที่จะใช้หากไม่มีค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ | 
| doc | สตริง หรือ Noneค่าเริ่มต้นคือNoneคำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ | 
string_list_dict
Attribute attr.string_list_dict(allow_empty=True, *, default={}, doc=None, mandatory=False)
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
| allow_empty | ค่าเริ่มต้นคือ TrueTrue หากแอตทริบิวต์ว่างได้ | 
| default | ค่าเริ่มต้นคือ {}ค่าเริ่มต้นที่จะใช้หากไม่มีค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ | 
| doc | สตริง หรือ Noneค่าเริ่มต้นคือNoneคำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ | 
| mandatory | ค่าเริ่มต้นคือ Falseหากเป็นจริง คุณต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี defaultก็ตาม) |