สำหรับสมาชิก
- ทั้งหมด
- analysis_test_transition
- ทั้งหมด
- archive_override
- ภาพรวม
- bazel_dep
- bind
- bool
- configuration_field
- depset
- dict
- ไดเรกทอรี
- แจกแจง
- exec_group
- ล้มเหลว
- float
- getattr
- git_override
- hasattr
- แฮช
- int
- len
- list
- local_path_override
- สูงสุด
- นาที
- โมดูล
- module_extension
- multiple_version_override
- พิมพ์
- ผู้ให้บริการ
- ช่วง
- register_execution_platforms()
- register_execution_platforms(dev_dependency)
- register_toolchains()
- register_toolchains(dev_dependency)
- repository_rule
- แก้ไข
- กลับด้าน
- กฎ
- เลือก
- single_version_override
- จัดเรียง
- str
- tag_class
- tuple
- ประเภท
- use_extension
- use_repo
- ระดับการเข้าถึง
- พื้นที่ทำงาน
- zip
ทั้งหมด
bool all(elements)แสดงผลเป็น "จริง" หากองค์ประกอบทั้งหมดประเมินเป็น "จริง" หรือหากคอลเล็กชันว่างเปล่า ระบบจะแปลงองค์ประกอบเป็นบูลีนโดยใช้ฟังก์ชัน bool
all(["hello", 3, True]) == True all([-1, 0, 1]) == False
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
elements
|
ต้องระบุ สตริงหรือคอลเล็กชันขององค์ประกอบ |
analysis_test_transition
transition analysis_test_transition(settings)
สร้างการเปลี่ยนการกำหนดค่าเพื่อนำไปใช้ในทรัพยากร Dependency ของกฎการทดสอบการวิเคราะห์ การเปลี่ยนนี้ใช้ได้กับแอตทริบิวต์ของกฎที่มี analysis_test = True
เท่านั้น กฎดังกล่าวมีข้อจำกัดในความสามารถ (เช่น ขนาดแผนผังทรัพยากร Dependency มีจำกัด) ดังนั้นการเปลี่ยนที่สร้างขึ้นโดยใช้ฟังก์ชันนี้จึงมีข้อจำกัดในขอบเขตที่เป็นไปได้เมื่อเทียบกับการเปลี่ยนที่สร้างขึ้นโดยใช้การเปลี่ยน
ฟังก์ชันนี้ออกแบบมาเพื่อช่วยอำนวยความสะดวกให้กับไลบรารีหลักของกรอบการทดสอบการวิเคราะห์เป็นหลัก ดูแนวทางปฏิบัติแนะนำในเอกสาร (หรือการใช้งาน)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
settings
|
ต้องระบุ พจนานุกรมที่มีข้อมูลเกี่ยวกับการกำหนดค่าซึ่งควรตั้งค่าเมื่อการเปลี่ยนการกำหนดค่านี้ คีย์ ได้แก่ ป้ายกำกับการตั้งค่าและค่าต่างๆ คือค่าใหม่หลังการเปลี่ยน ส่วนการตั้งค่าอื่นๆ ทั้งหมดจะไม่มีการเปลี่ยนแปลง ใช้ตัวเลือกนี้เพื่อประกาศการตั้งค่ากำหนดเฉพาะที่ต้องตั้งค่าการทดสอบการวิเคราะห์เพื่อให้ผ่าน |
อะไรก็ได้
bool any(elements)แสดงค่า "จริง" หากมีอย่างน้อย 1 องค์ประกอบประเมินได้เป็น "จริง" ระบบจะแปลงองค์ประกอบเป็นบูลีนโดยใช้ฟังก์ชัน bool
any([-1, 0, 1]) == True any([False, 0, ""]) == False
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
elements
|
ต้องระบุ สตริงหรือคอลเล็กชันขององค์ประกอบ |
archive_override
None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)ระบุว่าทรัพยากร Dependency นี้ควรมาจากไฟล์ที่เก็บถาวร (zip, gzip เป็นต้น) ที่ตำแหน่งที่เฉพาะเจาะจง ไม่ใช่จากรีจิสทรี คำสั่งนี้มีผลในโมดูลรูทเท่านั้น กล่าวคือ หากคนอื่นใช้โมดูลเป็นทรัพยากร Dependency ก็จะไม่มีผลใดๆ การลบล้างของโมดูลนั้นๆ
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
module_name
|
ต้องระบุ ชื่อของทรัพยากร Dependency ของโมดูล Bazel ที่จะนำไปใช้กับการลบล้างนี้ |
urls
|
string; or Iterable of strings
ต้องระบุURL ของที่เก็บถาวรอาจเป็น URL http(s):// หรือ file:// |
integrity
|
default = '' checksum ที่คาดไว้ของไฟล์ที่เก็บถาวรในรูปแบบ Subresource Integrity |
strip_prefix
|
default = '' คำนำหน้าไดเรกทอรีเพื่อตัดออกจากไฟล์ที่ดึงมา |
patches
|
Iterable of strings ;
default = []รายการป้ายกำกับที่ชี้ไปยังไฟล์แพตช์ที่จะใช้กับโมดูลนี้ ไฟล์แพตช์ต้องอยู่ในโครงสร้างแหล่งที่มาของโปรเจ็กต์ระดับบนสุด โดยจะใช้ตามลําดับรายการ |
patch_cmds
|
Iterable of strings ;
ค่าเริ่มต้น = []ลำดับของคำสั่ง Bash ที่จะนำไปใช้ใน Linux/Macos หลังจากใช้แพตช์แล้ว |
patch_strip
|
default = 0 เหมือนกับอาร์กิวเมนต์ --strip ของแพตช์ Unix |
เฉพาะด้าน
Aspect aspect(implementation, attr_aspects=[], attrs=None, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None)สร้างมุมมองใหม่ ผลลัพธ์ของฟังก์ชันนี้ต้องจัดเก็บไว้ในค่าส่วนกลาง โปรดดูรายละเอียดเพิ่มเติมในข้อมูลเบื้องต้นเกี่ยวกับ Aspects
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
implementation
|
ต้องระบุ ฟังก์ชัน Starlark ที่นำด้านนี้ไปใช้ โดยมีพารามิเตอร์เพียง 2 ตัว ได้แก่ เป้าหมาย (เป้าหมายที่ใช้ด้านดังกล่าว) และ ctx (บริบทของกฎที่ใช้สร้างเป้าหมาย) แอตทริบิวต์ของเป้าหมายจะพร้อมใช้งานผ่านช่อง ctx.rule ฟังก์ชันนี้จะได้รับการประเมินในระหว่างขั้นตอนการวิเคราะห์สำหรับการใช้แต่ละด้านกับเป้าหมาย
|
attr_aspects
|
sequence of strings ;
ค่าเริ่มต้น = []รายการชื่อแอตทริบิวต์ องค์ประกอบจะกระจายไปพร้อมกับทรัพยากร Dependency ที่ระบุในแอตทริบิวต์ของเป้าหมายที่ใช้ชื่อเหล่านี้ ค่าทั่วไปในที่นี้ได้แก่ deps และ exports รายการอาจมีสตริง "*" เดียวเพื่อเผยแพร่ไปพร้อมกับทรัพยากร Dependency ทั้งหมดของเป้าหมาย
|
attrs
|
dict; or None ;
default = ไม่มีพจนานุกรมประกาศแอตทริบิวต์ทั้งหมดของมุมมองนั้นๆ โดยจะจับคู่จากชื่อแอตทริบิวต์กับออบเจ็กต์แอตทริบิวต์ เช่น "attr.label" หรือ "attr.string" (ดูโมดูล attr) แอตทริบิวต์ของแอตทริบิวต์พร้อมใช้งานกับฟังก์ชันการใช้งานเป็นช่องของพารามิเตอร์ ctx แอตทริบิวต์โดยนัยที่ขึ้นต้นด้วย แอตทริบิวต์ที่ชัดแจ้งต้องมีประเภท |
required_providers
|
ค่าเริ่มต้น = [] แอตทริบิวต์นี้อนุญาตให้ฟีเจอร์นี้จำกัดการเผยแพร่ให้เฉพาะเป้าหมายที่มีกฎที่โฆษณาผู้ให้บริการที่จำเป็นเท่านั้น ค่าต้องเป็นรายการที่มีผู้ให้บริการแต่ละรายหรือรายชื่อผู้ให้บริการอย่างใดอย่างหนึ่ง แต่ไม่ใช่ทั้ง 2 อย่าง ตัวอย่างเช่น [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] เป็นค่าที่ถูกต้อง แต่ [FooInfo, BarInfo, [BazInfo, QuxInfo]] เป็นค่าที่ไม่ถูกต้องระบบจะแปลงรายชื่อผู้ให้บริการที่ไม่ได้ซ้อนอยู่เป็นรายชื่อที่มีรายชื่อผู้ให้บริการ 1 รายโดยอัตโนมัติ นั่นคือ หากต้องการให้กฎ (เช่น |
required_aspect_providers
|
ค่าเริ่มต้น = [] แอตทริบิวต์นี้ช่วยให้ด้านนี้ตรวจสอบด้านอื่นๆ ได้ ค่าต้องเป็นรายการที่มีผู้ให้บริการแต่ละรายหรือรายชื่อผู้ให้บริการอย่างใดอย่างหนึ่ง แต่ไม่ใช่ทั้ง 2 อย่าง ตัวอย่างเช่น [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] เป็นค่าที่ถูกต้อง แต่ [FooInfo, BarInfo, [BazInfo, QuxInfo]] เป็นค่าที่ไม่ถูกต้องระบบจะแปลงรายชื่อผู้ให้บริการที่ไม่ได้ซ้อนอยู่เป็นรายชื่อที่มีรายชื่อผู้ให้บริการ 1 รายโดยอัตโนมัติ นั่นคือ หากต้องการแสดงอีกมุมมองหนึ่ง (เช่น |
provides
|
default = [] รายชื่อผู้ให้บริการที่ฟังก์ชันการใช้งานต้องแสดงผล หากฟังก์ชันการใช้งานละเว้นผู้ให้บริการประเภทใดก็ตามที่ระบุไว้ที่นี่ออกจากค่าที่แสดงผลจะเกิดข้อผิดพลาด อย่างไรก็ตาม ฟังก์ชันการใช้งานอาจแสดงผลผู้ให้บริการเพิ่มเติมที่ไม่ได้ระบุไว้ที่นี่ องค์ประกอบแต่ละรายการของรายการคือออบเจ็กต์ |
requires
|
sequence of Aspects ;
ค่าเริ่มต้น = []รายการด้านที่ต้องแสดงก่อนการแสดงผลนี้ |
fragments
|
sequence of strings ;
ค่าเริ่มต้น = []รายการชื่อของ Fragment การกำหนดค่าที่องค์ประกอบนั้นๆ ต้องใช้ในการกำหนดค่าเป้าหมาย |
host_fragments
|
sequence of strings ;
ค่าเริ่มต้น = []รายการชื่อของส่วนการกำหนดค่าที่องค์ประกอบนั้นๆ ต้องใช้ในการกำหนดค่าโฮสต์ |
toolchains
|
sequence ;
ค่าเริ่มต้น = []หากมีการตั้งค่า ชุดเครื่องมือที่กฎนี้กำหนดให้ใช้ รายการนี้อาจมีออบเจ็กต์ String, Label หรือ StarlarkToolchainTypeApi รวมกันใดก็ได้ คุณจะพบเครื่องมือเชนโดยการตรวจสอบแพลตฟอร์มปัจจุบัน และมีอยู่ในการติดตั้งใช้งานกฎผ่าน ctx.toolchain
|
incompatible_use_toolchain_transition
|
ค่าเริ่มต้น = เท็จ เลิกใช้งานแล้ว ไม่ได้ใช้งานแล้ว และควรนำออก |
doc
|
default = '' คําอธิบายของด้านที่แยกได้ด้วยเครื่องมือสร้างเอกสาร |
apply_to_generating_rules
|
default = False หากเป็น "จริง" ระบบจะใช้ลักษณะนี้กับไฟล์เอาต์พุตกับกฎการสร้างไฟล์เอาต์พุตแทน ตัวอย่างเช่น สมมติว่าการแสดงผลเผยแพร่ผ่านแอตทริบิวต์ `deps` และมีการนำไปใช้กับเป้าหมายเป็น `alpha` ทั่วๆ ไป สมมติ `alpha` มี `deps = [':beta_เอาต์พุต']` โดยที่ `beta_เนื้อหานั้น` เป็นเอาต์พุตที่ประกาศของเป้าหมาย `beta` จะเผยแพร่เฉพาะเป้าหมาย `beta`` เท็จโดยค่าเริ่มต้น |
exec_compatible_with
|
sequence of strings ;
ค่าเริ่มต้น = []รายการข้อจำกัดในแพลตฟอร์มการดำเนินการที่ใช้กับอินสแตนซ์ทั้งหมดของด้านนี้ |
exec_groups
|
dict; or None ;
default = ไม่มีคำสั่งแสดงชื่อกลุ่มการดำเนินการ (สตริง) เป็น exec_group s หากมีการตั้งค่า จะช่วยให้แง่มุมต่างๆ เรียกใช้การดำเนินการบนแพลตฟอร์มการดำเนินการหลายแพลตฟอร์มภายในอินสแตนซ์เดียวได้ โปรดดูข้อมูลเพิ่มเติมในเอกสารเกี่ยวกับกลุ่มการดำเนินการ
|
bazel_dep
None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)ประกาศทรัพยากร Dependency โดยตรงของโมดูล Bazel อื่น
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
name
|
ต้องระบุ ชื่อของโมดูลที่จะเพิ่มเป็นทรัพยากร Dependency โดยตรง |
version
|
default = '' เวอร์ชันของโมดูลที่จะเพิ่มเป็นทรัพยากร Dependency โดยตรง |
max_compatibility_level
|
default = -1compatibility_level สูงสุดที่รองรับสำหรับโมดูลที่จะเพิ่มเป็นทรัพยากร Dependency โดยตรง เวอร์ชันของโมดูลหมายถึงระดับความเข้ากันได้ต่ำสุดที่รองรับ รวมถึงค่าสูงสุดหากไม่ได้ระบุแอตทริบิวต์นี้
|
repo_name
|
default = '' ชื่อของที่เก็บภายนอกที่แสดงถึงทรัพยากร Dependency นี้ ซึ่งจะเป็นชื่อเริ่มต้นของโมดูล |
dev_dependency
|
default = False หากจริง ระบบจะละเว้นทรัพยากร Dependency นี้ หากโมดูลปัจจุบันไม่ใช่โมดูลรูทหรือเปิดใช้ "--ignore_dev_dependency" |
bind
None bind(name, actual=None)
คำเตือน: ไม่แนะนำให้ใช้ bind()
โปรดดูพิจารณานำการเชื่อมโยงออกสำหรับการอภิปรายประเด็นยาวเกี่ยวกับปัญหาและทางเลือกต่างๆ
กำหนดชื่อแทนให้กับเป้าหมายในแพ็กเกจ //external
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
name
|
ต้องระบุ ป้ายกำกับใต้ "//external" เพื่อใช้เป็นชื่อชื่อแทน |
actual
|
string; or None ; default = ไม่มีป้ายกำกับจริงที่จะใช้เป็นชื่อแทน |
bool
bool bool(x=False)ตัวสร้างสำหรับประเภทบูลีน และแสดงผล
False
หากออบเจ็กต์คือ None
, False
, สตริงว่าง (""
), หมายเลข 0
หรือคอลเล็กชันว่างเปล่า (เช่น ()
, []
) มิเช่นนั้น จะแสดงผล True
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
default = False ตัวแปรที่ต้องการแปลง |
configuration_field
LateBoundDefault configuration_field(fragment, name)อ้างอิงค่าเริ่มต้นของขอบเขตล่าช้าสำหรับแอตทริบิวต์ประเภท label ค่าจะเป็น "late-bound" หากต้องมีการสร้างการกำหนดค่าก่อนกำหนดค่า แอตทริบิวต์ที่ใช้ค่านี้เป็นค่าต้องเป็นแบบส่วนตัว
ตัวอย่างการใช้:
การกำหนดแอตทริบิวต์ของกฎ:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
การเข้าถึงในการใช้งานกฎ:
def _rule_impl(ctx): foo_info = ctx.attr._foo ...
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
fragment
|
ต้องระบุ ชื่อของส่วนย่อยการกำหนดค่าที่มีค่าขอบเขตล่าช้า |
name
|
ต้องระบุ ชื่อของค่าที่รับจากส่วนการกำหนดค่า |
Depset
depset depset(direct=None, order="default", *, transitive=None)สร้าง Depset พารามิเตอร์
direct
คือรายการองค์ประกอบโดยตรงของ depset และพารามิเตอร์ transitive
คือรายการ Depset ที่มีองค์ประกอบกลายเป็นองค์ประกอบโดยอ้อมของ Depset ที่สร้างขึ้น ลำดับที่องค์ประกอบส่งคืนมาเมื่อแปลง Depset เป็นรายการแล้วโดยพารามิเตอร์ order
ดูข้อมูลเพิ่มเติมที่ภาพรวมของ Depset
องค์ประกอบทั้งหมด (โดยตรงและโดยอ้อม) ของ Depset ต้องเป็นประเภทเดียวกันที่ได้มาจากนิพจน์ type(x)
เนื่องจากชุดแบบอิงตามแฮชใช้เพื่อกำจัดข้อมูลที่ซ้ำกันระหว่างการทำซ้ำ องค์ประกอบทั้งหมดของ Depset จึงควรแฮชได้ อย่างไรก็ตาม ในปัจจุบันค่าตัวแปรนี้ยังยังไม่ได้รับการตรวจสอบอย่างสม่ำเสมอในเครื่องมือสร้างทั้งหมด ใช้แฟล็ก --incompatible_always_check_depset_elements เพื่อเปิดใช้การตรวจสอบที่สอดคล้องกัน การตั้งค่านี้จะเป็นลักษณะการทำงานเริ่มต้นในรุ่นต่อๆ ไป ดูปัญหา 10313
นอกจากนี้ องค์ประกอบต่างๆ จะต้องเปลี่ยนแปลงไม่ได้ในปัจจุบัน แม้ว่าข้อจำกัดนี้จะผ่อนปรนขึ้นในอนาคต
ลำดับของ Depset ที่สร้างควรใช้ร่วมกันได้กับลำดับของ Depset ที่ transitive
คําสั่งซื้อ "default"
ใช้ได้กับคําสั่งซื้ออื่นๆ ส่วนคําสั่งซื้ออื่นๆ ทั้งหมดจะใช้งานร่วมกันได้กับตัวเองเท่านั้น
หมายเหตุเกี่ยวกับความเข้ากันได้แบบย้อนหลัง/ไปข้างหน้า ขณะนี้ฟังก์ชันนี้ยอมรับพารามิเตอร์ items
ตามตำแหน่ง พารามิเตอร์นี้เลิกใช้งานแล้วและจะถูกนำออกในอนาคต และหลังจากที่นําออก direct
แล้วจะกลายเป็นพารามิเตอร์ตําแหน่งเดียวของฟังก์ชัน depset
ดังนั้น การโทรทั้ง 2 แบบต่อไปนี้จึงมีความสำคัญและรองรับการใช้งานในอนาคต
depset(['a', 'b'], transitive = [...]) depset(direct = ['a', 'b'], transitive = [...])
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
direct
|
sequence; or None ;
default = ไม่มีรายการองค์ประกอบโดยตรงของดีเซต |
order
|
default = "default" กลยุทธ์การข้ามผ่านสำหรับ Depset ใหม่ ดูค่าที่เป็นไปได้ที่นี่ |
transitive
|
sequence of depsets; or None ;
default = ไม่มีรายการ Depset ที่องค์ประกอบจะกลายเป็นองค์ประกอบทางอ้อมของ Depset |
dict
dict dict(pairs=[], **kwargs)สร้างพจนานุกรมจากอาร์กิวเมนต์ตำแหน่งซึ่งไม่บังคับ และชุดอาร์กิวเมนต์คีย์เวิร์ดที่ไม่บังคับ ในกรณีที่มีการระบุคีย์เดียวกันหลายครั้ง ระบบจะใช้ค่าสุดท้าย การส่งรายการผ่านอาร์กิวเมนต์คำหลักจะถือว่าอยู่หลังรายการที่ระบุผ่านอาร์กิวเมนต์ตำแหน่ง
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
pairs
|
ค่าเริ่มต้น = [] ดิกเตอร์หรือทำซ้ำได้ซึ่งมีองค์ประกอบที่มีความยาว 2 (คีย์ ค่า) |
kwargs
|
ต้องระบุ พจนานุกรมของรายการเพิ่มเติม |
ไดเรกทอรี
list dir(x)แสดงรายการสตริง: ชื่อของแอตทริบิวต์และเมธอดของออบเจ็กต์พารามิเตอร์
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
ต้องระบุ ออบเจ็กต์ที่จะตรวจสอบ |
แจกแจง
list enumerate(list, start=0)แสดงรายการคู่ (Tuple 2 องค์ประกอบ) พร้อมดัชนี (int) และรายการจากลำดับอินพุต
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
list
|
ลำดับอินพุต ที่จำเป็น |
start
|
default = 0 ดัชนีเริ่มต้น |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[], copy_from_rule=False)สร้างกลุ่มการดำเนินการที่ใช้สร้างการดำเนินการสำหรับแพลตฟอร์มการดำเนินการที่เจาะจงในระหว่างการใช้งานกฎ
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
toolchains
|
sequence ;
default = []ชุดเครื่องมือเชนที่กลุ่มการดำเนินการนี้ต้องการ รายการนี้อาจมีออบเจ็กต์ String, Label หรือ StarlarkToolchainTypeApi รวมกันใดก็ได้ |
exec_compatible_with
|
sequence of strings ;
ค่าเริ่มต้น = []รายการข้อจำกัดในแพลตฟอร์มการดำเนินการ |
copy_from_rule
|
ค่าเริ่มต้น = เท็จ หากตั้งค่าเป็น "จริง" กลุ่มการดำเนินการนี้จะรับค่าเครื่องมือเชนและข้อจำกัดของกฎที่มีกลุ่มนี้แนบมาด้วย หากตั้งค่าเป็นสตริงอื่น ระบบจะแสดงข้อผิดพลาด |
ล้มเหลว
None fail(msg=None, attr=None, *args)ทำให้การดำเนินการไม่สำเร็จโดยมีข้อผิดพลาด
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
msg
|
default = ไม่มี เลิกใช้งาน: ใช้อาร์กิวเมนต์ตำแหน่งแทน อาร์กิวเมนต์นี้ทำหน้าที่เป็นอาร์กิวเมนต์ตำแหน่งนำหน้าโดยนัย |
attr
|
string; or None ;
ค่าเริ่มต้น = ไม่มีเลิกใช้งาน ทำให้มีการเพิ่มคำนำหน้าที่ไม่บังคับที่มีสตริงนี้ในข้อความแสดงข้อผิดพลาด |
args
|
ต้องระบุ รายการค่าที่จัดรูปแบบด้วย debugPrint (ซึ่งเทียบเท่ากับ str โดยค่าเริ่มต้น) และเชื่อมด้วยการเว้นวรรคที่ปรากฏในข้อความแสดงข้อผิดพลาด |
float
float float(x=unbound)แสดง x เป็นค่าทศนิยม
- หาก
x
เป็นแบบลอยอยู่แล้วfloat
จะแสดงผลค่าดังกล่าวไม่เปลี่ยนแปลง - หาก
x
เป็นบูลีนfloat
จะแสดงผล 1.0 สำหรับ True และ 0.0 สำหรับ False - ถ้า
x
เป็น intfloat
จะแสดงผลค่าจุดลอยตัวจำกัดที่ใกล้ที่สุดเป็น x หรือแสดงผลข้อผิดพลาดถ้าขนาดมีขนาดใหญ่เกินไป - หาก
x
เป็นสตริง ต้องเป็นค่าลิเทอรัลจุดลอยตัวที่ถูกต้อง หรือเท่ากับ (ไม่คำนึงถึงตัวพิมพ์ใหญ่/เล็ก) สำหรับNaN
,Inf
หรือInfinity
โดยจะนำหน้าด้วยเครื่องหมาย+
หรือ-
ก็ได้
float()
จะแสดงผล 0.0
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
default = unbound ค่าที่ต้องการแปลง |
Getattr
unknown getattr(x, name, default=unbound)แสดงฟิลด์ Struct ของชื่อที่ระบุ หากมี หากไม่ใช่ ระบบจะแสดง
default
(หากระบุ) หรือทำให้เกิดข้อผิดพลาด getattr(x, "foobar")
มีค่าเท่ากับ x.foobar
getattr(ctx.attr, "myattr") getattr(ctx.attr, "myattr", "mydefault")
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
ต้องระบุ โครงสร้างที่มีแอตทริบิวต์ในการเข้าถึง |
name
|
ต้องระบุ ชื่อของแอตทริบิวต์โครงสร้าง |
default
|
default = unbound ค่าเริ่มต้นที่จะแสดงผลในกรณีที่โครงสร้างไม่มีแอตทริบิวต์สําหรับชื่อที่ระบุ |
git_override
None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0)ระบุว่าทรัพยากร Dependency ควรมาจากคอมมิตที่เฉพาะเจาะจงของที่เก็บ Git คำสั่งนี้มีผลในโมดูลรูทเท่านั้น กล่าวคือ หากคนอื่นใช้โมดูลเป็นทรัพยากร Dependency ก็จะไม่มีผลใดๆ การลบล้างของโมดูลนั้นๆ
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
module_name
|
ต้องระบุ ชื่อของทรัพยากร Dependency ของโมดูล Bazel ที่จะนำไปใช้กับการลบล้างนี้ |
remote
|
ต้องระบุ URL ของที่เก็บ Git ระยะไกล |
commit
|
default = '' คอมมิตที่ควรตรวจสอบ |
patches
|
Iterable of strings ;
default = []รายการป้ายกำกับที่ชี้ไปยังไฟล์แพตช์ที่จะใช้กับโมดูลนี้ ไฟล์แพตช์ต้องอยู่ในโครงสร้างแหล่งที่มาของโปรเจ็กต์ระดับบนสุด โดยจะใช้ตามลําดับรายการ |
patch_cmds
|
Iterable of strings ;
ค่าเริ่มต้น = []ลำดับของคำสั่ง Bash ที่จะนำไปใช้ใน Linux/Macos หลังจากใช้แพตช์แล้ว |
patch_strip
|
default = 0 เหมือนกับอาร์กิวเมนต์ --strip ของแพตช์ Unix |
Hasattr
bool hasattr(x, name)แสดงผลเป็น "จริง" หากออบเจ็กต์
x
มีแอตทริบิวต์หรือเมธอดของ name
ที่ระบุ มิเช่นนั้นจะเป็น "เท็จ" ตัวอย่างเช่นhasattr(ctx.attr, "myattr")
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
ต้องระบุ ออบเจ็กต์ที่จะตรวจสอบ |
name
|
ต้องระบุ ชื่อของแอตทริบิวต์ |
แฮช
int hash(value)แสดงผลค่าแฮชสำหรับสตริง ซึ่งจะคำนวณโดยใช้อัลกอริทึมเดียวกันกับ
String.hashCode()
ของ Java ซึ่งก็คือ s[0] * (31^(n-1)) + s[1] * (31^(n-2)) + ... + s[n-1]ระบบยังไม่รองรับการแฮชค่านอกเหนือจากสตริงในขณะนี้
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
value
|
ต้องระบุ ค่าสตริงที่จะแฮช |
int
int int(x, base=unbound)แสดง x เป็นค่า int
- หาก
x
เป็น int อยู่แล้วint
จะแสดงผลค่าที่ไม่เปลี่ยนแปลง - หาก
x
เป็นบูลีนint
จะแสดงผล 1 สำหรับ "จริง" และ 0 สำหรับ "เท็จ" - หาก
x
เป็นสตริง ต้องอยู่ในรูปแบบ<sign><prefix><digits>
<sign>
เป็น"+"
,"-"
หรือว่างเปล่า (ตีความเป็นบวก)<digits>
คือตัวเลขที่เรียงตามลำดับตั้งแต่ 0 ถึงbase
- 1 โดยตัวอักษร a-z (หรือเทียบเท่า A-Z) ใช้เป็นตัวเลขตั้งแต่ 10-35 ในกรณีที่base
คือ 2/8/16<prefix>
เป็นตัวเลือกที่ไม่บังคับและอาจจะเป็น 0b/0o/0x (หรือเทียบเท่า 0B/0O/0X) ตามลำดับ หากbase
เป็นค่าอื่นๆ นอกเหนือจากฐานเหล่านี้หรือค่าพิเศษ 0 คำนำหน้าจะต้องว่างเปล่า ในกรณีที่base
เป็น 0 ระบบจะตีความสตริงว่าเป็นลิเทอรัลที่เป็นจำนวนเต็ม ตามที่เลือกค่าฐาน 2/8/10/16 อย่างใดอย่างหนึ่งโดยขึ้นอยู่กับคำนำหน้าว่ามีการใช้ค่าใด หากbase
เป็น 0 จะไม่มีการใช้คำนำหน้าและมีมากกว่า 1 หลัก ตัวเลขนำหน้าจะเป็น 0 ไม่ได้ เพื่อหลีกเลี่ยงความสับสนระหว่างเลขฐานแปดและทศนิยม ขนาดของจำนวนที่แสดงโดยสตริงต้องอยู่ภายในช่วงที่อนุญาตสำหรับชนิด int - หาก
x
เป็นแบบลอยint
จะแสดงผลค่าจำนวนเต็มของแบบลอยโดยปัดเศษไปที่ 0 หาก x เป็นค่าจำกัด (NaN หรือค่าอนันต์) ระบบจะแสดงข้อผิดพลาด
x
เป็นประเภทอื่น หรือหากค่าเป็นสตริงที่ไม่ตรงกับรูปแบบข้างต้น ฟังก์ชันนี้แตกต่างจากฟังก์ชัน int
ของ Python ตรงที่ไม่อนุญาตให้ใช้อาร์กิวเมนต์ 0 และไม่อนุญาตให้มีช่องว่างที่ไม่จำเป็นสำหรับอาร์กิวเมนต์สตริงตัวอย่าง:
int("123") == 123 int("-123") == -123 int("+123") == 123 int("FF", 16) == 255 int("0xFF", 16) == 255 int("10", 0) == 10 int("-0x10", 0) == -16 int("-0x10", 0) == -16 int("123.456") == 123
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
ต้องระบุ สตริงที่จะแปลง |
base
|
default = unbound ฐานที่ใช้ตีความค่าสตริง มีค่าเริ่มต้นเป็น 10 ต้องอยู่ระหว่าง 2 ถึง 36 (รวม) หรือ 0 เพื่อตรวจหาฐานเสมือนว่า x เป็นจำนวนลิเทอรัลที่เป็นจำนวนเต็ม ต้องไม่ระบุพารามิเตอร์นี้หากค่าไม่ใช่สตริง
|
len
int len(x)แสดงผลความยาวของสตริง ลำดับ (เช่น รายการหรือ tuple), ดิกเตอร์ หรือซ้ำได้อื่นๆ
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
ต้องระบุ ค่าที่มีความยาวที่จะรายงาน |
ลิสต์
list list(x=[])แสดงรายการใหม่ที่มีองค์ประกอบเดียวกันกับค่าที่ซ้ำกันได้
list([1, 2]) == [1, 2] list((2, 3, 2)) == [2, 3, 2] list({5: "a", 2: "b", 4: "c"}) == [5, 2, 4]
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
ค่าเริ่มต้น = [] ออบเจ็กต์ที่จะแปลง |
local_path_override
None local_path_override(module_name, path)ระบุว่าทรัพยากร Dependency ควรมาจากไดเรกทอรีบางรายการบนดิสก์ในเครื่อง คำสั่งนี้มีผลในโมดูลรูทเท่านั้น กล่าวคือ หากคนอื่นใช้โมดูลเป็นทรัพยากร Dependency ก็จะไม่มีผลใดๆ การลบล้างของโมดูลนั้นๆ
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
module_name
|
ต้องระบุ ชื่อของทรัพยากร Dependency ของโมดูล Bazel ที่จะนำไปใช้กับการลบล้างนี้ |
path
|
ต้องระบุ เส้นทางไปยังไดเรกทอรีที่มีโมดูลนี้ |
สูงสุด
unknown max(*args)แสดงผลหนึ่งในอาร์กิวเมนต์ที่ระบุทั้งหมด หากระบุอาร์กิวเมนต์เพียงรายการเดียว อาร์กิวเมนต์นั้นต้องเป็นแบบทำซ้ำไม่ได้ ซึ่งจะเป็นข้อผิดพลาดหากองค์ประกอบเปรียบเทียบไม่ได้ (เช่น int ที่มีสตริง) หรือไม่ได้ระบุอาร์กิวเมนต์
max(2, 5, 4) == 5 max([5, 6, 3]) == 6
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
args
|
ต้องระบุ องค์ประกอบที่ต้องตรวจสอบ |
นาที
unknown min(*args)แสดงผลอาร์กิวเมนต์ที่เล็กที่สุดในอาร์กิวเมนต์ที่ระบุทั้งหมด หากระบุอาร์กิวเมนต์เพียงรายการเดียว อาร์กิวเมนต์นั้นต้องเป็นอาร์กิวเมนต์ที่ทำซ้ำไม่ได้ ซึ่งเป็นข้อผิดพลาดหากองค์ประกอบไม่สามารถเปรียบเทียบกันได้ (เช่น int ที่มีสตริง) หรือหากไม่มีการให้อาร์กิวเมนต์
min(2, 5, 4) == 2 min([5, 6, 3]) == 3
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
args
|
ต้องระบุ องค์ประกอบที่ต้องตรวจสอบ |
โมดูล
None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])ประกาศคุณสมบัติบางอย่างของโมดูล Bazel ที่แสดงโดยที่เก็บ Bazel ปัจจุบัน พร็อพเพอร์ตี้เหล่านี้เป็นข้อมูลเมตาที่สำคัญของโมดูล (เช่น ชื่อและเวอร์ชัน) หรือที่ส่งผลต่อลักษณะการทำงานของโมดูลปัจจุบันและส่วนที่เกี่ยวข้อง
ควรเรียกใช้มากที่สุด 1 ครั้ง โดยละเว้นได้ต่อเมื่อโมดูลนี้เป็นโมดูลรูทเท่านั้น (เช่น ในกรณีที่โมดูลอื่นไม่ได้อ้างอิงกับโมดูลอื่น)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
name
|
default = '' ชื่อของโมดูล ละเว้นได้ต่อเมื่อโมดูลนี้เป็นโมดูลรูทเท่านั้น (เช่น ในกรณีที่โมดูลอื่นไม่ได้อ้างอิงโดยโมดูลอื่น) ชื่อโมดูลที่ถูกต้องต้องมีลักษณะดังนี้ 1) มีเฉพาะตัวอักษรพิมพ์เล็ก (a-z) ตัวเลข (0-9) จุด (.) ขีดกลาง (-) และขีดล่าง (_); 2) ขึ้นต้นด้วยตัวอักษรพิมพ์เล็ก 3) ลงท้ายด้วยตัวอักษรพิมพ์เล็กหรือตัวเลข |
version
|
default = '' เวอร์ชันของโมดูล ละเว้นได้ต่อเมื่อโมดูลนี้เป็นโมดูลรูทเท่านั้น (เช่น ในกรณีที่โมดูลอื่นไม่ได้อ้างอิงโดยโมดูลอื่น) |
compatibility_level
|
default = 0 ระดับความเข้ากันได้ของโมดูล ซึ่งควรเปลี่ยนทุกครั้งที่มีการทำการเปลี่ยนแปลงที่สำคัญซึ่งใช้ร่วมกันไม่ได้ โดยพื้นฐานแล้ว นี่คือ "เวอร์ชันหลัก" ของโมดูลในแง่ของ SemVer ยกเว้นว่าโมดูลนี้ไม่ได้ฝังอยู่ในสตริงเวอร์ชัน แต่มีเป็นช่องแยกต่างหาก โมดูลที่มีระดับความเข้ากันได้แตกต่างกันจะทำงานร่วมกันกับความละเอียดของเวอร์ชันเหมือนเป็นโมดูลที่มีชื่อต่างกัน แต่กราฟการอ้างอิงสุดท้ายไม่สามารถมีโมดูลหลายรายการที่มีชื่อเดียวกันแต่มีระดับความเข้ากันได้แตกต่างกัน (ยกเว้นกรณีที่ multiple_version_override มีผลอยู่ โปรดดูรายละเอียดเพิ่มเติม)
|
repo_name
|
default = '' ชื่อของที่เก็บที่แสดงถึงโมดูลนี้ตามที่ตัวโมดูลมองเห็นได้ โดยค่าเริ่มต้น ชื่อของที่เก็บคือชื่อของโมดูล ซึ่งอาจระบุเพื่อให้ย้ายข้อมูลได้ง่ายขึ้นสำหรับโปรเจ็กต์ที่ใช้ชื่อที่เก็บซึ่งต่างจากชื่อโมดูล |
bazel_compatibility
|
Iterable of strings ;
ค่าเริ่มต้น = []รายการเวอร์ชัน Bazel ที่อนุญาตให้ผู้ใช้ประกาศว่าเวอร์ชัน Bazel ใดเข้ากันได้กับโมดูลนี้ โดยจะไม่ส่งผลต่อการแก้ปัญหาทรัพยากร Dependency แต่ bzlmod จะใช้ข้อมูลนี้เพื่อตรวจสอบว่า Bazel เวอร์ชันปัจจุบันของคุณใช้งานร่วมกันได้หรือไม่ รูปแบบของค่านี้เป็นสตริงของค่าข้อจำกัดบางค่าโดยคั่นด้วยคอมมา ระบบรองรับข้อจำกัด 3 ประการ ได้แก่ <=X.X.X: เวอร์ชัน Bazel ต้องเท่ากับหรือเก่ากว่า X.X.X โดยจะใช้เมื่อมีการเปลี่ยนแปลงที่ทราบว่าเข้ากันไม่ได้ในเวอร์ชันใหม่ >=X.X.X: เวอร์ชัน Bazel ต้องเท่ากับหรือใหม่กว่า X.X.X ใช้เมื่อคุณขึ้นอยู่กับฟีเจอร์บางอย่างที่ใช้ได้ตั้งแต่ X.X.X -X.X.X: ไม่สามารถใช้ Bazel เวอร์ชัน X.X.X ได้ ใช้เมื่อมีข้อบกพร่องใน X.X.X ที่รบกวนคุณ แต่ได้รับการแก้ไขในเวอร์ชันใหม่ๆ แล้ว |
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc='', environ=[], os_dependent=False, arch_dependent=False)สร้างส่วนขยายโมดูลใหม่ จัดเก็บไว้ในค่าส่วนกลางเพื่อให้ส่งออกและใช้ในไฟล์ MODULE.bazel ได้
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
implementation
|
จำเป็น ฟังก์ชันที่ใช้ส่วนขยายโมดูลนี้ ต้องใช้พารามิเตอร์เดียว module_ctx ระบบจะเรียกใช้ฟังก์ชันนี้ครั้งเดียวเมื่อเริ่มต้นบิลด์เพื่อกำหนดชุดของที่เก็บที่ใช้ได้
|
tag_classes
|
default = {} พจนานุกรมสำหรับประกาศคลาสแท็กทั้งหมดที่ส่วนขยายใช้ ซึ่งแมปจากชื่อคลาสแท็กกับออบเจ็กต์ tag_class
|
doc
|
default = '' คำอธิบายของส่วนขยายโมดูลที่เครื่องมือสร้างเอกสารดึงได้ |
environ
|
sequence of strings ;
default = []แสดงรายการตัวแปรสภาพแวดล้อมที่ส่วนขยายโมดูลนี้อ้างอิงอยู่ หากตัวแปรสภาพแวดล้อมในรายการมีการเปลี่ยนแปลง ส่วนขยายจะได้รับการประเมินอีกครั้ง |
os_dependent
|
default = False ระบุว่าส่วนขยายนี้ขึ้นอยู่กับระบบปฏิบัติการหรือไม่ |
arch_dependent
|
default = False ระบุว่าส่วนขยายนี้ขึ้นอยู่กับสถาปัตยกรรมหรือไม่ |
multiple_version_override
None multiple_version_override(module_name, versions, registry='')ระบุว่าทรัพยากร Dependency ควรมาจากรีจิสทรีอยู่ แต่ควรอนุญาตให้มีหลายเวอร์ชันร่วมกันได้ ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบ คำสั่งนี้มีผลในโมดูลรูทเท่านั้น กล่าวคือ หากคนอื่นใช้โมดูลเป็นทรัพยากร Dependency ก็จะไม่มีผลใดๆ การลบล้างของโมดูลนั้นๆ
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
module_name
|
ต้องระบุ ชื่อของทรัพยากร Dependency ของโมดูล Bazel ที่จะนำไปใช้กับการลบล้างนี้ |
versions
|
Iterable of strings
ต้องระบุระบุเวอร์ชันที่อนุญาตให้ใช้งานร่วมกันอย่างชัดแจ้ง เวอร์ชันเหล่านี้ต้องอยู่ในการเลือกกราฟการอ้างอิงล่วงหน้าอยู่แล้ว ระบบจะ "อัปเกรด" ทรัพยากร Dependency ของโมดูลนี้เป็นเวอร์ชันที่อนุญาตที่สูงกว่าเวอร์ชันใกล้เคียงที่สุดในระดับความเข้ากันได้เดียวกัน ในขณะที่ทรัพยากร Dependency ที่มีเวอร์ชันสูงกว่าเวอร์ชันที่อนุญาตในระดับความเข้ากันได้เดียวกันจะทำให้เกิดข้อผิดพลาด |
registry
|
default = '' ลบล้างรีจิสทรีสำหรับโมดูลนี้ แทนที่จะค้นหาโมดูลนี้จากรายการรีจิสทรีเริ่มต้น ควรใช้รีจิสทรีที่ระบุ |
พิมพ์
None print(sep=" ", *args)พิมพ์
args
เป็นเอาต์พุตการแก้ไขข้อบกพร่อง ซึ่งจะขึ้นต้นด้วยสตริง "DEBUG"
และตำแหน่ง (ไฟล์และหมายเลขบรรทัด) ของการเรียกนี้ ไม่มีการกำหนดวิธีแปลงอาร์กิวเมนต์เป็นสตริงอย่างแม่นยำ และอาจมีการเปลี่ยนแปลงได้ตลอดเวลา โดยเฉพาะอย่างยิ่ง อาจแตกต่างจาก (และมีรายละเอียดมากกว่า) การจัดรูปแบบที่ str()
และ repr()
ทำไม่แนะนำให้ใช้ print
ในโค้ดเวอร์ชันที่ใช้งานจริงเนื่องจากสร้างสแปมสำหรับผู้ใช้ สำหรับการเลิกใช้งาน โปรดระบุข้อผิดพลาดถาวรโดยใช้ fail()
เมื่อเป็นไปได้
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
sep
|
default = " " สตริงตัวคั่นระหว่างออบเจ็กต์ โดยค่าเริ่มต้นคือช่องว่าง (" ") |
args
|
ต้องระบุ ออบเจ็กต์ที่จะพิมพ์ |
ผู้ให้ทุน
unknown provider(doc='', *, fields=None, init=None)กำหนดสัญลักษณ์ผู้ให้บริการ อาจมีการสร้างอินสแตนซ์ของผู้ให้บริการโดยการเรียกใช้ หรือใช้เป็นคีย์ในการเรียกข้อมูลอินสแตนซ์ของผู้ให้บริการนั้นจากเป้าหมายโดยตรง ตัวอย่าง:
MyInfo = provider() ... def _my_library_impl(ctx): ... my_info = MyInfo(x = 2, y = 3) # my_info.x == 2 # my_info.y == 3 ...
ดูกฎ (ผู้ให้บริการ) เพื่อดูคำแนะนำที่ครอบคลุมเกี่ยวกับวิธีใช้ผู้ให้บริการ
แสดงผลค่าที่เรียกใช้ได้ของ Provider
หากไม่ได้ระบุ init
หากระบุ init
จะแสดงผล Tuple ขององค์ประกอบ 2 รายการคือ ค่าที่สามารถเรียกได้ของ Provider
และค่าที่เรียกใช้ได้ของเครื่องมือสร้าง ดูรายละเอียดได้ที่กฎ (การเริ่มต้นที่กำหนดเองของผู้ให้บริการที่กำหนดเอง) และการสนทนาเกี่ยวกับพารามิเตอร์ init
ด้านล่าง
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
doc
|
default = '' คำอธิบายของผู้ให้บริการที่ดึงข้อมูลได้ด้วยเครื่องมือสร้างเอกสาร |
fields
|
sequence of strings; or dict; or None ;
ค่าเริ่มต้น = ไม่มีหากระบุ จะจำกัดชุดช่องที่อนุญาต ค่าที่เป็นไปได้มีดังนี้
|
init
|
callable; or None ;
default = ไม่มีโค้ดเรียกกลับที่ไม่บังคับสำหรับการประมวลผลล่วงหน้า และตรวจสอบค่าในช่องของผู้ให้บริการในระหว่างการทำอินสแตนซ์ หากระบุ init แล้ว provider() จะแสดงผล Tuple ขององค์ประกอบ 2 รายการ ได้แก่ สัญลักษณ์ผู้ให้บริการปกติและ ตัวสร้างดิบดูรายละเอียดต่อไปนี้อย่างละเอียดได้ที่กฎ (การเริ่มต้นผู้ให้บริการที่กำหนดเอง) สำหรับการสนทนาและกรณีการใช้งานที่เข้าใจง่าย ให้
init การเรียกไปยังสัญลักษณ์ P จะทำหน้าที่เป็นการเรียกฟังก์ชันตัวสร้างเริ่มต้น c กล่าวคือ P(*args, **kwargs) จะแสดงผล c(*args, **kwargs) ตัวอย่างเช่นMyInfo = provider() m = MyInfo(foo = 1)จะทำให้ m เป็นอินสแตนซ์ MyInfo ที่มี m.foo == 1 โดยตรงแต่ในกรณีที่ระบุ
หมายเหตุ: ขั้นตอนข้างต้นบอกเป็นนัยว่าเกิดข้อผิดพลาดหาก ด้วยวิธีนี้ โค้ดเรียกกลับ เมื่อระบุ MyInfo, _new_myinfo = provider(init = ...) |
ช่วง
sequence range(start_or_stop, stop_or_none=None, step=1)สร้างรายการที่ย้ายรายการจาก
start
ไปยัง stop
โดยเพิ่มขึ้น step
หากระบุอาร์กิวเมนต์เดียว รายการจะมีช่วงตั้งแต่ 0 ถึงองค์ประกอบนั้นrange(4) == [0, 1, 2, 3] range(3, 9, 2) == [3, 5, 7] range(3, 0, -1) == [3, 2, 1]
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
start_or_stop
|
ต้องระบุ ค่าขององค์ประกอบเริ่มต้น หากมีการระบุการหยุด หรือค่าของการหยุด และจุดเริ่มต้นจริงจะเป็น 0 |
stop_or_none
|
int; or None ; default = ไม่มีดัชนีที่ไม่บังคับของรายการแรกที่ไม่จะรวมอยู่ในรายการผลลัพธ์ การสร้างรายการจะหยุดก่อนถึง stop
|
step
|
default = 1 ที่เพิ่มขึ้น (ค่าเริ่มต้นคือ 1) ค่านี้อาจเป็นเชิงลบ |
register_execution_platforms()
None register_execution_platforms(*platform_labels)ลงทะเบียนแพลตฟอร์มที่กำหนดไว้แล้วเพื่อให้ Bazel ใช้เป็นแพลตฟอร์มการดำเนินการในระหว่างการแก้ปัญหา Toolchain
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
platform_labels
|
sequence of strings ต้องระบุป้ายกำกับของแพลตฟอร์มที่จะลงทะเบียน |
register_execution_platforms(dev_dependency)
None register_execution_platforms(dev_dependency=False, *platform_labels)ระบุแพลตฟอร์มการดำเนินการที่กำหนดไว้แล้วที่จะลงทะเบียนเมื่อเลือกโมดูลนี้ ควรเป็นรูปแบบเป้าหมายสัมบูรณ์ (เช่น ขึ้นต้นด้วย
@
หรือ //
) โปรดดูข้อมูลเพิ่มเติมที่ความละเอียดของ Toolchain
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
dev_dependency
|
ค่าเริ่มต้น = เท็จ หากเป็น "จริง" ระบบจะไม่ลงทะเบียนแพลตฟอร์มการดำเนินการหากโมดูลปัจจุบันไม่ใช่โมดูลรูทหรือเปิดใช้ "--ignore_dev_dependency" |
platform_labels
|
sequence of strings ต้องระบุป้ายกำกับของแพลตฟอร์มที่จะลงทะเบียน |
register_toolchains()
None register_toolchains(*toolchain_labels)ลงทะเบียนห่วงโซ่เครื่องมือที่กำหนดไว้แล้วเพื่อให้ Bazel ใช้งานได้ในระหว่างการแก้ปัญหาเครื่องมือเชน ดูตัวอย่างของการกำหนดและการลงทะเบียน Toolchain
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
toolchain_labels
|
sequence of strings
ต้องระบุป้ายกำกับของเชนเครื่องมือที่จะลงทะเบียน |
register_toolchains(dev_dependency)
None register_toolchains(dev_dependency=False, *toolchain_labels)ระบุห่วงโซ่เครื่องมือที่กำหนดไว้แล้วที่จะลงทะเบียนเมื่อเลือกโมดูลนี้ ควรเป็นรูปแบบเป้าหมายสัมบูรณ์ (เช่น ขึ้นต้นด้วย
@
หรือ //
) โปรดดูข้อมูลเพิ่มเติมที่ความละเอียดของ Toolchain
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
dev_dependency
|
ค่าเริ่มต้น = เท็จ หากเป็น "จริง" ระบบจะไม่บันทึกเชนเครื่องมือหากโมดูลปัจจุบันไม่ใช่โมดูลรูทหรือเปิดใช้ "--ignore_dev_dependency" |
toolchain_labels
|
sequence of strings
ต้องระบุป้ายกำกับของเชนเครื่องมือที่จะลงทะเบียน |
repository_rule
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')สร้างกฎที่เก็บใหม่ จัดเก็บไว้ในค่าส่วนกลางเพื่อให้โหลดและเรียกใช้จากไฟล์ WORKSPACE
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
implementation
|
จำเป็น ฟังก์ชันที่ใช้กฎนี้ ต้องมีพารามิเตอร์เดียว นั่นคือ repository_ctx ระบบจะเรียกใช้ฟังก์ชันนี้ในระหว่างขั้นตอนการโหลดสำหรับอินสแตนซ์แต่ละรายการของกฎ
|
attrs
|
dict; or None ; ค่าเริ่มต้น = ไม่มีพจนานุกรมสำหรับประกาศแอตทริบิวต์ทั้งหมดของกฎ โดยจะจับคู่จากชื่อแอตทริบิวต์กับออบเจ็กต์แอตทริบิวต์ (ดูโมดูล attr) แอตทริบิวต์ที่ขึ้นต้นด้วย _ จะเป็นแบบส่วนตัวและสามารถใช้เพื่อเพิ่มทรัพยากร Dependency ของป้ายกำกับไปยังไฟล์ (กฎของที่เก็บต้องไม่ขึ้นอยู่กับอาร์ติแฟกต์ที่สร้างขึ้น) มีการเพิ่มแอตทริบิวต์ name โดยนัยและต้องไม่ระบุไว้
|
local
|
ค่าเริ่มต้น = เท็จ ระบุว่ากฎนี้ดึงข้อมูลทุกอย่างจากระบบในเครื่อง และควรประเมินใหม่ทุกครั้งที่ดึงข้อมูล |
environ
|
sequence of strings ;
default = []ระบุรายการตัวแปรสภาพแวดล้อมที่กฎที่เก็บนี้อ้างอิง หากตัวแปรสภาพแวดล้อมในรายการมีการเปลี่ยนแปลง ระบบจะดึงข้อมูลที่เก็บอีกครั้ง |
configure
|
default = False ระบุว่าที่เก็บตรวจสอบระบบเพื่อวัตถุประสงค์ในการกำหนดค่า |
remotable
|
default = False ทดลอง พารามิเตอร์นี้อยู่ในขั้นทดลองและอาจมีการเปลี่ยนแปลงได้ตลอดเวลา โปรดอย่าใช้คำนี้ อาจเปิดใช้เวอร์ชันทดลองได้โดยการตั้งค่า ---experimental_repo_remote_exec เข้ากันได้กับการดำเนินการจากระยะไกล |
doc
|
default = '' คำอธิบายกฎที่เก็บที่เครื่องมือสร้างเอกสารดึงได้ |
แก้ไข
string repr(x)แปลงออบเจ็กต์ใดๆ ให้เป็นตัวแทนสตริง ซึ่งจะเป็นประโยชน์สำหรับการแก้ไขข้อบกพร่อง
repr("ab") == '"ab"'
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
ต้องระบุ ออบเจ็กต์ที่จะแปลง |
กลับด้าน
list reversed(sequence)แสดงผลรายการใหม่ที่ไม่ได้ตรึงไว้ซึ่งมีองค์ประกอบของลำดับที่ทำซ้ำเดิมในลำดับย้อนกลับ
reversed([3, 5, 4]) == [4, 5, 3]
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
sequence
|
ต้องระบุ ลำดับที่ทำซ้ำได้ (เช่น รายการ) ที่จะย้อนกลับ |
กฎ
callable rule(implementation, test=False, attrs=None, outputs=None, executable=False, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc='', *, provides=[], exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, compile_one_filetype=None, name=None)สร้างกฎใหม่ซึ่งสามารถเรียกจากไฟล์ BUILD หรือมาโครเพื่อสร้างเป้าหมาย
ต้องกำหนดกฎให้กับตัวแปรร่วมในไฟล์ .bzl โดยชื่อของตัวแปรร่วมจะเป็นชื่อของกฎ
กฎการทดสอบต้องมีชื่อที่ลงท้ายด้วย _test
ส่วนกฎอื่นๆ ทั้งหมดต้องไม่มีคำต่อท้ายนี้ (ข้อจำกัดนี้มีผลกับกฎเท่านั้น ไม่ใช้กับเป้าหมาย)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
implementation
|
จำเป็น ฟังก์ชัน Starlark ที่ใช้กฎนี้จะต้องมีพารามิเตอร์เดียวเท่านั้น: ctx ระบบจะเรียกใช้ฟังก์ชันนี้ในระหว่างขั้นตอนการวิเคราะห์สำหรับอินสแตนซ์แต่ละรายการของกฎ สามารถเข้าถึงแอตทริบิวต์ที่ผู้ใช้ให้ไว้ ต้องมีการสร้างการดำเนินการเพื่อสร้างเอาต์พุตที่ประกาศทั้งหมด |
test
|
default = False กฎนี้เป็นกฎทดสอบหรือไม่ กล่าวคือ กฎนี้อาจอยู่ภายใต้คําสั่ง blaze test หรือไม่ กฎการทดสอบทั้งหมดจะถือว่าเป็นไฟล์ปฏิบัติการโดยอัตโนมัติ และไม่จำเป็นต้องตั้งค่า executable = True สำหรับกฎทดสอบอย่างชัดเจน ดู หน้ากฎสำหรับข้อมูลเพิ่มเติม
|
attrs
|
dict; or None ; ค่าเริ่มต้น = ไม่มีพจนานุกรมสำหรับประกาศแอตทริบิวต์ทั้งหมดของกฎ โดยจะจับคู่จากชื่อแอตทริบิวต์กับออบเจ็กต์แอตทริบิวต์ (ดูโมดูล attr) แอตทริบิวต์ที่ขึ้นต้นด้วย _ จะเป็นแบบส่วนตัวและสามารถใช้เพื่อเพิ่มการอ้างอิงโดยนัยในป้ายกำกับ มีการเพิ่มแอตทริบิวต์ name โดยนัยและต้องไม่ระบุไว้ แอตทริบิวต์ visibility , deprecation , tags , testonly และ features จะเพิ่มโดยปริยายและลบล้างไม่ได้ กฎส่วนใหญ่ต้องการแอตทริบิวต์เพียงไม่กี่รายการ หากต้องการจำกัดการใช้งานหน่วยความจำ ฟังก์ชันของกฎจะกำหนดขนาดสูงสุดของแอตทริบิวต์
|
outputs
|
dict; or None; or function ;
ค่าเริ่มต้น = ไม่มีเลิกใช้งานแล้ว พารามิเตอร์นี้เลิกใช้งานแล้วและจะถูกนำออกเร็วๆ นี้ โปรดอย่าใช้คำนี้ ถูกปิดใช้ด้วย ---incompatible_no_rule_outputs_param ใช้แฟล็กนี้เพื่อยืนยันว่าโค้ดเข้ากันได้กับการนำโค้ดออกที่จะเกิดขึ้นเร็วๆ นี้ พารามิเตอร์นี้เลิกใช้งานแล้ว ย้ายข้อมูลกฎไปใช้ OutputGroupInfo หรือ attr.output แทน สคีมาสำหรับการกำหนดเอาต์พุตที่ประกาศไว้ล่วงหน้า ผู้ใช้จะไม่ได้ระบุป้ายกำกับสำหรับไฟล์เหล่านี้ ซึ่งต่างจากแอตทริบิวต์ ค่าของอาร์กิวเมนต์นี้เป็นพจนานุกรมหรือฟังก์ชันเรียกกลับที่สร้างพจนานุกรม โค้ดเรียกกลับทำงานคล้ายกับแอตทริบิวต์ทรัพยากร Dependency ที่คำนวณแล้ว กล่าวคือ ชื่อพารามิเตอร์ของฟังก์ชันจะจับคู่กับแอตทริบิวต์ของกฎ เช่น หากคุณส่ง แต่ละรายการในพจนานุกรมจะสร้างเอาต์พุตที่ประกาศไว้ล่วงหน้าซึ่งคีย์เป็นตัวระบุ และค่าคือเทมเพลตสตริงที่กำหนดป้ายกำกับของเอาต์พุต ในฟังก์ชันการใช้งานของกฎ ตัวระบุจะกลายเป็นชื่อช่องที่ใช้เข้าถึง
ในทางปฏิบัติ ตัวยึดตำแหน่งที่ใช้แทนที่พบบ่อยที่สุดคือ |
executable
|
default = False จะถือว่ากฎนี้ที่เรียกใช้ได้หรือไม่ กล่าวคือ กฎนี้อาจอยู่ภายใต้คำสั่ง blaze run หรือไม่ ดู หน้ากฎสำหรับข้อมูลเพิ่มเติม
|
output_to_genfiles
|
default = False หากเป็น true ระบบจะสร้างไฟล์ในไดเรกทอรี genfiles แทนไดเรกทอรี bin อย่าตั้งค่าสถานะนี้ ยกเว้นในกรณีที่คุณต้องการใช้เพื่อความเข้ากันได้กับกฎที่มีอยู่ (เช่น เมื่อสร้างไฟล์ส่วนหัวสำหรับ C++) |
fragments
|
sequence of strings ;
ค่าเริ่มต้น = []รายการชื่อของ Fragment การกำหนดค่าที่กฎต้องใช้ในการกำหนดค่าเป้าหมาย |
host_fragments
|
sequence of strings ;
default = []รายการชื่อของ Fragment การกำหนดค่าที่กฎต้องใช้ในการกำหนดค่าโฮสต์ |
_skylark_testable
|
ค่าเริ่มต้น = เท็จ (ทดลอง) หากเป็น "จริง" กฎนี้จะแสดงการดำเนินการสำหรับการตรวจสอบตามกฎที่ขึ้นอยู่กับการดำเนินการผ่านผู้ให้บริการการดำเนินการ ผู้ให้บริการยังดำเนินการกับกฎดังกล่าวได้ด้วยการเรียกใช้ ctx.created_actions() ควรใช้สำหรับการทดสอบลักษณะการทำงานในเวลาวิเคราะห์ของกฎ Starlark เท่านั้น ธงนี้อาจถูกนำออกในอนาคต |
toolchains
|
sequence ;
ค่าเริ่มต้น = []หากมีการตั้งค่า ชุดเครื่องมือที่กฎนี้กำหนดให้ใช้ รายการนี้อาจมีออบเจ็กต์ String, Label หรือ StarlarkToolchainTypeApi รวมกันใดก็ได้ คุณจะพบเครื่องมือเชนโดยการตรวจสอบแพลตฟอร์มปัจจุบัน และมีอยู่ในการติดตั้งใช้งานกฎผ่าน ctx.toolchain
|
incompatible_use_toolchain_transition
|
ค่าเริ่มต้น = เท็จ เลิกใช้งานแล้ว ไม่ได้ใช้งานแล้ว และควรนำออก |
doc
|
default = '' คำอธิบายของกฎที่ดึงมาได้ด้วยเครื่องมือสร้างเอกสาร |
provides
|
default = [] รายชื่อผู้ให้บริการที่ฟังก์ชันการใช้งานต้องแสดงผล หากฟังก์ชันการใช้งานละเว้นผู้ให้บริการประเภทใดก็ตามที่ระบุไว้ที่นี่ออกจากค่าที่แสดงผลจะเกิดข้อผิดพลาด อย่างไรก็ตาม ฟังก์ชันการใช้งานอาจแสดงผลผู้ให้บริการเพิ่มเติมที่ไม่ได้ระบุไว้ที่นี่ องค์ประกอบแต่ละรายการของรายการคือออบเจ็กต์ |
exec_compatible_with
|
sequence of strings ;
ค่าเริ่มต้น = []รายการข้อจำกัดในแพลตฟอร์มการดำเนินการที่ใช้กับเป้าหมายทั้งหมดของกฎประเภทนี้ |
analysis_test
|
default = False หากจริง ระบบจะถือว่ากฎนี้เป็นการทดสอบการวิเคราะห์ หมายเหตุ: กฎการทดสอบการวิเคราะห์จะกำหนดโดยใช้โครงสร้างพื้นฐานที่มีให้ในไลบรารีหลักของ Starlark เป็นหลัก ดูการทดสอบเพื่อดูคำแนะนำ หากกฎได้รับการกำหนดให้เป็นกฎการทดสอบการวิเคราะห์ กฎนั้นจะได้รับอนุญาตให้ใช้การเปลี่ยนการกำหนดค่าที่กำหนดโดยใช้ analysis_test_transition กับแอตทริบิวต์ได้ แต่เลือกใช้ข้อจำกัดต่อไปนี้
|
build_setting
|
BuildSetting; or None ;
ค่าเริ่มต้น = ไม่มีหากตั้งค่าไว้ ให้อธิบายประเภทของ build setting กฎนี้ ดูโมดูล config หากตั้งค่าไว้ ระบบจะเพิ่มแอตทริบิวต์ที่จำเป็นชื่อ "build_setting_default" ลงในกฎนี้โดยอัตโนมัติ โดยมีประเภทที่สอดคล้องกับค่าที่ส่งผ่านที่นี่
|
cfg
|
default = ไม่มี หากตั้งค่าไว้ ให้ชี้ไปยังการเปลี่ยนการกําหนดค่าที่กฎจะมีผลกับการกําหนดค่าของตัวเองก่อนการวิเคราะห์ |
exec_groups
|
dict; or None ;
default = ไม่มีคำสั่งแสดงชื่อกลุ่มการดำเนินการ (สตริง) เป็น exec_group s หากมีการตั้งค่า ระบบจะอนุญาตให้กฎเรียกใช้การดำเนินการในแพลตฟอร์มการดำเนินการหลายแพลตฟอร์มภายในเป้าหมายเดียว โปรดดูข้อมูลเพิ่มเติมในเอกสารเกี่ยวกับกลุ่มการดำเนินการ
|
compile_one_filetype
|
sequence of strings; or None ;
default = ไม่มีใช้โดย --ซอฟท์แวร์แล้ว: หากมีกฎหลายข้อที่ใช้ไฟล์ที่ระบุ เราควรเลือกกฎนี้มากกว่ากฎอื่น |
name
|
string; or None ;
ค่าเริ่มต้น = ไม่มีเลิกใช้งานแล้ว พารามิเตอร์นี้เลิกใช้งานแล้วและจะถูกนำออกเร็วๆ นี้ โปรดอย่าใช้คำนี้ ถูกปิดใช้ด้วย --+incompatible_remove_rule_name_parameter ใช้แฟล็กนี้เพื่อยืนยันว่าโค้ดเข้ากันได้กับการนำโค้ดออกที่จะเกิดขึ้นเร็วๆ นี้ เลิกใช้งาน: ไม่ใช้ ชื่อของกฎนี้ตามที่ Bazel เข้าใจและรายงานในบริบทต่างๆ เช่น การบันทึก หากละเว้นพารามิเตอร์นี้ ชื่อของกฎจะตั้งเป็นชื่อของตัวแปรร่วม Starlark แรกที่จะเชื่อมโยงกับกฎนี้ภายในโมดูล .bzl ที่ประกาศ ดังนั้น การระบุชื่อที่ชัดเจนสําหรับกฎจะไม่เปลี่ยนแปลงตําแหน่งที่ได้รับอนุญาตให้สร้างอินสแตนซ์กฎ |
เลือก
unknown select(x, no_match_error='')
select()
เป็นฟังก์ชันตัวช่วยที่ทำให้แอตทริบิวต์ของกฎกำหนดค่าได้ ดูรายละเอียดในสร้างสารานุกรม
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
ต้องระบุ ไดเรกทอรีที่แมปเงื่อนไขการกําหนดค่ากับค่า แต่ละคีย์คือป้ายกำกับหรือสตริงป้ายกำกับที่ระบุอินสแตนซ์ config_setting หรือrestriction_value ดูเอกสารเกี่ยวกับมาโครเพื่อดูว่าควรใช้ป้ายกำกับแทนสตริงเมื่อใด |
no_match_error
|
default = '' ข้อผิดพลาดที่กำหนดเองที่ไม่บังคับเพื่อรายงานหากไม่มีเงื่อนไขที่ตรงกัน |
single_version_override
None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)ระบุว่าทรัพยากร Dependency ควรมาจากรีจิสทรีอยู่ แต่ควรปักหมุดเวอร์ชัน หรือลบล้างรีจิสทรี หรือใช้รายการแพตช์ที่ใช้ คำสั่งนี้มีผลในโมดูลรูทเท่านั้น กล่าวคือ หากคนอื่นใช้โมดูลเป็นทรัพยากร Dependency ก็จะไม่มีผลใดๆ การลบล้างของโมดูลนั้นๆ
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
module_name
|
ต้องระบุ ชื่อของทรัพยากร Dependency ของโมดูล Bazel ที่จะนำไปใช้กับการลบล้างนี้ |
version
|
default = '' ลบล้างเวอร์ชันที่ประกาศของโมดูลนี้ในกราฟการอ้างอิง กล่าวคือ โมดูลนี้จะถูก "ปักหมุด" เป็นเวอร์ชันการลบล้างนี้ คุณละเว้นแอตทริบิวต์นี้ได้หากแอตทริบิวต์ทุกรายการที่ต้องการลบล้างคือรีจิสทรีหรือแพตช์ |
registry
|
default = '' ลบล้างรีจิสทรีสำหรับโมดูลนี้ แทนที่จะค้นหาโมดูลนี้จากรายการรีจิสทรีเริ่มต้น ควรใช้รีจิสทรีที่ระบุ |
patches
|
Iterable of strings ;
default = []รายการป้ายกำกับที่ชี้ไปยังไฟล์แพตช์ที่จะใช้กับโมดูลนี้ ไฟล์แพตช์ต้องอยู่ในโครงสร้างแหล่งที่มาของโปรเจ็กต์ระดับบนสุด โดยจะใช้ตามลําดับรายการ |
patch_cmds
|
Iterable of strings ;
ค่าเริ่มต้น = []ลำดับของคำสั่ง Bash ที่จะนำไปใช้ใน Linux/Macos หลังจากใช้แพตช์แล้ว |
patch_strip
|
default = 0 เหมือนกับอาร์กิวเมนต์ --strip ของแพตช์ Unix |
เรียงลำดับแล้ว
list sorted(iterable, *, key=None, reverse=False)แสดงผลรายการที่จัดเรียงใหม่ซึ่งมีองค์ประกอบทั้งหมดของลำดับที่ทำซ้ำได้ ข้อผิดพลาดอาจเกิดขึ้นหากองค์ประกอบ x และ y คู่ใดก็ตามไม่สามารถเปรียบเทียบโดยใช้ x < y องค์ประกอบจะเรียงลำดับจากน้อยไปหามาก ยกเว้นกรณีที่อาร์กิวเมนต์ย้อนกลับเป็น True ซึ่งในกรณีนี้ลำดับจากมากไปน้อย การจัดเรียงมีความเสถียร: องค์ประกอบที่เปรียบเทียบเท่ากันจะยังคงเรียงลำดับตามเดิม
sorted([3, 5, 4]) == [3, 4, 5]
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
iterable
|
ต้องระบุ ลำดับที่ทำซ้ำได้เพื่อจัดเรียง |
key
|
default = ไม่มี ฟังก์ชันที่ไม่บังคับที่ใช้กับแต่ละองค์ประกอบก่อนการเปรียบเทียบ |
reverse
|
default = False แสดงผลลัพธ์ตามลำดับจากมากไปน้อย |
str
string str(x)แปลงออบเจ็กต์ใดๆ ให้เป็นสตริง ซึ่งจะเป็นประโยชน์สำหรับการแก้ไขข้อบกพร่อง
str("ab") == "ab" str(8) == "8"
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
ต้องระบุ ออบเจ็กต์ที่จะแปลง |
tag_class
tag_class tag_class(attrs={}, *, doc='')สร้างออบเจ็กต์ tag_class ใหม่ซึ่งระบุสคีมาแอตทริบิวต์สำหรับคลาสของแท็ก ซึ่งเป็นออบเจ็กต์ข้อมูลที่ส่วนขยายโมดูลใช้
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
attrs
|
default = {} พจนานุกรมสำหรับประกาศแอตทริบิวต์ทั้งหมดของคลาสแท็กนี้ โดยจะจับคู่จากชื่อแอตทริบิวต์กับออบเจ็กต์แอตทริบิวต์ (ดูโมดูล attr) |
doc
|
default = '' คำอธิบายของคลาสแท็กที่แยกได้ด้วยเครื่องมือสร้างเอกสาร |
tuple
tuple tuple(x=())แสดงผล Tuple ที่มีองค์ประกอบเดียวกับค่าที่ซ้ำกันได้
tuple([1, 2]) == (1, 2) tuple((2, 3, 2)) == (2, 3, 2) tuple({5: "a", 2: "b", 4: "c"}) == (5, 2, 4)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
default = () ออบเจ็กต์ที่จะแปลง |
ประเภท
string type(x)แสดงชื่อประเภทของอาร์กิวเมนต์ ซึ่งมีประโยชน์สำหรับการแก้ไขข้อบกพร่องและการตรวจสอบประเภท ตัวอย่าง
type(2) == "int" type([1]) == "list" type(struct(a = 2)) == "struct"ฟังก์ชันนี้อาจเปลี่ยนแปลงในอนาคต หากต้องการเขียนโค้ดที่ใช้ร่วมกับ Python ได้และเตรียมความพร้อมสำหรับอนาคต ให้ใช้โค้ดนี้เพื่อเปรียบเทียบค่าที่แสดงเท่านั้น
if type(x) == type([]): # if x is a list
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
ต้องระบุ ออบเจ็กต์ที่จะตรวจสอบประเภท |
use_extension
module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)แสดงผลออบเจ็กต์พร็อกซีที่แสดงส่วนขยายโมดูล โดยคุณสามารถเรียกใช้เมธอดของพร็อกซีเพื่อสร้างแท็กส่วนขยายโมดูล
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
extension_bzl_file
|
ต้องระบุ ป้ายกำกับของไฟล์ Starlark ที่ระบุส่วนขยายโมดูล |
extension_name
|
ต้องระบุ ชื่อของส่วนขยายโมดูลที่จะใช้ ไฟล์ Starlark จะต้องส่งออกสัญลักษณ์ที่มีชื่อนี้ |
dev_dependency
|
ค่าเริ่มต้น = เท็จ หากจริง ระบบจะไม่สนใจการใช้ส่วนขยายโมดูลนี้ หากโมดูลปัจจุบันไม่ใช่โมดูลรูทหรือเปิดใช้ "--ignore_dev_dependency" |
isolate
|
default = False ทดลอง พารามิเตอร์นี้อยู่ในขั้นทดลองและอาจมีการเปลี่ยนแปลงได้ตลอดเวลา โปรดอย่าใช้คำนี้ อาจเปิดใช้ในการทดลองโดยการตั้งค่า ---experimental_isolated_extension_usages หากเป็นจริง การใช้ส่วนขยายโมดูลนี้จะแยกจากการใช้งานอื่นๆ ทั้งหมด ทั้งในโมดูลนี้และโมดูลอื่น แท็กที่สร้างขึ้นสำหรับการใช้งานนี้จะไม่ส่งผลต่อการใช้งานอื่นๆ และที่เก็บที่สร้างโดยส่วนขยายสำหรับการใช้งานนี้จะแตกต่างจากที่เก็บอื่นๆ ทั้งหมดที่ส่วนขยายสร้าง ขณะนี้พารามิเตอร์นี้อยู่ระหว่างการทดสอบและใช้ได้กับแฟล็ก |
use_repo
None use_repo(extension_proxy, *args, **kwargs)นำเข้าที่เก็บอย่างน้อยหนึ่งรายการที่สร้างโดยส่วนขยายโมดูลที่ระบุลงในขอบเขตของโมดูลปัจจุบัน
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
extension_proxy
|
ต้องระบุ ออบเจ็กต์พร็อกซีส่วนขยายโมดูลที่แสดงผลโดยการเรียก use_extension
|
args
|
ต้องระบุ ชื่อของที่เก็บที่จะนำเข้า |
kwargs
|
ต้องระบุ ระบุที่เก็บบางรายการเพื่อนำเข้าไปยังขอบเขตของโมดูลปัจจุบันโดยใช้ชื่ออื่น คีย์ควรเป็นชื่อที่ใช้ในขอบเขตปัจจุบัน ส่วนค่าควรเป็นชื่อเดิมที่ส่วนขยายโมดูลส่งออก |
การเปิดเผย
None visibility(value)
ตั้งค่าการเปิดเผยการโหลดของโมดูล .bzl ที่กำลังเริ่มต้นอยู่ในขณะนี้
การเปิดเผยการโหลดของโมดูลจะควบคุมว่าไฟล์ BUILD และ .bzl อื่นๆ จะโหลดหรือไม่ (ซึ่งจะแตกต่างจากระดับการเข้าถึงเป้าหมายของไฟล์ต้นฉบับ .bzl ซึ่งกำหนดว่าไฟล์อาจปรากฏเป็นทรัพยากร Dependency ของเป้าหมายอื่นๆ หรือไม่) การเปิดเผยการโหลดทำงานที่ระดับแพ็กเกจ: หากต้องการโหลดโมดูล ไฟล์ที่โหลดต้องอยู่ในแพ็กเกจที่ให้สิทธิ์การเปิดเผยโมดูลแล้ว โมดูลจะโหลดภายในแพ็กเกจของตนเองได้เสมอ โดยไม่คำนึงถึงระดับการเข้าถึง
เรียก visibility()
ได้เพียงครั้งเดียวต่อไฟล์ .bzl และเรียกที่ระดับบนสุดเท่านั้น ไม่ใช่ภายในฟังก์ชัน รูปแบบที่แนะนำคือใส่การเรียกใช้นี้ใต้คำสั่ง load()
และตรรกะสั้นๆ ที่จำเป็นในการระบุอาร์กิวเมนต์
หากตั้งค่า Flag --check_bzl_visibility
เป็น "เท็จ" การละเมิดการเปิดเผยการโหลดจะส่งคำเตือน แต่การสร้างก็จะไม่ล้มเหลว
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
value
|
ต้องระบุ รายการสตริงข้อมูลจำเพาะของแพ็กเกจ หรือสตริงข้อมูลจำเพาะของแพ็กเกจรายการเดียว ข้อมูลจำเพาะของแพ็กเกจมีรูปแบบเดียวกันกับ
ไม่อนุญาตให้ใช้ไวยากรณ์ "@" ระบบจะตีความข้อกำหนดทั้งหมดที่เกี่ยวข้องกับที่เก็บของโมดูลปัจจุบัน หาก โปรดทราบว่าแฟล็ก |
พื้นที่ทำงาน
None workspace(name)
ฟังก์ชันนี้ใช้ได้ในไฟล์ WORKSPACE
เท่านั้น และต้องประกาศก่อนฟังก์ชันอื่นๆ ทั้งหมดในไฟล์ WORKSPACE
ไฟล์ WORKSPACE
แต่ละไฟล์ควรมีฟังก์ชัน workspace
ตั้งชื่อพื้นที่ทำงานนี้ ชื่อพื้นที่ทำงานควรเป็นคำอธิบายโปรเจ็กต์ในสไตล์ Java โดยใช้ขีดล่างเป็นตัวคั่น เช่น github.com/bazelbuild/bazel ควรใช้ com_github_bazelbuild_bazel
ชื่อนี้จะใช้สำหรับไดเรกทอรีที่จัดเก็บ Runfile ของที่เก็บ ตัวอย่างเช่น หากมี Runfile foo/bar
ในที่เก็บภายใน และไฟล์ WORKSPACE มี workspace(name = 'baz')
ไฟล์ Runfile จะอยู่ในส่วน mytarget.runfiles/baz/foo/bar
หากไม่ได้ระบุชื่อพื้นที่ทำงานไว้ ไฟล์ Runfile จะลิงก์กับ bar.runfiles/foo/bar
ชื่อกฎของที่เก็บระยะไกลต้องเป็นชื่อพื้นที่ทำงานที่ถูกต้อง เช่น คุณอาจมี maven_jar(name = 'foo')
แต่ไม่ใช่ maven_jar(name = 'foo%bar')
เนื่องจาก Bazel จะพยายามเขียนไฟล์ WORKSPACE สำหรับ maven_jar
ที่มี workspace(name = 'foo%bar')
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
name
|
ต้องระบุ ชื่อของพื้นที่ทำงาน ชื่อต้องขึ้นต้นด้วยตัวอักษรและมีได้เฉพาะตัวอักษร ตัวเลข ขีดล่าง ขีดกลาง และจุดเท่านั้น |
zip
list zip(*args)แสดงผล
list
เป็น tuple
โดยที่ Tuple i มีองค์ประกอบ i จากลำดับอาร์กิวเมนต์หรือตัวซ้ำแต่ละรายการ รายการจะมีขนาดของอินพุตที่สั้นที่สุด ด้วยอาร์กิวเมนต์ที่ทำซ้ำได้เพียงรายการเดียว ระบบจะแสดงรายการ 1-tuples เมื่อไม่มีอาร์กิวเมนต์ ระบบจะแสดงรายการที่ว่างเปล่า ตัวอย่าง:zip() # == [] zip([1, 2]) # == [(1,), (2,)] zip([1, 2], [3, 4]) # == [(1, 3), (2, 4)] zip([1, 2], [3, 4, 5]) # == [(1, 3), (2, 4)]
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
args
|
ต้องระบุ รายการที่จะบีบอัด |