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