แอตทริบิวต์

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

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

สมาชิก

บูลีน

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

สร้างสคีมาสำหรับแอตทริบิวต์จำนวนเต็ม ค่าต้องอยู่ในช่วง 32 บิตที่มีการลงนาม แอตทริบิวต์ 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)

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
mandatory ค่าเริ่มต้นคือ False
หากเป็นจริง คุณต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
allow_empty ค่าเริ่มต้นคือ True
True หากแอตทริบิวต์ว่างได้
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=[])

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

แอตทริบิวต์นี้มีค่า 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 ค่าเริ่มต้นคือ False
True หากต้องเรียกใช้ทรัพยากร Dependency ซึ่งหมายความว่าป้ายกำกับต้องอ้างอิงถึงไฟล์ที่เรียกใช้งานได้ หรือกฎที่ส่งออกไฟล์ที่เรียกใช้งานได้ เข้าถึงป้ายกำกับด้วย ctx.executable.<attribute_name>
allow_files bool หรือ sequence ของ string หรือ None ค่าเริ่มต้นคือ None
อนุญาตเป้าหมาย File หรือไม่ อาจเป็น True, False (ค่าเริ่มต้น) หรือรายการนามสกุลไฟล์ที่อนุญาต (เช่น [".cc", ".cpp"])
allow_single_file ค่าเริ่มต้นคือ None
ซึ่งคล้ายกับ allow_files โดยมีข้อจำกัดว่าป้ายกำกับต้องสอดคล้องกับไฟล์เดียว เข้าถึงได้ผ่าน ctx.file.<attribute_name>
mandatory ค่าเริ่มต้นคือ False
หากเป็นจริง คุณต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)
providers ค่าเริ่มต้นคือ []
ผู้ให้บริการที่ต้องระบุโดยการอ้างอิงใดๆ ที่ปรากฏในแอตทริบิวต์นี้

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

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 ลำดับของ Aspects ค่าเริ่มต้นคือ []
Aspect ที่ควรใช้กับทรัพยากร Dependency หรือทรัพยากร Dependency ที่ระบุโดยแอตทริบิวต์นี้

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 ค่าเริ่มต้นคือ True
True หากแอตทริบิวต์ว่างได้
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 ค่าเริ่มต้นคือ []
ผู้ให้บริการที่ต้องระบุโดยการอ้างอิงใดๆ ที่ปรากฏในแอตทริบิวต์นี้

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

รูปแบบของอาร์กิวเมนต์นี้คือลิสต์ของลิสต์ของผู้ให้บริการ ซึ่งเป็นออบเจ็กต์ *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 ลำดับของ Aspects ค่าเริ่มต้นคือ []
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 ค่าเริ่มต้นคือ True
True หากแอตทริบิวต์ว่างได้
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 ค่าเริ่มต้นคือ True
True หากแอตทริบิวต์ว่างได้
default ค่าเริ่มต้นคือ {}
ค่าเริ่มต้นที่จะใช้หากไม่มีค่าสำหรับแอตทริบิวต์นี้เมื่อสร้างอินสแตนซ์ของกฎ
doc สตริง หรือ None; ค่าเริ่มต้นคือ None
คำอธิบายของแอตทริบิวต์ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้
mandatory ค่าเริ่มต้นคือ False
หากเป็นจริง คุณต้องระบุค่าอย่างชัดเจน (แม้ว่าจะมี default ก็ตาม)

string_list

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

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

พารามิเตอร์

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

string_list_dict

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

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

พารามิเตอร์

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