attrs ของ rule() และ aspect()ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดและการใช้แอตทริบิวต์ได้ที่หน้ากฎ
สมาชิก
- bool
- int
- int_list
- ป้ายกำกับ
- label_keyed_string_dict
- label_list
- output
- output_list
- สตริง
- string_dict
- string_list
- string_list_dict
บูลีน
Attribute attr.bool(default=False, doc='', mandatory=False)
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
default
|
default = False ค่าเริ่มต้นที่จะใช้หากไม่มีค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ |
doc
|
default = '' คำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ |
mandatory
|
default = False หากเป็นจริง จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
|
int
Attribute attr.int(default=0, doc='', mandatory=False, values=[])
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
default
|
default = 0 ค่าเริ่มต้นที่จะใช้หากไม่มีการระบุค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ |
doc
|
default = '' คำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ |
mandatory
|
default = False หากเป็นจริง จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
|
values
|
sequence of ints;
default = []รายการค่าที่อนุญาตสำหรับแอตทริบิวต์ ระบบจะแสดงข้อผิดพลาดหากระบุค่าอื่น |
int_list
Attribute attr.int_list(mandatory=False, allow_empty=True, *, default=[], doc='')
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
mandatory
|
default = False หากเป็นจริง จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
|
allow_empty
|
default = True True if the attribute can be empty. |
default
|
sequence of ints;
default = []ค่าเริ่มต้นที่จะใช้หากไม่มีการระบุค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ |
doc
|
default = '' คำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ |
ป้ายกำกับ
Attribute attr.label(default=None, doc='', executable=False, allow_files=None, allow_single_file=None, mandatory=False, providers=[], allow_rules=None, cfg=None, aspects=[])
สร้างสคีมาสำหรับแอตทริบิวต์ป้ายกำกับ นี่คือแอตทริบิวต์การขึ้นต่อกัน
แอตทริบิวต์นี้มีค่า Label ที่ไม่ซ้ำกัน หากมีการระบุสตริงแทน Label ระบบจะแปลงสตริงโดยใช้เครื่องมือสร้างป้ายกำกับ ส่วนที่เกี่ยวข้องของเส้นทางป้ายกำกับ รวมถึงที่เก็บ (ซึ่งอาจมีการเปลี่ยนชื่อ) จะได้รับการแก้ไขโดยอิงตามแพ็กเกจของเป้าหมายที่สร้างอินสแตนซ์
ในเวลาที่วิเคราะห์ (ภายในฟังก์ชันการใช้งานของกฎ) เมื่อดึงค่าแอตทริบิวต์จาก ctx.attr ระบบจะแทนที่ป้ายกำกับด้วย Target ที่เกี่ยวข้อง ซึ่งจะช่วยให้คุณเข้าถึงผู้ให้บริการของทรัพยากร Dependency ของเป้าหมายปัจจุบันได้
นอกจากไฟล์ต้นฉบับทั่วไปแล้ว แอตทริบิวต์ประเภทนี้มักใช้เพื่ออ้างอิงถึงเครื่องมือ เช่น คอมไพเลอร์ เครื่องมือดังกล่าวถือเป็นทรัพยากร Dependency เช่นเดียวกับไฟล์ต้นฉบับ หากไม่ต้องการให้ผู้ใช้ระบุป้ายกำกับของเครื่องมือทุกครั้งที่ใช้กฎในไฟล์ BUILD คุณสามารถฮาร์ดโค้ดป้ายกำกับของเครื่องมือ Canonical เป็นค่า default ของแอตทริบิวต์นี้ได้ หากต้องการป้องกันไม่ให้ผู้ใช้ลบล้างค่าเริ่มต้นนี้ คุณสามารถทำให้แอตทริบิวต์เป็นแบบส่วนตัวได้โดยตั้งชื่อให้ขึ้นต้นด้วยขีดล่าง ดูข้อมูลเพิ่มเติมได้ที่หน้ากฎ
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
default
|
Label; or string; or LateBoundDefault; or NativeComputedDefault; or function; or None;
ค่าเริ่มต้น = ไม่มีค่าเริ่มต้นที่จะใช้หากไม่มีการระบุค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ ใช้สตริงหรือฟังก์ชัน Label เพื่อระบุค่าเริ่มต้น เช่น attr.label(default = "//a:b")
|
doc
|
default = '' คำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ |
executable
|
ค่าเริ่มต้น = False True หากต้องเรียกใช้การขึ้นต่อกัน ซึ่งหมายความว่าป้ายกำกับต้องอ้างอิงถึงไฟล์ที่เรียกใช้งานได้ หรือกฎที่สร้างไฟล์ที่เรียกใช้งานได้ เข้าถึงป้ายกำกับด้วย ctx.executable.<attribute_name>
|
allow_files
|
bool; or sequence of strings; or None;
default = NoneWhether File targets are allowed. อาจเป็น True, False (ค่าเริ่มต้น) หรือรายการนามสกุลไฟล์ที่อนุญาต (เช่น [".cc", ".cpp"])
|
allow_single_file
|
default = None ซึ่งคล้ายกับ allow_files โดยมีข้อจำกัดว่าป้ายกำกับต้องสอดคล้องกับไฟล์เดียว เข้าถึงได้ผ่าน ctx.file.<attribute_name>
|
mandatory
|
default = False หากเป็นจริง จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
|
providers
|
default = [] ผู้ให้บริการที่ต้องระบุโดยการอ้างอิงใดๆ ที่ปรากฏในแอตทริบิวต์นี้ รูปแบบของอาร์กิวเมนต์นี้คือลิสต์ของลิสต์ของผู้ให้บริการ ซึ่งเป็นออบเจ็กต์ |
allow_rules
|
sequence of strings; or None;
default = Noneกฎใดที่กำหนดเป้าหมาย (ชื่อของคลาส) ที่อนุญาต โดยการตั้งค่านี้เลิกใช้งานแล้ว (เก็บไว้เพื่อความเข้ากันได้เท่านั้น) โปรดใช้ผู้ให้บริการแทน |
cfg
|
default = None การกำหนดค่าของแอตทริบิวต์ โดยอาจเป็น "exec" ซึ่งระบุว่าสร้างการอ้างอิงสำหรับ execution platform หรือ "target" ซึ่งระบุว่าสร้างการอ้างอิงสำหรับ target platform ตัวอย่างทั่วไปของความแตกต่างคือเมื่อสร้างแอปบนอุปกรณ์เคลื่อนที่ ซึ่ง target platform คือ Android หรือ iOS ในขณะที่ execution platform คือ Linux, macOS หรือ Windows ต้องระบุพารามิเตอร์นี้หาก executable เป็น True เพื่อป้องกันการสร้างเครื่องมือโฮสต์ในการกำหนดค่าเป้าหมายโดยไม่ตั้งใจ "target" ไม่มีผลทางความหมาย ดังนั้นอย่าตั้งค่าเมื่อ executable เป็น False เว้นแต่จะช่วยชี้แจงเจตนาของคุณได้จริงๆ
|
aspects
|
sequence of Aspects;
default = []แง่มุมที่ควรใช้กับทรัพยากร Dependency หรือทรัพยากร Dependency ที่ระบุโดยแอตทริบิวต์นี้ |
label_keyed_string_dict
Attribute attr.label_keyed_string_dict(allow_empty=True, *, default={}, doc='', allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
สร้างสคีมาสำหรับแอตทริบิวต์ที่มีพจนานุกรม โดยคีย์คือป้ายกำกับและค่าคือสตริง นี่คือแอตทริบิวต์การขึ้นต่อกัน
แอตทริบิวต์นี้มีค่า Label ที่ไม่ซ้ำกัน หากมีการระบุสตริงแทน Label ระบบจะแปลงสตริงโดยใช้เครื่องมือสร้างป้ายกำกับ ส่วนที่เกี่ยวข้องของเส้นทางป้ายกำกับ รวมถึงที่เก็บ (ซึ่งอาจมีการเปลี่ยนชื่อ) จะได้รับการแก้ไขโดยอิงตามแพ็กเกจของเป้าหมายที่สร้างอินสแตนซ์
ในเวลาที่วิเคราะห์ (ภายในฟังก์ชันการใช้งานของกฎ) เมื่อดึงค่าแอตทริบิวต์จาก ctx.attr ระบบจะแทนที่ป้ายกำกับด้วย Target ที่เกี่ยวข้อง ซึ่งจะช่วยให้คุณเข้าถึงผู้ให้บริการของทรัพยากร Dependency ของเป้าหมายปัจจุบันได้
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
allow_empty
|
default = True True if the attribute can be empty. |
default
|
dict; or function;
ค่าเริ่มต้น = {}ค่าเริ่มต้นที่จะใช้หากไม่มีการระบุค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ ใช้สตริงหรือฟังก์ชัน Label เพื่อระบุค่าเริ่มต้น เช่น attr.label_keyed_string_dict(default = {"//a:b": "value", "//a:c": "string"})
|
doc
|
default = '' คำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ |
allow_files
|
bool; or sequence of strings; or None;
default = NoneWhether File targets are allowed. อาจเป็น True, False (ค่าเริ่มต้น) หรือรายการนามสกุลไฟล์ที่อนุญาต (เช่น [".cc", ".cpp"])
|
allow_rules
|
sequence of strings; or None;
default = Noneกฎใดที่กำหนดเป้าหมาย (ชื่อของคลาส) ที่อนุญาต โดยการตั้งค่านี้เลิกใช้งานแล้ว (เก็บไว้เพื่อความเข้ากันได้เท่านั้น) โปรดใช้ผู้ให้บริการแทน |
providers
|
default = [] ผู้ให้บริการที่ต้องระบุโดยการอ้างอิงใดๆ ที่ปรากฏในแอตทริบิวต์นี้ รูปแบบของอาร์กิวเมนต์นี้คือลิสต์ของลิสต์ของผู้ให้บริการ ซึ่งเป็นออบเจ็กต์ |
flags
|
sequence of strings;
default = []เลิกใช้งานแล้วและจะถูกนำออก |
mandatory
|
default = False หากเป็นจริง จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
|
cfg
|
default = None การกำหนดค่าของแอตทริบิวต์ โดยอาจเป็น "exec" ซึ่งระบุว่าสร้างการอ้างอิงสำหรับ execution platform หรือ "target" ซึ่งระบุว่าสร้างการอ้างอิงสำหรับ target platform ตัวอย่างทั่วไปของความแตกต่างคือเมื่อสร้างแอปบนอุปกรณ์เคลื่อนที่ ซึ่ง target platform คือ Android หรือ iOS ในขณะที่ execution platform คือ Linux, macOS หรือ Windows
|
aspects
|
sequence of Aspects;
default = []แง่มุมที่ควรใช้กับทรัพยากร Dependency หรือทรัพยากร Dependency ที่ระบุโดยแอตทริบิวต์นี้ |
label_list
Attribute attr.label_list(allow_empty=True, *, default=[], doc='', allow_files=None, allow_rules=None, providers=[], flags=[], mandatory=False, cfg=None, aspects=[])
สร้างสคีมาสำหรับแอตทริบิวต์รายการป้ายกำกับ นี่คือแอตทริบิวต์การขึ้นต่อกัน
แอตทริบิวต์นี้มีค่า Label ที่ไม่ซ้ำกัน หากมีการระบุสตริงแทน Label ระบบจะแปลงสตริงโดยใช้เครื่องมือสร้างป้ายกำกับ ส่วนที่เกี่ยวข้องของเส้นทางป้ายกำกับ รวมถึงที่เก็บ (ซึ่งอาจมีการเปลี่ยนชื่อ) จะได้รับการแก้ไขโดยอิงตามแพ็กเกจของเป้าหมายที่สร้างอินสแตนซ์
ในเวลาที่วิเคราะห์ (ภายในฟังก์ชันการใช้งานของกฎ) เมื่อดึงค่าแอตทริบิวต์จาก ctx.attr ระบบจะแทนที่ป้ายกำกับด้วย Target ที่เกี่ยวข้อง ซึ่งจะช่วยให้คุณเข้าถึงผู้ให้บริการของทรัพยากร Dependency ของเป้าหมายปัจจุบันได้
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
allow_empty
|
default = True True if the attribute can be empty. |
default
|
sequence of Labels; or function;
default = []ค่าเริ่มต้นที่จะใช้หากไม่มีการระบุค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ ใช้สตริงหรือฟังก์ชัน Label เพื่อระบุค่าเริ่มต้น เช่น attr.label_list(default = ["//a:b", "//a:c"])
|
doc
|
default = '' คำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ |
allow_files
|
bool; or sequence of strings; or None;
default = NoneWhether File targets are allowed. อาจเป็น True, False (ค่าเริ่มต้น) หรือรายการนามสกุลไฟล์ที่อนุญาต (เช่น [".cc", ".cpp"])
|
allow_rules
|
sequence of strings; or None;
default = Noneกฎใดที่กำหนดเป้าหมาย (ชื่อของคลาส) ที่อนุญาต โดยการตั้งค่านี้เลิกใช้งานแล้ว (เก็บไว้เพื่อความเข้ากันได้เท่านั้น) โปรดใช้ผู้ให้บริการแทน |
providers
|
default = [] ผู้ให้บริการที่ต้องระบุโดยการอ้างอิงใดๆ ที่ปรากฏในแอตทริบิวต์นี้ รูปแบบของอาร์กิวเมนต์นี้คือลิสต์ของลิสต์ของผู้ให้บริการ ซึ่งเป็นออบเจ็กต์ |
flags
|
sequence of strings;
default = []เลิกใช้งานแล้วและจะถูกนำออก |
mandatory
|
default = False หากเป็นจริง จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
|
cfg
|
default = None การกำหนดค่าของแอตทริบิวต์ โดยอาจเป็น "exec" ซึ่งระบุว่าสร้างการอ้างอิงสำหรับ execution platform หรือ "target" ซึ่งระบุว่าสร้างการอ้างอิงสำหรับ target platform ตัวอย่างทั่วไปของความแตกต่างคือเมื่อสร้างแอปบนอุปกรณ์เคลื่อนที่ ซึ่ง target platform คือ Android หรือ iOS ในขณะที่ execution platform คือ Linux, macOS หรือ Windows
|
aspects
|
sequence of Aspects;
default = []แง่มุมที่ควรใช้กับทรัพยากร Dependency หรือทรัพยากร Dependency ที่ระบุโดยแอตทริบิวต์นี้ |
เอาต์พุต
Attribute attr.output(doc='', mandatory=False)
สร้างสคีมาสำหรับแอตทริบิวต์เอาต์พุต (ป้ายกำกับ)
แอตทริบิวต์นี้มีค่า Label ที่ไม่ซ้ำกัน หากมีการระบุสตริงแทน Label ระบบจะแปลงสตริงโดยใช้เครื่องมือสร้างป้ายกำกับ ส่วนที่เกี่ยวข้องของเส้นทางป้ายกำกับ รวมถึงที่เก็บ (ซึ่งอาจมีการเปลี่ยนชื่อ) จะได้รับการแก้ไขโดยอิงตามแพ็กเกจของเป้าหมายที่สร้างอินสแตนซ์
เมื่อถึงเวลาวิเคราะห์ คุณจะเรียกข้อมูล File ที่เกี่ยวข้องได้โดยใช้ ctx.outputs
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
doc
|
default = '' คำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ |
mandatory
|
default = False หากเป็นจริง จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
|
output_list
Attribute attr.output_list(allow_empty=True, *, doc='', mandatory=False)
แอตทริบิวต์นี้มีค่า Label ที่ไม่ซ้ำกัน หากมีการระบุสตริงแทน Label ระบบจะแปลงสตริงโดยใช้เครื่องมือสร้างป้ายกำกับ ส่วนที่เกี่ยวข้องของเส้นทางป้ายกำกับ รวมถึงที่เก็บ (ซึ่งอาจมีการเปลี่ยนชื่อ) จะได้รับการแก้ไขโดยอิงตามแพ็กเกจของเป้าหมายที่สร้างอินสแตนซ์
เมื่อถึงเวลาวิเคราะห์ คุณจะเรียกข้อมูล File ที่เกี่ยวข้องได้โดยใช้ ctx.outputs
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
allow_empty
|
default = True True if the attribute can be empty. |
doc
|
default = '' คำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ |
mandatory
|
default = False หากเป็นจริง จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
|
สตริง
Attribute attr.string(default='', doc='', mandatory=False, values=[])
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
default
|
string; or NativeComputedDefault;
default = ''ค่าเริ่มต้นที่จะใช้หากไม่มีการระบุค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ |
doc
|
default = '' คำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ |
mandatory
|
default = False หากเป็นจริง จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
|
values
|
sequence of strings;
default = []รายการค่าที่อนุญาตสำหรับแอตทริบิวต์ ระบบจะแสดงข้อผิดพลาดหากระบุค่าอื่น |
string_dict
Attribute attr.string_dict(allow_empty=True, *, default={}, doc='', mandatory=False)
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
allow_empty
|
default = True True if the attribute can be empty. |
default
|
default = {} ค่าเริ่มต้นที่จะใช้หากไม่มีการระบุค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ |
doc
|
default = '' คำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ |
mandatory
|
default = False หากเป็นจริง จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
|
string_list
Attribute attr.string_list(mandatory=False, allow_empty=True, *, default=[], doc='')
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
mandatory
|
default = False หากเป็นจริง จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
|
allow_empty
|
default = True True if the attribute can be empty. |
default
|
sequence of strings; or NativeComputedDefault;
default = []ค่าเริ่มต้นที่จะใช้หากไม่มีการระบุค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ |
doc
|
default = '' คำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ |
string_list_dict
Attribute attr.string_list_dict(allow_empty=True, *, default={}, doc='', mandatory=False)
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
allow_empty
|
default = True True if the attribute can be empty. |
default
|
default = {} ค่าเริ่มต้นที่จะใช้หากไม่มีการระบุค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ |
doc
|
default = '' คำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้ |
mandatory
|
default = False หากเป็นจริง จะต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
|