สมาชิก
- all
- analysis_test_transition
- ใดก็ได้
- archive_override
- aspect
- bazel_dep
- bind
- bool
- configuration_field
- depset
- dict
- dir
- enumerate
- exec_group
- fail
- float
- getattr
- git_override
- hasattr
- hash
- int
- len
- list
- local_path_override
- max
- นาที
- module
- module_extension
- multiple_version_override
- พิมพ์
- provider
- range
- register_execution_platforms()
- register_execution_platforms(dev_dependency)
- register_toolchains()
- register_toolchains(dev_dependency)
- repository_rule(implementation, attrs, local, environ, configure, remotable, doc)
- repository_rule(Implement, attrs, local, environ, Configuration, remotable, doc)
- repr
- reversed
- rule
- select
- single_version_override
- จัดเรียง
- str
- tag_class
- tuple
- type
- use_extension
- use_repo
- visibility
- workspace
- zip
ทั้งหมด
bool all(elements)แสดงผลค่าที่เป็นจริงหากองค์ประกอบทั้งหมดประเมินเป็น "จริง" หรือหากคอลเล็กชันว่าง ระบบจะแปลงองค์ประกอบเป็นบูลีนโดยใช้ฟังก์ชัน bool
all(["hello", 3, True]) == True all([-1, 0, 1]) == False
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
elements
|
ต้องระบุ สตริงหรือคอลเล็กชันองค์ประกอบ |
analysis_test_transition
transition analysis_test_transition(settings)
สร้างการเปลี่ยนการกำหนดค่าที่จะใช้กับทรัพยากร ของกฎการทดสอบการวิเคราะห์ การเปลี่ยนนี้ใช้ได้กับแอตทริบิวต์ของกฎที่มี analysis_test = True
เท่านั้น กฎดังกล่าวมีข้อจำกัดด้านความสามารถ (เช่น ขนาดของต้นไม้ความเกี่ยวข้องถูกจำกัด) ดังนั้นทรานซิชันที่สร้างโดยใช้ฟังก์ชันนี้จะมีข้อจำกัดด้านขอบเขตที่เป็นไปได้เมื่อเทียบกับทรานซิชันที่สร้างโดยใช้ transition
ฟังก์ชันนี้ออกแบบมาเพื่ออำนวยความสะดวกให้กับไลบรารีหลักของ เฟรมเวิร์กการทดสอบการวิเคราะห์เป็นหลัก ดูแนวทางปฏิบัติแนะนำได้ในเอกสารประกอบ (หรือการใช้งาน)
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
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)ระบุว่าทรัพยากรนี้ควรมาจากไฟล์เก็บถาวร (zip, gzip ฯลฯ) ในตำแหน่งที่ระบุแทนที่จะเป็นจากรีจิสทรี คำสั่งนี้จะมีผลเฉพาะในโมดูลรูท กล่าวคือ หากมีการใช้โมดูลเป็นข้อกำหนดโดยผู้อื่น ระบบจะไม่สนใจการลบล้างของโมดูลนั้น
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
module_name
|
ต้องระบุ ชื่อของโมดูล Bazel ที่ต้องพึ่งพาเพื่อใช้การลบล้างนี้ |
urls
|
string; or Iterable of strings ;
ต้องระบุURL ของไฟล์เก็บถาวร อาจเป็น URL รูปแบบ http(s):// หรือ file:// |
integrity
|
default = '' ค่าการตรวจสอบผลรวมที่คาดไว้ของไฟล์ที่เก็บถาวรในรูปแบบความสมบูรณ์ของเนื้อหาย่อย |
strip_prefix
|
default = '' คำนำหน้าไดเรกทอรีที่จะตัดออกจากไฟล์ที่แยก |
patches
|
Iterable of strings ;
default = []A list of labels pointing to patch files to apply for this module. ไฟล์แพตช์ต้องอยู่ในโครงสร้างซอร์สโค้ดของโปรเจ็กต์ระดับบนสุด ระบบจะบังคับใช้ตามลําดับรายการ |
patch_cmds
|
Iterable of strings ;
default = []ลําดับคําสั่ง Bash ที่จะใช้ใน Linux/Macos หลังจากติดตั้งแพตช์ |
patch_strip
|
ค่าเริ่มต้น = 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)สร้างแง่มุมใหม่ ผลลัพธ์ของฟังก์ชันนี้ต้องจัดเก็บไว้ในค่าส่วนกลาง โปรดดูรายละเอียดเพิ่มเติมในข้อมูลเบื้องต้นเกี่ยวกับแง่มุม
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
implementation
|
ต้องระบุ ฟังก์ชัน Starlark ที่ใช้แง่มุมนี้ โดยมีพารามิเตอร์ 2 รายการ ได้แก่ Target (เป้าหมายที่จะใช้แง่มุม) และ ctx (บริบทกฎที่สร้างเป้าหมาย) แอตทริบิวต์ของเป้าหมายจะแสดงผ่านช่อง ctx.rule ระบบจะประเมินฟังก์ชันนี้ในระหว่างระยะการวิเคราะห์สําหรับการใช้แง่มุมกับเป้าหมายแต่ละรายการ
|
attr_aspects
|
sequence of strings ;
ค่าเริ่มต้น = []รายการชื่อแอตทริบิวต์ โดยแง่มุมจะเผยแพร่ไปตามข้อกําหนดซึ่งระบุไว้ในแอตทริบิวต์ของเป้าหมายที่มีชื่อเหล่านี้ ค่าที่พบบ่อยที่นี่ ได้แก่ deps และ exports รายการนี้อาจมีสตริงเดียว "*" เพื่อกระจายไปยังทรัพยากร Dependency ทั้งหมดของเป้าหมายด้วย
|
attrs
|
dict; or None ;
ค่าเริ่มต้น = ไม่มีพจนานุกรมที่ประกาศแอตทริบิวต์ทั้งหมดของมุมมอง โดยจะแมปจากชื่อแอตทริบิวต์ไปยังออบเจ็กต์แอตทริบิวต์ เช่น "attr.label" หรือ "attr.string" (ดูโมดูล attr) แอตทริบิวต์ของลักษณะจะพร้อมใช้งานสำหรับฟังก์ชันการใช้งานเป็นช่องของพารามิเตอร์ ctx แอตทริบิวต์ที่ระบุโดยนัยซึ่งขึ้นต้นด้วย แอตทริบิวต์ที่ชัดเจนต้องเป็นประเภท |
required_providers
|
default = [] แอตทริบิวต์นี้ช่วยให้แง่มุมจํากัดการนำไปใช้ในเป้าหมายที่มีกฎโฆษณาผู้ให้บริการที่จําเป็นเท่านั้น ค่าต้องเป็นรายการที่มีผู้ให้บริการรายเดียวหรือรายการผู้ให้บริการ แต่ต้องไม่ใช่ทั้ง 2 อย่าง ตัวอย่างเช่น [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] เป็นค่าที่ถูกต้อง แต่ [FooInfo, BarInfo, [BazInfo, QuxInfo]] ไม่ถูกต้องระบบจะแปลงรายการผู้ให้บริการแบบไม่ฝังเป็นรายการที่มีรายการผู้ให้บริการรายการเดียวโดยอัตโนมัติ กล่าวคือ หากต้องการให้กฎบางอย่าง (เช่น |
required_aspect_providers
|
default = [] แอตทริบิวต์นี้ช่วยให้แง่มุมนี้ตรวจสอบแง่มุมอื่นๆ ได้ ค่าต้องเป็นรายการที่มีผู้ให้บริการรายเดียวหรือรายการผู้ให้บริการ แต่ต้องไม่ใช่ทั้ง 2 อย่าง ตัวอย่างเช่น [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] เป็นค่าที่ถูกต้อง แต่ [FooInfo, BarInfo, [BazInfo, QuxInfo]] ไม่ถูกต้องระบบจะแปลงรายชื่อผู้ให้บริการที่ไม่ซ้อนกันเป็นรายชื่อที่มีรายชื่อผู้ให้บริการ 1 รายการโดยอัตโนมัติ กล่าวคือ หากต้องการให้ด้านอื่น (เช่น |
provides
|
default = [] รายการผู้ให้บริการที่ฟังก์ชันการใช้งานต้องแสดงผล ระบบจะแสดงข้อผิดพลาดหากฟังก์ชันการใช้งานละเว้นผู้ให้บริการประเภทใดประเภทหนึ่งจากรายการค่าที่แสดงผล อย่างไรก็ตาม ฟังก์ชันการติดตั้งใช้งานอาจแสดงผลผู้ให้บริการเพิ่มเติมที่ไม่ได้ระบุไว้ที่นี่ องค์ประกอบแต่ละรายการของลิสต์คือออบเจ็กต์ |
requires
|
sequence of Aspects ;
ค่าเริ่มต้น = []รายการข้อมูลที่ต้องเผยแพร่ก่อนแง่มุมนี้ |
fragments
|
sequence of strings ;
ค่าเริ่มต้น = []รายการชื่อของส่วนย่อยการกำหนดค่าที่ด้านต้องการในการกำหนดค่าเป้าหมาย |
host_fragments
|
sequence of strings ;
ค่าเริ่มต้น = []รายการชื่อของส่วนย่อยการกำหนดค่าที่ด้านต้องการในการกำหนดค่าโฮสต์ |
toolchains
|
sequence ;
default = []หากตั้งค่าไว้ ชุดเครื่องมือทางเทคนิคที่กฎนี้กำหนด รายการอาจมีออบเจ็กต์สตริง ป้ายกำกับ หรือ StarlarkToolchainTypeApi ผสมกันก็ได้ ระบบจะค้นหา Toolchain โดยตรวจสอบแพลตฟอร์มปัจจุบัน และส่งไปยังการใช้งานกฎผ่าน ctx.toolchain
|
incompatible_use_toolchain_transition
|
default = False เลิกใช้งานแล้ว ไม่ควรนำมาใช้อีกต่อไป |
doc
|
default = '' คำอธิบายแง่มุมที่เครื่องมือสร้างเอกสารประกอบสามารถดึงข้อมูลได้ |
apply_to_generating_rules
|
ค่าเริ่มต้น = เท็จ หากเป็น "จริง" การใช้ลักษณะดังกล่าวจะใช้กับไฟล์เอาต์พุตแทนกับกฎการสร้างของไฟล์เอาต์พุตแทน ตัวอย่างเช่น สมมติว่าแง่มุมหนึ่งจะส่งผ่านผ่านแอตทริบิวต์ "deps" และนำไปใช้กับเป้าหมาย "alpha" สมมติว่า "alpha" มี "deps = [':beta_output']` โดยที่ "beta_output" คือเอาต์พุตที่ประกาศของเป้าหมาย "beta" สมมติว่า "beta" มีเป้าหมาย "charlie" เป็นหนึ่งใน "deps" ของมัน หาก "apply_to_generating_rules=True" สําหรับแง่มุมนั้น แง่มุมจะส่งผ่านผ่าน "alpha", "beta" และ "charlie" หากเป็น False แง่มุมจะส่งผ่านไปยัง "alpha" เท่านั้น เท็จโดยค่าเริ่มต้น |
exec_compatible_with
|
sequence of strings ;
default = []รายข้อจำกัดในแพลตฟอร์มการดำเนินการที่มีผลกับอินสแตนซ์ทั้งหมดของด้านนี้ |
exec_groups
|
dict; or None ;
default = NoneDict of execution group name (string) to exec_group s. หากตั้งค่าไว้ จะอนุญาตให้ส่วนต่างๆ เรียกใช้การดำเนินการในแพลตฟอร์มการดำเนินการหลายแพลตฟอร์มภายในอินสแตนซ์เดียว ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบเกี่ยวกับกลุ่มการดําเนินการ
|
bazel_dep
None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)ประกาศการพึ่งพาโดยตรงกับโมดูล Bazel อื่น
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
name
|
ต้องระบุ ชื่อของโมดูลที่จะเพิ่มเป็นข้อกําหนดโดยตรง |
version
|
default = '' รุ่นของโมดูลที่จะเพิ่มเป็นข้อกําหนดโดยตรง |
max_compatibility_level
|
default = -1compatibility_level สูงสุดที่รองรับสำหรับการเพิ่มโมดูลเป็นข้อกำหนดโดยตรง เวอร์ชันของโมดูลจะระบุ compatibility_level ขั้นต่ำที่รองรับ รวมถึงสูงสุดหากไม่ได้ระบุแอตทริบิวต์นี้
|
repo_name
|
default = '' ชื่อของที่เก็บภายนอกที่แสดงถึงทรัพยากร Dependency นี้ ซึ่งจะเป็นชื่อโมดูลโดยค่าเริ่มต้น |
dev_dependency
|
default = False หากเป็น True ระบบจะไม่สนใจการพึ่งพานี้หากโมดูลปัจจุบันไม่ใช่โมดูลรูทหรือเปิดใช้ `--ignore_dev_dependency` |
เชื่อมโยง
None bind(name, actual=None)
คำเตือน: ไม่แนะนำให้ใช้ bind()
โปรดดูพิจารณานำการเชื่อมโยงออกเพื่อดูการพูดคุยเกี่ยวกับปัญหาและทางเลือกอื่นๆ ของการดำเนินการนี้
ตั้งชื่อแทนเป้าหมายในแพ็กเกจ //external
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
name
|
ต้องระบุ ป้ายกำกับในส่วน "//external" เพื่อใช้เป็นชื่อแทน |
actual
|
string; or None ;
default = NoneThe real label to be aliased |
บูลีน
bool bool(x=False)ตัวสร้างสำหรับประเภทบูลีน โดยจะแสดงผล
False
หากออบเจ็กต์คือ None
, False
, สตริงว่าง (""
), หมายเลข 0
หรือคอลเล็กชันที่ว่างเปล่า (เช่น ()
, []
) ไม่เช่นนั้นจะแสดงผลเป็น True
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
default = เท็จ ตัวแปรที่จะแปลง |
configuration_field
LateBoundDefault configuration_field(fragment, name)อ้างอิงค่าเริ่มต้นที่มีขอบเขตล่าช้าสำหรับแอตทริบิวต์ประเภท label ค่าจะ "ล่าช้า" หากต้องมีการสร้างการกําหนดค่าก่อนกําหนดค่า แอตทริบิวต์ที่ใช้ค่านี้ต้องเป็นแบบส่วนตัว
ตัวอย่างการใช้งาน
การกำหนดแอตทริบิวต์กฎ:
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
การเข้าถึงในการนำกฎไปใช้:
def _rule_impl(ctx): foo_info = ctx.attr._foo ...
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
fragment
|
required ชื่อของข้อมูลโค้ดการกําหนดค่าที่มีค่าที่ผูกในภายหลัง |
name
|
required ชื่อของค่าที่จะรับจากข้อมูลโค้ดที่ตัดมาจากการกำหนดค่า |
depset
depset depset(direct=None, order="default", *, transitive=None)สร้าง depset พารามิเตอร์
direct
คือรายการองค์ประกอบโดยตรงของ Depset และพารามิเตอร์ transitive
คือรายการของ Depset ที่มีองค์ประกอบที่กลายเป็นองค์ประกอบโดยอ้อมของ Depset ที่สร้างขึ้น ลำดับที่ระบบจะแสดงองค์ประกอบเมื่อแปลงชุดข้อมูล Dependency เป็นลิสต์จะระบุโดยพารามิเตอร์ order
ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของ Depset
องค์ประกอบทั้งหมด (ทั้งโดยตรงและโดยอ้อม) ของชุดข้อมูล Dependency ต้องเป็นประเภทเดียวกันตามที่ได้จากนิพจน์ type(x)
เนื่องจากชุดที่อิงตามแฮชใช้เพื่อกำจัดรายการที่ซ้ำกันระหว่างการทำซ้ำ องค์ประกอบทั้งหมดของ depset จึงควรเป็นแฮชได้ อย่างไรก็ตาม ปัจจุบันยังไม่มีการตรวจสอบค่าคงที่นี้อย่างสม่ำเสมอในคอนสตรัคเตอร์ทั้งหมด ใช้ Flag --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 = Noneรายการองค์ประกอบ direct ของ depset |
order
|
default = "default" กลยุทธ์การเรียกดูสำหรับ depset ใหม่ ดูค่าที่เป็นไปได้ได้ที่นี่ |
transitive
|
sequence of depsets; or None ;
ค่าเริ่มต้น = ไม่มีรายการของชุด Depset ที่มีเอลิเมนต์ที่จะกลายเป็นองค์ประกอบโดยอ้อมของ Depset |
ดิด
dict dict(pairs=[], **kwargs)สร้างพจนานุกรมจากอาร์กิวเมนต์ตำแหน่งที่ไม่บังคับและชุดอาร์กิวเมนต์คีย์เวิร์ดที่ไม่บังคับ ในกรณีที่มีการระบุคีย์เดียวกันหลายครั้ง ระบบจะใช้ค่าสุดท้าย ระบบจะถือว่ารายการที่ระบุผ่านอาร์กิวเมนต์คีย์เวิร์ดจะอยู่หลังรายการที่ระบุผ่านอาร์กิวเมนต์ตำแหน่ง
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
pairs
|
default = [] Dict หรือรายการที่วนซ้ำได้ซึ่งมีองค์ประกอบแต่ละรายการมีความยาว 2 (คีย์ ค่า) |
kwargs
|
required คําจํากัดความของรายการเพิ่มเติม |
dir
list dir(x)แสดงรายการสตริง: ชื่อแอตทริบิวต์และเมธอดของออบเจ็กต์พารามิเตอร์
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
ต้องระบุ ออบเจ็กต์ที่จะตรวจสอบ |
แจกแจง
list enumerate(list, start=0)แสดงผลรายการคู่ (ทูเพลตแบบ 2 องค์ประกอบ) ที่มีดัชนี (int) และรายการจากลําดับอินพุต
enumerate([24, 21, 84]) == [(0, 24), (1, 21), (2, 84)]
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
list
|
ต้องใช้ ลำดับอินพุต |
start
|
ค่าเริ่มต้น = 0 ดัชนีเริ่มต้น |
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[], copy_from_rule=False)สร้างกลุ่มการดําเนินการซึ่งสามารถใช้ในการสร้างการดําเนินการสําหรับแพลตฟอร์มการดําเนินการหนึ่งๆ ระหว่างการติดตั้งใช้งานกฎ
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
toolchains
|
sequence ;
default = []ชุด Toolchain ที่กลุ่มการดำเนินการนี้ต้องการ รายการอาจมีออบเจ็กต์สตริง ป้ายกำกับ หรือ StarlarkToolchainTypeApi ผสมกันก็ได้ |
exec_compatible_with
|
sequence of strings ;
default = []A list of constraints on the execution platform. |
copy_from_rule
|
default = False หากตั้งค่าเป็น "จริง" กลุ่ม exec นี้จะรับค่าโซลูชันเครื่องมือและข้อจำกัดของกฎที่แนบอยู่กับกลุ่มนี้ หากตั้งค่าเป็นสตริงอื่น ระบบจะแสดงข้อผิดพลาด |
ล้มเหลว
None fail(msg=None, attr=None, *args)ทำให้การดำเนินการล้มเหลวโดยมีข้อผิดพลาด
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
msg
|
ค่าเริ่มต้น = ไม่มี เลิกใช้งานแล้ว: ใช้อาร์กิวเมนต์ตำแหน่งแทน อาร์กิวเมนต์นี้จะทํางานเหมือนอาร์กิวเมนต์ตําแหน่งหน้าแบบนัย |
attr
|
string; or None ;
default = Noneเลิกใช้งานแล้ว ทําให้ระบบเพิ่มคำนำหน้า (ไม่บังคับ) ที่มีสตริงนี้ลงในข้อความแสดงข้อผิดพลาด |
args
|
required เป็นรายการค่าที่จัดรูปแบบด้วย str และเชื่อมต่อกันด้วยการเว้นวรรค ซึ่งจะปรากฏในข้อความแสดงข้อผิดพลาด |
จำนวนลอยตัว
float float(x=unbound)แสดง x เป็นค่าจำนวนลอยตัว
- หาก
x
เป็นแบบลอยอยู่แล้วfloat
จะแสดงผลเป็นค่าที่ไม่เปลี่ยนแปลง - หาก
x
เป็นบูลีนfloat
จะแสดงผล 1.0 สำหรับ "จริง" และ 0.0 สำหรับ "เท็จ" - หาก
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
|
required สตรัคเจอร์ที่มีการเข้าถึงแอตทริบิวต์ |
name
|
required ชื่อแอตทริบิวต์ struct |
default
|
default = unbound ค่าเริ่มต้นที่จะแสดงผลในกรณีที่โครงสร้างไม่มีแอตทริบิวต์ของชื่อที่ระบุ |
git_override
None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0)ระบุว่าข้อกำหนดควรมาจากคอมมิตที่เจาะจงของที่เก็บ Git คำสั่งนี้จะมีผลเฉพาะในโมดูลรูท กล่าวคือ หากมีการใช้โมดูลเป็นข้อกำหนดโดยผู้อื่น ระบบจะไม่สนใจการลบล้างของโมดูลนั้น
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
module_name
|
ต้องระบุ ชื่อของโมดูล Bazel ที่ต้องพึ่งพาเพื่อใช้การลบล้างนี้ |
remote
|
ต้องระบุ URL ของที่เก็บ Git ระยะไกล |
commit
|
default = '' การคอมมิตที่ควรตรวจสอบออก |
patches
|
Iterable of strings ;
default = []รายการป้ายกำกับที่ชี้ไปยังไฟล์แพตช์ที่จะใช้กับโมดูลนี้ ไฟล์แพตช์ต้องอยู่ในโครงสร้างแหล่งที่มาของโปรเจ็กต์ระดับบนสุด ระบบจะบังคับใช้ตามลําดับรายการ |
patch_cmds
|
Iterable of strings ;
default = []ลําดับคําสั่ง Bash ที่จะใช้ใน Linux/Macos หลังจากติดตั้งแพตช์ |
patch_strip
|
ค่าเริ่มต้น = 0 เหมือนกับอาร์กิวเมนต์ --strip ของแพตช์ Unix |
hasattr
bool hasattr(x, name)แสดงผลเป็น "จริง" หากออบเจ็กต์
x
มีแอตทริบิวต์หรือเมธอดของ name
ที่ระบุ มิเช่นนั้นแสดงผลเป็น "เท็จ" ตัวอย่าง:hasattr(ctx.attr, "myattr")
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
ต้องระบุ ออบเจ็กต์ที่จะตรวจสอบ |
name
|
required ชื่อแอตทริบิวต์ |
แฮช
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 ทั้งนี้เพื่อไม่ให้เกิดความสับสนระหว่างฐาน 8 กับฐาน 10 ขนาดของตัวเลขที่แสดงโดยสตริงต้องอยู่ภายในช่วงที่อนุญาตสําหรับประเภท int - หาก
x
เป็นเลขทศนิยมint
จะแสดงผลค่าจำนวนเต็มของจำนวนลอยตัวโดยปัดเศษเข้าหา 0 โดยจะเป็นข้อผิดพลาดหาก x ไม่ใช่ค่าจำกัด (ไม่มีหรือไม่มีสิ้นสุด)
x
เป็นประเภทอื่น หรือหากค่าเป็นสตริงที่ไม่ตรงกับรูปแบบข้างต้น ฟังก์ชันนี้ไม่อนุญาตให้ใช้อาร์กิวเมนต์เป็น 0 และไม่อนุญาตให้มีเว้นวรรคที่ไม่จำเป็นสำหรับอาร์กิวเมนต์สตริง ซึ่งแตกต่างจากฟังก์ชัน int
ของ Pythonตัวอย่าง:
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)แสดงผลความยาวของสตริง ลําดับ (เช่น รายการหรือทําเนียบ) พจนานุกรม หรือรายการอื่นๆ ที่วนซ้ำได้
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
ต้องระบุ ค่าที่จะรายงานความยาว |
list
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
|
default = [] ออบเจ็กต์ที่จะแปลง |
local_path_override
None local_path_override(module_name, path)ระบุว่าทรัพยากร Dependency ควรมาจากไดเรกทอรีบางรายการในดิสก์ภายใน คำสั่งนี้มีผลในโมดูลรากเท่านั้น กล่าวคือ หากผู้อื่นใช้โมดูลหนึ่งเป็นทรัพยากร Dependency ระบบก็จะไม่สนใจการลบล้างของโมดูลนั้น
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
module_name
|
ต้องระบุ ชื่อของโมดูล Bazel ที่ต้องพึ่งพาเพื่อใช้การลบล้างนี้ |
path
|
ต้องระบุ เส้นทางไปยังไดเรกทอรีที่มีโมดูลนี้ |
สูงสุด
unknown max(*args)แสดงผลอาร์กิวเมนต์ที่ใหญ่ที่สุดของอาร์กิวเมนต์ทั้งหมดที่ระบุ หากระบุอาร์กิวเมนต์เพียงรายการเดียว อาร์กิวเมนต์นั้นจะต้องเป็นแบบวนซ้ำที่ไม่ใช่ค่าว่าง ระบบจะแสดงข้อผิดพลาดหากองค์ประกอบไม่สามารถเปรียบเทียบกันได้ (เช่น int ที่มีสตริง) หรือหากไม่ได้ระบุอาร์กิวเมนต์ใดๆ
max(2, 5, 4) == 5 max([5, 6, 3]) == 6
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
args
|
required องค์ประกอบที่จะตรวจสอบ |
นาที
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 ยกเว้นว่าไม่ได้ฝังอยู่ในสตริงเวอร์ชัน แต่อยู่ในรูปแบบช่องแยกต่างหาก โมดูลที่มีระดับความเข้ากันได้แตกต่างกันจะมีส่วนร่วมในการแปลงเวอร์ชันเสมือนเป็นโมดูลที่ใช้ชื่อต่างกัน แต่กราฟทรัพยากร Dependency ไม่สามารถมีโมดูลหลายรายการที่มีชื่อเดียวกันแต่มีระดับความเข้ากันได้ต่างกัน (เว้นแต่ว่า multiple_version_override จะมีผล ดูรายละเอียดเพิ่มเติม)
|
repo_name
|
default = '' ชื่อของที่เก็บข้อมูลที่แสดงถึงโมดูลนี้ตามที่โมดูลเห็น โดยค่าเริ่มต้น ชื่อของที่เก็บจะเป็นชื่อของโมดูล คุณระบุชื่อนี้เพื่อให้การย้ายข้อมูลโปรเจ็กต์ที่ใช้ชื่อรีโปสำหรับโปรเจ็กต์นั้นแตกต่างจากชื่อโมดูลได้ง่ายขึ้น |
bazel_compatibility
|
Iterable of strings ;
default = []รายการเวอร์ชัน Bazel ที่อนุญาตให้ผู้ใช้ประกาศว่าเวอร์ชัน Bazel ใดที่เข้ากันได้กับโมดูลนี้ การดำเนินการนี้จะไม่ส่งผลต่อการแก้ไขข้อกำหนดเบื้องต้น แต่ 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='')สร้างส่วนขยายโมดูลใหม่ จัดเก็บไว้ในค่าส่วนกลางเพื่อให้ส่งออกและใช้ได้ในไฟล์ MODULE.bazel
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
implementation
|
required ฟังก์ชันที่ใช้ส่วนขยายโมดูลนี้ ต้องใช้พารามิเตอร์เดียว module_ctx ระบบจะเรียกใช้ฟังก์ชันนี้ 1 ครั้งในช่วงเริ่มต้นของการสร้างเพื่อระบุชุดที่เก็บที่มีอยู่
|
tag_classes
|
default = {} พจนานุกรมสำหรับประกาศคลาสแท็กทั้งหมดที่ใช้โดยส่วนขยาย โดยจะแมปจากชื่อคลาสแท็กกับออบเจ็กต์ tag_class
|
doc
|
default = '' คำอธิบายส่วนขยายของโมดูลที่เครื่องมือสร้างเอกสารประกอบสามารถดึงข้อมูลได้ |
multiple_version_override
None multiple_version_override(module_name, versions, registry='')ระบุว่าข้อกำหนดควรยังคงมาจากรีจิสทรี แต่ควรอนุญาตให้มีเวอร์ชันหลายเวอร์ชันอยู่ร่วมกันได้ โปรดดูรายละเอียดเพิ่มเติมในเอกสารประกอบ คำสั่งนี้มีผลในโมดูลรากเท่านั้น กล่าวคือ หากผู้อื่นใช้โมดูลหนึ่งเป็นทรัพยากร Dependency ระบบก็จะไม่สนใจการลบล้างของโมดูลนั้น
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
module_name
|
ต้องระบุ ชื่อของทรัพยากร Dependency ของโมดูล Bazel ที่จะใช้การลบล้างนี้ |
versions
|
Iterable of strings ;
ต้องระบุระบุเวอร์ชันที่อนุญาตให้อยู่ร่วมกันอย่างชัดเจน เวอร์ชันเหล่านี้ต้องอยู่ในการเลือกล่วงหน้าของกราฟความเกี่ยวข้องอยู่แล้ว ระบบจะ "อัปเกรด" ทรัพยากรที่ต้องใช้ในโมดูลนี้เป็นเวอร์ชันที่สูงกว่าที่อนุญาตซึ่งใกล้เคียงที่สุดในระดับความเข้ากันได้เดียวกัน ส่วนทรัพยากรที่ต้องใช้ในโมดูลซึ่งมีเวอร์ชันสูงกว่าเวอร์ชันที่อนุญาตในระดับความเข้ากันได้เดียวกันจะทำให้เกิดข้อผิดพลาด |
registry
|
default = '' ลบล้างรีจิสทรีสำหรับโมดูลนี้ ควรใช้รีจิสทรีที่ระบุแทนการค้นหาโมดูลนี้จากรายการรีจิสทรีเริ่มต้น |
พิมพ์
None print(sep=" ", *args)พิมพ์
args
เป็นเอาต์พุตการแก้ไขข้อบกพร่อง โดยจะมีสตริง "DEBUG"
นำหน้าและตำแหน่ง (ไฟล์และหมายเลขบรรทัด) ของการเรียกใช้นี้ ระบบไม่ได้ระบุวิธีแปลงอาร์กิวเมนต์เป็นสตริงที่แน่นอนและอาจเปลี่ยนแปลงได้ทุกเมื่อ โดยเฉพาะอย่างยิ่ง รูปแบบอาจแตกต่างจาก (และละเอียดกว่า) การจัดรูปแบบที่ str()
และ repr()
ดำเนินการไม่แนะนำให้ใช้ print
ในโค้ดเวอร์ชันที่ใช้งานจริงเนื่องจากจะทำให้เกิดสแปมสำหรับผู้ใช้ สําหรับการเลิกใช้งาน เราขอแนะนำให้ใช้ข้อผิดพลาดแบบฮาร์ดโดยใช้ fail()
เมื่อเป็นไปได้
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
sep
|
default = " " สตรีงตัวคั่นระหว่างออบเจ็กต์ โดยค่าเริ่มต้นคือเว้นวรรค (" ") |
args
|
ต้องระบุ วัตถุที่จะพิมพ์ |
provider
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
ระบบจะแสดงผล tupple ที่มี 2 องค์ประกอบ ได้แก่ ค่าที่เรียกใช้ได้ของ Provider
และค่าที่เรียกใช้ได้ของ ตัวสร้างแบบดิบ ดูรายละเอียดได้ที่กฎ (การเริ่มต้นที่กำหนดเองของผู้ให้บริการที่กำหนดเอง) และการพูดคุยเกี่ยวกับพารามิเตอร์ init
ด้านล่าง
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
doc
|
default = '' คําอธิบายของผู้ให้บริการที่เครื่องมือสร้างเอกสารประกอบสามารถดึงข้อมูลได้ |
fields
|
sequence of strings; or dict; or None ;
default = Noneหากระบุ จะจํากัดชุดช่องที่อนุญาต ค่าที่เป็นไปได้มีดังนี้
|
init
|
callable; or None ;
default = Noneการเรียกกลับที่ไม่บังคับสําหรับการประมวลผลก่อนการประมวลผลและตรวจสอบค่าฟิลด์ของผู้ให้บริการระหว่างการสร้างอินสแตนซ์ หากระบุ init provider() จะแสดงผล tupple ที่มี 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
|
required ค่าขององค์ประกอบเริ่มต้นหากระบุค่าหยุดไว้ มิฉะนั้นค่าของหยุดและค่าเริ่มต้นจริงจะเป็น 0 |
stop_or_none
|
int; or None ;
default = Noneindex ของรายการแรก (ไม่บังคับ) ที่ไม่รวมอยู่ในรายการผลลัพธ์ การสร้างรายการจะหยุดก่อนถึง stop
|
step
|
default = 1 การเพิ่มขึ้น (ค่าเริ่มต้นคือ 1) ผลลัพธ์อาจออกมาเป็นลบ |
register_execution_platforms()
None register_execution_platforms(*platform_labels)ลงทะเบียนแพลตฟอร์มที่กําหนดไว้แล้วเพื่อให้ Bazel ใช้เป็นแพลตฟอร์มการดําเนินการในระหว่างการแก้ไขชุดเครื่องมือ
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
platform_labels
|
sequence of strings ;
ต้องระบุป้ายกำกับของแพลตฟอร์มที่จะจดทะเบียน |
register_execution_platforms(dev_dependency)
None register_execution_platforms(dev_dependency=False, *platform_labels)ระบุแพลตฟอร์มการดําเนินการที่กําหนดไว้แล้วที่จะลงทะเบียนเมื่อเลือกโมดูลนี้ ควรเป็นรูปแบบเป้าหมายสัมบูรณ์ (เช่น เริ่มต้นด้วย
@
หรือ //
) ดูข้อมูลเพิ่มเติมได้ที่ความละเอียดของ Toolchain
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
dev_dependency
|
default = False หากเป็น "จริง" ระบบจะไม่ลงทะเบียนแพลตฟอร์มการเรียกใช้หากโมดูลปัจจุบันไม่ใช่โมดูลรูทหรือเปิดใช้ `--ignore_dev_dependency` |
platform_labels
|
sequence of strings ;
ต้องระบุป้ายกำกับของแพลตฟอร์มที่จะจดทะเบียน |
register_toolchains()
None register_toolchains(*toolchain_labels)ลงทะเบียน Toolchain ที่กำหนดไว้ล่วงหน้าเพื่อให้ Bazel นำไปใช้ในระหว่างการแปลง Toolchain ดูตัวอย่างการกําหนดและการลงทะเบียนเครื่องมือทางเทคนิค
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
toolchain_labels
|
sequence of strings ;
ต้องระบุป้ายกำกับของเครื่องมือทางเทคนิคที่จะลงทะเบียน |
register_toolchains(dev_dependency)
None register_toolchains(dev_dependency=False, *toolchain_labels)ระบุเครื่องมือทางเทคนิคที่กําหนดไว้แล้วเพื่อลงทะเบียนเมื่อเลือกข้อบังคับนี้ ควรเป็นรูปแบบเป้าหมายแบบสัมบูรณ์ (เช่น ขึ้นต้นด้วย
@
หรือ //
) ดูข้อมูลเพิ่มเติมที่การแก้ไขเครื่องมือทางเทคนิค
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
dev_dependency
|
default = False หากเป็น "จริง" ระบบจะไม่ลงทะเบียนเครื่องมือทางเทคนิคหากโมดูลปัจจุบันไม่ใช่โมดูลรูทหรือเปิดใช้ `--ignore_dev_dependency` |
toolchain_labels
|
sequence of strings ;
ต้องระบุป้ายกำกับของเครื่องมือทางเทคนิคที่จะลงทะเบียน |
repository_rule(implementation, attrs, local, environ, configure, remotable, doc)
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')สร้างกฎที่เก็บใหม่ จัดเก็บไว้ในค่าส่วนกลางเพื่อให้โหลดและเรียกใช้งานจากไฟล์ WORKSPACE ได้
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
implementation
|
required ฟังก์ชันที่ใช้กฎนี้ ต้องมีพารามิเตอร์เดียว repository_ctx ระบบจะเรียกใช้ฟังก์ชันนี้ในระหว่างระยะการโหลดสําหรับอินสแตนซ์แต่ละรายการของกฎ
|
attrs
|
dict; or None ;
default = Noneพจนานุกรมเพื่อประกาศแอตทริบิวต์ทั้งหมดของกฎ โดยจะแมปจากชื่อแอตทริบิวต์กับออบเจ็กต์แอตทริบิวต์ (ดูโมดูล attr) แอตทริบิวต์ที่ขึ้นต้นด้วย _ เป็นแอตทริบิวต์ส่วนตัว และใช้เพื่อเพิ่มการพึ่งพาโดยนัยในป้ายกำกับลงในไฟล์ได้ (กฎของที่เก็บข้อมูลต้องไม่ขึ้นอยู่กับอาร์ติแฟกต์ที่สร้างขึ้น) ระบบจะเพิ่มแอตทริบิวต์ name โดยปริยายและไม่จำเป็นต้องระบุ
|
local
|
default = False ระบุว่ากฎนี้จะดึงข้อมูลทั้งหมดจากระบบในเครื่องและควรได้รับการประเมินใหม่ทุกครั้งที่ดึงข้อมูล |
environ
|
sequence of strings ;
default = []ให้รายการตัวแปรสภาพแวดล้อมที่กฎที่เก็บข้อมูลนี้ใช้ หากตัวแปรสภาพแวดล้อมในรายการนั้นเปลี่ยนแปลง ระบบจะดึงข้อมูลพื้นที่เก็บข้อมูลอีกครั้ง |
configure
|
ค่าเริ่มต้น = เท็จ ระบุว่าที่เก็บจะตรวจสอบระบบเพื่อวัตถุประสงค์ในการกำหนดค่า |
remotable
|
default = False เวอร์ชันทดลอง พารามิเตอร์นี้อยู่ในขั้นทดลองและอาจเปลี่ยนแปลงได้ตลอดเวลา โปรดอย่าใช้ข้อมูลนี้ คุณอาจเปิดใช้การดําเนินการนี้เป็นการทดลองได้โดยการตั้งค่า ---experimental_repo_remote_exec เข้ากันได้กับการดำเนินการระยะไกล |
doc
|
default = '' คำอธิบายกฎของที่เก็บข้อมูลที่เครื่องมือสร้างเอกสารประกอบสามารถดึงข้อมูลได้ |
repository_rule(implementation, attrs, local, environ, configure, remotable, doc)
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc='')สร้างกฎที่เก็บใหม่ จัดเก็บไว้ในค่าส่วนกลางเพื่อให้โหลดและเรียกใช้งานจากไฟล์ WORKSPACE ได้
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
implementation
|
required ฟังก์ชันที่ใช้กฎนี้ ต้องมีพารามิเตอร์เดียว repository_ctx จะมีการเรียกฟังก์ชันนี้ในช่วงการโหลดสำหรับกฎแต่ละรายการ
|
attrs
|
dict; or None ;
ค่าเริ่มต้น = ไม่มีพจนานุกรมเพื่อประกาศแอตทริบิวต์ทั้งหมดของกฎ โดยจะแมปจากชื่อแอตทริบิวต์ไปยังออบเจ็กต์แอตทริบิวต์ (ดูโมดูล attr) แอตทริบิวต์ที่ขึ้นต้นด้วย _ เป็นแอตทริบิวต์ส่วนตัว และใช้เพื่อเพิ่มการพึ่งพาโดยนัยในป้ายกำกับลงในไฟล์ได้ (กฎของที่เก็บข้อมูลต้องไม่ขึ้นอยู่กับอาร์ติแฟกต์ที่สร้างขึ้น) ระบบจะเพิ่มแอตทริบิวต์ name โดยปริยายและไม่จำเป็นต้องระบุ
|
local
|
default = False ระบุว่ากฎนี้จะดึงข้อมูลทั้งหมดจากระบบในเครื่องและควรได้รับการประเมินใหม่ทุกครั้งที่ดึงข้อมูล |
environ
|
sequence of strings ;
ค่าเริ่มต้น = []ระบุรายการตัวแปรสภาพแวดล้อมที่กฎที่เก็บนี้อ้างอิงอยู่ หากตัวแปรสภาพแวดล้อมในรายการนั้นเปลี่ยนแปลง ระบบจะดึงข้อมูลพื้นที่เก็บข้อมูลอีกครั้ง |
configure
|
ค่าเริ่มต้น = เท็จ ระบุว่าที่เก็บจะตรวจสอบระบบเพื่อวัตถุประสงค์ในการกำหนดค่า |
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
|
required ฟังก์ชัน Starlark ที่ใช้กฎนี้ต้องมีพารามิเตอร์เพียง 1 รายการเท่านั้น ได้แก่ ctx จะมีการเรียกฟังก์ชันนี้ในช่วงการวิเคราะห์สำหรับแต่ละอินสแตนซ์ของกฎ มีสิทธิ์เข้าถึงแอตทริบิวต์ที่ผู้ใช้ให้ไว้ ต้องสร้างการดำเนินการเพื่อสร้างเอาต์พุตที่ประกาศทั้งหมด |
test
|
default = False ระบุว่ากฎนี้เป็นกฎทดสอบหรือไม่ กล่าวคือ กฎนี้อาจเป็นเรื่องของคําสั่ง blaze test หรือไม่ ระบบจะถือว่ากฎทดสอบทั้งหมดทำงานได้โดยอัตโนมัติ คุณจึงไม่จำเป็นต้อง (และไม่แนะนํา) ตั้งค่า executable = True ให้กับกฎทดสอบอย่างชัดเจน ดูข้อมูลเพิ่มเติมได้ที่ หน้ากฎ
|
attrs
|
dict; or None ;
default = Noneพจนานุกรมเพื่อประกาศแอตทริบิวต์ทั้งหมดของกฎ โดยจะแมปจากชื่อแอตทริบิวต์ไปยังออบเจ็กต์แอตทริบิวต์ (ดูโมดูล attr) แอตทริบิวต์ที่ขึ้นต้นด้วย _ จะเป็นแอตทริบิวต์ส่วนตัว และสามารถใช้เพื่อเพิ่มการพึ่งพาโดยนัยในป้ายกำกับ ระบบจะเพิ่มแอตทริบิวต์ name โดยปริยายและไม่จำเป็นต้องระบุ ระบบจะเพิ่มแอตทริบิวต์ visibility , deprecation , tags , testonly และ features โดยปริยายและไม่สามารถลบล้างได้ กฎส่วนใหญ่ต้องใช้แอตทริบิวต์เพียงไม่กี่รายการ ฟังก์ชันกฎจะจำกัดขนาดของ attrs เพื่อจำกัดการใช้หน่วยความจำ
|
outputs
|
dict; or None; or function ;
default = Noneเลิกใช้งานแล้ว พารามิเตอร์นี้เลิกใช้งานแล้วและจะถูกนำออกเร็วๆ นี้ โปรดอย่าใช้ข้อมูลนี้ ปิดใช้กับ ---incompatible_no_rule_outputs_param ใช้ธงนี้เพื่อยืนยันว่าโค้ดของคุณเข้ากันได้กับการนำโค้ดที่กำลังจะเกิดขึ้นในเร็วๆ นี้ พารามิเตอร์นี้เลิกใช้งานแล้ว ย้ายข้อมูลกฎเพื่อใช้ OutputGroupInfo หรือ attr.output แทน สคีมาสำหรับกำหนดเอาต์พุตที่ประกาศล่วงหน้า ผู้ใช้ไม่ได้ระบุป้ายกำกับสำหรับไฟล์เหล่านี้ ซึ่งแตกต่างจากแอตทริบิวต์ ค่าของอาร์กิวเมนต์นี้คือพจนานุกรมหรือฟังก์ชัน Callback ที่สร้างพจนานุกรม ฟังก์ชัน Callback ทํางานคล้ายกับแอตทริบิวต์ความเกี่ยวข้องที่คำนวณแล้ว โดยระบบจะจับคู่ชื่อพารามิเตอร์ของฟังก์ชันกับแอตทริบิวต์ของกฎ เช่น หากคุณส่ง แต่ละรายการในพจนานุกรมจะสร้างเอาต์พุตที่ประกาศไว้ล่วงหน้าโดยที่คีย์เป็นตัวระบุ และค่าคือเทมเพลตสตริงที่กำหนดป้ายกำกับของเอาต์พุตนั้น ในฟังก์ชันการใช้งานของกฎ ตัวระบุจะกลายเป็นชื่อช่องที่ใช้เข้าถึง
ในทางปฏิบัติ ตัวยึดตําแหน่งการแทนที่ที่ใช้กันมากที่สุดคือ |
executable
|
default = False ระบบจะถือว่ากฎนี้สามารถเรียกใช้ได้หรือไม่ กล่าวคือ กฎนี้อาจเป็นเรื่องของคําสั่ง blaze run หรือไม่ ดูข้อมูลเพิ่มเติมได้ที่หน้ากฎ
|
output_to_genfiles
|
default = False หากเป็นจริง ระบบจะสร้างไฟล์ในไดเรกทอรี genfiles แทนไดเรกทอรี bin โปรดอย่าตั้งค่า Flag นี้ เว้นแต่ว่าคุณต้องการใช้เพื่อให้เข้ากันได้กับกฎที่มีอยู่ (เช่น เมื่อสร้างไฟล์ส่วนหัวสำหรับ C++) |
fragments
|
sequence of strings ;
default = []ชื่อรายการของข้อมูลโค้ดการกําหนดค่าที่กฎจําเป็นในการกําหนดค่าเป้าหมาย |
host_fragments
|
sequence of strings ;
default = []ชื่อรายการของข้อมูลโค้ดการกำหนดค่าที่กฎกำหนดในการกำหนดค่าโฮสต์ |
_skylark_testable
|
default = False (ทดลอง) หากเป็น True กฎนี้จะแสดงการดำเนินการเพื่อให้กฎที่ขึ้นอยู่กับกฎนี้ตรวจสอบผ่านผู้ให้บริการ Actions ผู้ให้บริการยังพร้อมใช้งานสำหรับกฎเองด้วยโดยเรียกใช้ ctx.created_actions() ควรใช้เพื่อทดสอบลักษณะการทํางานของกฎ Starlark ในเวลาวิเคราะห์เท่านั้น เราอาจนำการแจ้งเตือนนี้ออกในอนาคต |
toolchains
|
sequence ;
default = []หากตั้งค่าไว้ ชุดเครื่องมือทางเทคนิคที่กฎนี้กำหนด รายการอาจมีออบเจ็กต์สตริง ป้ายกำกับ หรือ StarlarkToolchainTypeApi ผสมกันก็ได้ ระบบจะค้นหา Toolchain โดยตรวจสอบแพลตฟอร์มปัจจุบัน และส่งไปยังการใช้งานกฎผ่าน ctx.toolchain
|
incompatible_use_toolchain_transition
|
default = False เลิกใช้งานแล้ว ไม่ควรนำมาใช้อีกต่อไป |
doc
|
default = '' คําอธิบายกฎที่เครื่องมือสร้างเอกสารประกอบสามารถดึงข้อมูลได้ |
provides
|
default = [] รายชื่อผู้ให้บริการที่ฟังก์ชันการติดตั้งใช้งานจะต้องแสดง ระบบจะแสดงข้อผิดพลาดหากฟังก์ชันการใช้งานละเว้นผู้ให้บริการประเภทใดประเภทหนึ่งจากรายการค่าที่แสดงผล อย่างไรก็ตาม ฟังก์ชันการติดตั้งใช้งานอาจแสดงผลผู้ให้บริการเพิ่มเติมที่ไม่ได้ระบุไว้ที่นี่ องค์ประกอบแต่ละรายการของรายการเป็นออบเจ็กต์ |
exec_compatible_with
|
sequence of strings ;
default = []รายการข้อจำกัดในแพลตฟอร์มการดำเนินการที่ใช้กับเป้าหมายทั้งหมดของกฎประเภทนี้ |
analysis_test
|
ค่าเริ่มต้น = เท็จ หากเป็น "จริง" ระบบจะถือว่ากฎนี้เป็นการทดสอบการวิเคราะห์ หมายเหตุ: กฎการทดสอบการวิเคราะห์จะกำหนดโดยใช้โครงสร้างพื้นฐานที่ระบุไว้ในไลบรารีหลักของ Starlark เป็นหลัก ดูคำแนะนำได้ที่การทดสอบ หากมีการกําหนดกฎเป็นกฎการทดสอบการวิเคราะห์ ระบบจะอนุญาตให้ใช้การเปลี่ยนการกำหนดค่าที่กําหนดโดยใช้ analysis_test_transition ในแอตทริบิวต์ของกฎ แต่จะต้องยอมรับข้อจํากัดบางอย่าง ดังนี้
|
build_setting
|
BuildSetting; or None ;
default = Noneหากตั้งค่าไว้ จะอธิบายว่ากฎนี้เป็น build setting ประเภทใด โปรดดูข้อบังคับ config หากตั้งค่านี้ไว้ ระบบจะเพิ่มแอตทริบิวต์ที่จำเป็นชื่อ "build_setting_default" ลงในกฎนี้โดยอัตโนมัติ โดยมีประเภทที่สอดคล้องกับค่าที่ป้อนที่นี่
|
cfg
|
default = None หากตั้งค่าไว้ จะชี้ไปที่การเปลี่ยนการกำหนดค่าที่กฎจะมีผลกับการกำหนดค่าของตัวเองก่อนการวิเคราะห์ |
exec_groups
|
dict; or None ;
default = NoneDict of execution group name (string) to exec_group s. หากตั้งค่าไว้ กฎจะอนุญาตให้เรียกใช้การดำเนินการในแพลตฟอร์มการดำเนินการหลายแพลตฟอร์มภายในเป้าหมายเดียว ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบเกี่ยวกับกลุ่มการดําเนินการ
|
compile_one_filetype
|
sequence of strings; or None ;
default = Noneใช้โดย --compile_one_dependency: หากมีกฎหลายข้อใช้ไฟล์ที่ระบุ เราควรเลือกกฎนี้เหนือกฎอื่นๆ หรือไม่ |
name
|
string; or None ;
ค่าเริ่มต้น = ไม่มีเลิกใช้งาน พารามิเตอร์นี้เลิกใช้งานแล้วและจะถูกนำออกเร็วๆ นี้ โปรดอย่าพึ่งพา ถูกปิดใช้ด้วย --+incompatible_remove_rule_name_parameter ใช้ Flag นี้เพื่อยืนยันว่าโค้ดของคุณเข้ากันได้กับการนําออกที่กําลังจะเกิดขึ้น เลิกใช้งานแล้ว: อย่าใช้ ชื่อของกฎนี้ตามที่ Bazel เข้าใจและรายงานในบริบทต่างๆ เช่น การบันทึก หากไม่ใส่พารามิเตอร์นี้ ระบบจะตั้งชื่อกฎเป็นชื่อของตัวแปรส่วนกลาง Starlark ตัวแรกที่จะใช้ผูกกับกฎนี้ภายในโมดูล .bzl ที่ประกาศ ดังนั้น การระบุชื่อที่ชัดเจนสำหรับกฎจะไม่เปลี่ยนตำแหน่งที่คุณได้รับอนุญาตให้สร้างอินสแตนซ์ของกฎ |
เลือก
unknown select(x, no_match_error='')
select()
คือฟังก์ชันตัวช่วยที่ทำให้แอตทริบิวต์กฎกําหนดค่าได้ ดูรายละเอียดได้ที่สร้างสารานุกรม
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
x
|
required Dict ที่แมปเงื่อนไขการกําหนดค่ากับค่า แต่ละคีย์คือ ป้ายกำกับ หรือสตริงป้ายกำกับที่ระบุอินสแตนซ์ config_setting หรือรูปทรงจำกัด_ค่า ดูเอกสารประกอบเกี่ยวกับมาโครเพื่อดูกรณีที่ควรใช้ป้ายกํากับแทนสตริง |
no_match_error
|
default = '' ข้อผิดพลาดที่กำหนดเองซึ่งไม่บังคับเพื่อรายงานหากไม่มีเงื่อนไขที่ตรงกัน |
single_version_override
None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)ระบุว่าข้อกำหนดควรยังคงมาจากรีจิสทรี แต่ควรปักหมุดเวอร์ชันไว้ หรือลบล้างรีจิสทรี หรือใช้รายการแพตช์ คำสั่งนี้จะมีผลเฉพาะในโมดูลรูท กล่าวคือ หากมีการใช้โมดูลเป็นข้อกำหนดโดยผู้อื่น ระบบจะไม่สนใจการลบล้างของโมดูลนั้น
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
module_name
|
ต้องระบุ ชื่อของโมดูล Bazel ที่ต้องพึ่งพาเพื่อใช้การลบล้างนี้ |
version
|
default = '' ลบล้างเวอร์ชันที่ประกาศของโมดูลนี้ในกราฟความเกี่ยวข้อง กล่าวคือ โมดูลนี้จะถูก "ปักหมุด" ไว้กับเวอร์ชันการลบล้างนี้ คุณละเว้นแอตทริบิวต์นี้ได้หากทุกแอตทริบิวต์ต้องการลบล้างรีจิสทรีหรือแพตช์ |
registry
|
default = '' ลบล้างรีจิสทรีสําหรับโมดูลนี้ ควรใช้รีจิสทรีที่ระบุแทนการค้นหาโมดูลนี้จากรายการรีจิสทรีเริ่มต้น |
patches
|
Iterable of strings ;
default = []รายการป้ายกำกับที่ชี้ไปยังไฟล์แพตช์ที่จะใช้กับโมดูลนี้ ไฟล์แพตช์ต้องอยู่ในโครงสร้างแหล่งที่มาของโปรเจ็กต์ระดับบนสุด ระบบจะบังคับใช้ตามลําดับรายการ |
patch_cmds
|
Iterable of strings ;
default = []ลําดับคําสั่ง Bash ที่จะใช้ใน Linux/Macos หลังจากติดตั้งแพตช์ |
patch_strip
|
ค่าเริ่มต้น = 0 เหมือนกับอาร์กิวเมนต์ --strip ของแพตช์ Unix |
จัดเรียง
list sorted(iterable, *, key=None, reverse=False)แสดงรายการใหม่ที่จัดเรียงซึ่งมีองค์ประกอบทั้งหมดของลําดับที่นําเข้าได้ เกิดข้อผิดพลาดหากมีคู่ขององค์ประกอบ x, y นำมาเปรียบเทียบโดยใช้ x < y ไม่ได้ ระบบจะจัดเรียงองค์ประกอบตามลําดับจากน้อยไปมาก เว้นแต่อาร์กิวเมนต์ reverse จะเท่ากับ True ซึ่งในกรณีนี้ระบบจะจัดเรียงตามลําดับจากมากไปน้อย การจัดเรียงมีความเสถียร: องค์ประกอบที่เปรียบเทียบเท่ากันจะคงลำดับเดิมที่เกี่ยวข้องไว้
sorted([3, 5, 4]) == [3, 4, 5]
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
iterable
|
ต้องระบุ ลําดับที่วนซ้ำได้เพื่อจัดเรียง |
key
|
default = None เป็นฟังก์ชันที่ไม่บังคับซึ่งใช้กับแต่ละองค์ประกอบก่อนการเปรียบเทียบ |
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 ที่มีองค์ประกอบเดียวกันกับค่า "Iterable" ที่กำหนด
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
|
required ออบเจ็กต์ที่จะตรวจสอบประเภท |
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
|
ค่าเริ่มต้น = False หากเป็น True ระบบจะไม่สนใจการใช้ส่วนขยายโมดูลนี้หากโมดูลปัจจุบันไม่ใช่โมดูลรูทหรือเปิดใช้ `--ignore_dev_dependency` |
isolate
|
default = False หากเป็น "จริง" การใช้งานส่วนขยายของโมดูลนี้จะแยกออกจากการใช้งานอื่นๆ ทั้งหมด ทั้งในส่วนนี้และโมดูลอื่นๆ แท็กที่สร้างขึ้นสำหรับการใช้งานนี้จะไม่ส่งผลต่อการใช้งานอื่นๆ และที่เก็บที่ส่วนขยายสร้างขึ้นสำหรับการใช้งานนี้จะแตกต่างจากที่เก็บอื่นๆ ทั้งหมดที่ส่วนขยายสร้างขึ้น |
use_repo
None use_repo(extension_proxy, *args, **kwargs)นําเข้าที่เก็บข้อมูลอย่างน้อย 1 รายการที่ส่วนขยายของโมดูลที่ระบุสร้างขึ้นไปยังขอบเขตของโมดูลปัจจุบัน
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
extension_proxy
|
ต้องระบุ ออบเจ็กต์พร็อกซีของส่วนขยายโมดูลที่การเรียก use_extension แสดงผล
|
args
|
ต้องระบุ ชื่อของที่เก็บที่จะนำเข้า |
kwargs
|
ต้องระบุ ระบุที่เก็บบางแห่งที่จะนําเข้าไปยังขอบเขตของโมดูลปัจจุบันโดยใช้ชื่ออื่น คีย์ควรเป็นชื่อที่จะใช้ในขอบเขตปัจจุบัน ส่วนค่าควรเป็นชื่อเดิมที่ส่งออกโดยส่วนขยายโมดูล |
การเปิดเผย
None visibility(value)
ตั้งค่าระดับการมองเห็นการโหลดของโมดูล .bzl ที่กําลังเริ่มต้น
ระดับการมองเห็นการโหลดของโมดูลจะกำหนดว่าไฟล์ BUILD และ .bzl อื่นๆ จะโหลดโมดูลนั้นหรือไม่ (การดำเนินการนี้แตกต่างจากระดับการเข้าถึงเป้าหมายของไฟล์ซอร์ส .bzl ที่เกี่ยวข้อง ซึ่งจะควบคุมว่าไฟล์อาจปรากฏเป็นข้อกำหนดของเป้าหมายอื่นๆ หรือไม่) การมองเห็นการโหลดจะทำงานในระดับแพ็กเกจ: หากต้องการโหลดโมดูล ไฟล์ที่ทำการโหลดต้องอยู่ในแพ็กเกจที่ได้รับสิทธิ์เข้าถึงโมดูล โมดูลจะโหลดภายในแพ็กเกจของตัวเองได้เสมอ ไม่ว่าจะมีการแสดงผลหรือไม่ก็ตาม
สามารถเรียก visibility()
ได้เพียงครั้งเดียวต่อไฟล์ .bzl และจะเรียกที่ระดับบนสุดเท่านั้น ไม่ใช่ภายในฟังก์ชัน รูปแบบที่แนะนำคือวางการเรียกใช้นี้ไว้ใต้คำสั่ง load()
โดยตรงและตรรกะสั้นๆ ที่จําเป็นต่อการกำหนดอาร์กิวเมนต์
หากตั้งค่า Flag --check_bzl_visibility
เป็น "เท็จ" การละเมิดการแสดงผลของโหลดจะแสดงคำเตือน แต่ไม่ทำให้การบิลด์ล้มเหลว
พารามิเตอร์
พารามิเตอร์ | คำอธิบาย |
---|---|
value
|
ต้องระบุ รายการสตริงข้อมูลจำเพาะของแพ็กเกจหรือสตริงข้อมูลจำเพาะของแพ็กเกจเดียว ข้อกำหนดเฉพาะของแพ็กเกจใช้รูปแบบเดียวกับ
ไม่อนุญาตให้ใช้ไวยากรณ์ "@" ระบบจะตีความข้อกำหนดทั้งหมดตามที่เก็บของโมดูลปัจจุบัน หาก โปรดทราบว่า Flag |
พื้นที่ทำงาน
None workspace(name)
ฟังก์ชันนี้ใช้ได้เฉพาะในไฟล์ WORKSPACE
และต้องประกาศก่อนฟังก์ชันอื่นๆ ทั้งหมดในไฟล์ WORKSPACE
ไฟล์ WORKSPACE
แต่ละไฟล์ควรมีฟังก์ชัน workspace
ตั้งชื่อพื้นที่ทํางานนี้ ชื่อเวิร์กスペースควรเป็นคำอธิบายโปรเจ็กต์ในรูปแบบแพ็กเกจ Java โดยใช้ขีดล่างเป็นตัวคั่น เช่น github.com/bazelbuild/bazel ควรใช้ com_github_bazelbuild_bazel
ชื่อนี้ใช้สำหรับไดเรกทอรีที่จัดเก็บไฟล์รันไทม์ของที่เก็บ เช่น หากมีไฟล์รัน foo/bar
ในที่เก็บในเครื่องและไฟล์ WORKSPACE มี workspace(name = 'baz')
ไฟล์รันไฟล์จะพร้อมใช้งานภายใต้ mytarget.runfiles/baz/foo/bar
หากไม่ได้ระบุชื่อพื้นที่ทํางาน ระบบจะลิงก์ไฟล์เรียกใช้กับ 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
โดยที่แต่ละ tupple ของ i จะมีองค์ประกอบที่ i จากลําดับอาร์กิวเมนต์หรือรายการที่วนซ้ำได้แต่ละรายการ รายการมีขนาดของอินพุตที่สั้นที่สุด เมื่อใช้อาร์กิวเมนต์ที่วนซ้ำได้รายการเดียว ฟังก์ชันนี้จะแสดงผลรายการมัลติเพล็กซ์ 1 รายการ หากไม่มีอาร์กิวเมนต์ จะแสดงเป็นรายการที่ว่างเปล่า ตัวอย่าง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
|
รายการ ต้องระบุเพื่อใส่ไฟล์ ZIP |