แอตทริบิวต์

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

int

Attribute attr.int(default=0, doc=None, mandatory=False, values=[])

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

พารามิเตอร์

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

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 sequence ของ ints; ค่าเริ่มต้นคือ []
ค่าเริ่มต้นที่จะใช้ถ้าไม่มีการกำหนดค่าสำหรับแอตทริบิวต์นี้เมื่อเริ่มต้นกฎ
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=[])

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

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

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

นอกจากไฟล์ซอร์สธรรมดาแล้ว แอตทริบิวต์ประเภทนี้มักใช้เพื่ออ้างถึงเครื่องมือ เช่น คอมไพเลอร์ เครื่องมือดังกล่าวถือว่าเป็นทรัพยากร Dependency เช่นเดียวกับไฟล์ต้นฉบับ หากไม่ต้องการให้ผู้ใช้ระบุป้ายกำกับของเครื่องมือทุกครั้งที่ใช้กฎในไฟล์ BUILD คุณสามารถฮาร์ดโค้ดป้ายกำกับของเครื่องมือ Canonical เป็นค่า 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() แสดงผล (หรือในกรณีของผู้ให้บริการเดิม ให้ใช้ชื่อสตริงของผู้ให้บริการ) รายการดังกล่าวต้องแสดงผู้ให้บริการทั้งหมดที่กล่าวถึงในรายการย่อยอย่างน้อย 1 รายการ เพื่อความสะดวก อาร์กิวเมนต์นี้อาจเป็นรายการผู้ให้บริการระดับเดียว ซึ่งในกรณีนี้จะรวมอยู่ในรายการภายนอกที่มีหนึ่งองค์ประกอบ ไม่ได้กำหนดให้กฎของทรัพยากร Dependency ต้องโฆษณาผู้ให้บริการเหล่านั้นในพารามิเตอร์ provides แต่ก็ถือเป็นแนวทางปฏิบัติแนะนำ

allow_rules sequence ของ strings หรือ None; ค่าเริ่มต้นคือ None
กฎเป้าหมายที่อนุญาต (ชื่อคลาส) เลิกใช้งานแล้ว (เก็บไว้เพื่อความเข้ากันได้เท่านั้น) โปรดใช้ผู้ให้บริการแทน
cfg ค่าเริ่มต้นคือ None
การกำหนดค่าของแอตทริบิวต์ อาจเป็น "exec" ซึ่งบ่งบอกว่ามีการสร้างทรัพยากร Dependency สำหรับ execution platform หรือ "target" ซึ่งบ่งบอกว่าทรัพยากร Dependency สร้างขึ้นสำหรับ target platform ตัวอย่างทั่วไปของความแตกต่างคือเมื่อสร้างแอปบนอุปกรณ์เคลื่อนที่ โดยที่ target platform คือ Android หรือ iOS ขณะที่ execution platform คือ Linux, macOS หรือ Windows พารามิเตอร์นี้จําเป็นหาก executable เป็น True เพื่อป้องกันการสร้างเครื่องมือโฮสต์ในการกําหนดค่าเป้าหมายโดยไม่ตั้งใจ "target" ไม่ส่งผลกระทบใดๆ ต่อความหมาย ดังนั้นอย่าตั้งค่าเมื่อ executable เป็น "เท็จ" นอกจากจะช่วยทำให้เข้าใจเจตนาของคุณได้จริง
aspects sequence ของ Aspect ค่าเริ่มต้นคือ []
รายการที่ควรใช้กับทรัพยากร 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=[])

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

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

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

พารามิเตอร์

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

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

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

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

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

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
allow_empty ค่าเริ่มต้นคือ True
เป็นจริงหากแอตทริบิวต์ว่างเปล่าได้
default sequence ของป้ายกำกับ หรือ function; ค่าเริ่มต้นคือ []
ค่าเริ่มต้นที่จะใช้หากไม่มีการระบุค่าสำหรับแอตทริบิวต์นี้เมื่อเริ่มต้นกฎ ใช้สตริงหรือฟังก์ชัน 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 sequence ของ strings หรือ None; ค่าเริ่มต้นคือ None
กฎเป้าหมายที่อนุญาต (ชื่อคลาส) การตั้งค่านี้เลิกใช้งานแล้ว (เก็บไว้เพื่อใช้งานร่วมกันได้เท่านั้น) ให้ใช้ผู้ให้บริการแทน
providers ค่าเริ่มต้นคือ []
ผู้ให้บริการที่ต้องระบุโดยข้อกําหนดใดๆ ที่ปรากฏในแอตทริบิวต์นี้

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

flags sequence ของ strings ค่าเริ่มต้นคือ []
เลิกใช้งานแล้ว จะถูกนำออก
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 ที่ระบุโดยแอตทริบิวต์นี้

เอาต์พุต

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

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

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

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

พารามิเตอร์

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

output_list

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

สร้างสคีมาสำหรับแอตทริบิวต์ list-of-outputs

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

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

พารามิเตอร์

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

สตริง

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

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

พารามิเตอร์

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

string_dict

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

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

พารามิเตอร์

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

string_list

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

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

พารามิเตอร์

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

string_list_dict

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

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

พารามิเตอร์

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