โมดูลมีสิทธิ์

รายงานปัญหา ดูแหล่งที่มา Nightly

บริบทของส่วนขยายโมดูลที่มีฟังก์ชันตัวช่วยและข้อมูลเกี่ยวกับแท็กที่เกี่ยวข้องในกราฟทรัพยากร Dependency คุณจะได้รับออบเจ็กต์Module_ctxเป็นอาร์กิวเมนต์ของฟังก์ชัน implementation เมื่อสร้างส่วนขยายโมดูล

สำหรับสมาชิก

ดาวน์โหลด

unknown module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)

ดาวน์โหลดไฟล์ไปยังเส้นทางเอาต์พุตสำหรับ URL ที่ระบุ และแสดงผล Struct ที่มี success ซึ่งเป็นแฟล็ก true หากดาวน์โหลดสำเร็จ และหากดาวน์โหลดสำเร็จ จะแฮชของไฟล์ที่มีช่อง sha256 และ integrity

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
url string หรือทำซ้ำได้ของสตริง ต้องระบุ
รายการ URL แบบมิเรอร์ที่อ้างอิงไฟล์เดียวกัน
output string หรือ Label หรือ path ค่าเริ่มต้นคือ ''
เส้นทางไปยังไฟล์เอาต์พุตที่สัมพันธ์กับไดเรกทอรีที่เก็บ
sha256 string; ค่าเริ่มต้นคือ ''
แฮช SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ต้องตรงกับแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด การละเว้น SHA-256 นั้นมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้ การละเว้นฟิลด์นี้อย่างดีที่สุดจะทำให้งานสร้างของคุณไม่ใช่สุญญากาศ ไม่บังคับเพื่อให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนส่ง
executable bool; ค่าเริ่มต้นคือ False
ตั้งค่าสถานะไฟล์ปฏิบัติการในไฟล์ที่สร้างขึ้นเป็น "เท็จ" โดยค่าเริ่มต้น
allow_fail bool; ค่าเริ่มต้นคือ False
หากตั้งค่าไว้ ให้ระบุข้อผิดพลาดในมูลค่าการแสดงผลแทนการเพิ่มข้อผิดพลาดสำหรับการดาวน์โหลดที่ล้มเหลว
canonical_id string; ค่าเริ่มต้นคือ ''
หากตั้งค่าไว้ ให้จำกัดการพบแคชไว้เฉพาะกรณีที่เพิ่มไฟล์ลงในแคชที่มีรหัส Canonical เดียวกัน
auth dict ค่าเริ่มต้นคือ {}
คำสั่งที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สำหรับ URL บางรายการ
headers dict; ค่าเริ่มต้นคือ {}
dict (ไม่บังคับ) ซึ่งระบุส่วนหัว http สำหรับ URL ทั้งหมด
integrity string; ค่าเริ่มต้นคือ ''
คาดหวัง checksum ของไฟล์ที่ดาวน์โหลดในรูปแบบ Subresource Integrity ซึ่งต้องตรงกับ checksum ของไฟล์ที่ดาวน์โหลด การละเว้นการตรวจสอบข้อผิดพลาดนั้นมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้ การละเว้นฟิลด์นี้อย่างดีที่สุดจะทำให้งานสร้างของคุณไม่ใช่สุญญากาศ ไม่บังคับเพื่อให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนส่ง
block bool; ค่าเริ่มต้นคือ True
หากตั้งค่าเป็น "เท็จ" การเรียกใช้จะแสดงผลทันทีและแสดงผลเป็นโทเค็นที่มีเมธอดเดียว Wait() ซึ่งจะบล็อกจนกว่าการดาวน์โหลดจะเสร็จสิ้น และส่งผลลัพธ์ตามปกติกลับมาหรือส่งตามปกติ

download_and_extract

struct module_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})

ดาวน์โหลดไฟล์ไปยังเส้นทางเอาต์พุตสำหรับ URL ที่ระบุ แตกไฟล์ออกมา และแสดงผล Struct ที่มี success แฟล็กซึ่งเป็น true หากดาวน์โหลดสำเร็จ และหากดาวน์โหลดสำเร็จ จะแฮชของไฟล์ที่มีช่อง sha256 และ integrity

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
url string หรือทำซ้ำได้ของสตริง ต้องระบุ
รายการ URL แบบมิเรอร์ที่อ้างอิงไฟล์เดียวกัน
output string หรือ Label หรือ path ค่าเริ่มต้นคือ ''
เส้นทางไปยังไดเรกทอรีที่ระบบจะคลายการแพคข้อมูลที่เก็บถาวร โดยสัมพันธ์กับไดเรกทอรีที่เก็บ
sha256 string; ค่าเริ่มต้นคือ ''
แฮช SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ต้องตรงกับแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด การละเว้น SHA-256 นั้นมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้ การละเว้นฟิลด์นี้อย่างดีที่สุดจะทำให้งานสร้างของคุณไม่ใช่สุญญากาศ ไม่บังคับเพื่อให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนส่ง หากมี ระบบจะตรวจสอบแคชของที่เก็บเพื่อหาไฟล์ที่มีแฮชที่ระบุก่อน และจะดำเนินการดาวน์โหลดหากไม่พบไฟล์ในแคชเท่านั้น เมื่อดาวน์โหลดสำเร็จ ระบบจะเพิ่มไฟล์ลงในแคช
type string; ค่าเริ่มต้นคือ ''
ซึ่งเป็นประเภทที่เก็บถาวรของไฟล์ที่ดาวน์โหลด โดยค่าเริ่มต้น ระบบจะกำหนดประเภทที่เก็บถาวรจากนามสกุลไฟล์ของ URL หากไฟล์ไม่มีนามสกุล คุณสามารถระบุได้ทั้ง "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".deb" หรือ ".tbz" ที่นี่
stripPrefix string; ค่าเริ่มต้นคือ ''
ซึ่งเป็นคำนำหน้าไดเรกทอรีที่จะตัดออกจากไฟล์ที่แยก ที่เก็บถาวรจำนวนมากมีไดเรกทอรีระดับบนสุดที่มีไฟล์ทั้งหมดในที่เก็บถาวร แทนที่จะต้องระบุคำนำหน้านี้ซ้ำแล้วซ้ำอีกใน build_file คุณจะใช้ช่องนี้เพื่อตัดคำนำหน้าออกจากไฟล์ที่ดึงมาได้
allow_fail bool; ค่าเริ่มต้นคือ False
หากตั้งค่าไว้ ให้ระบุข้อผิดพลาดในมูลค่าการแสดงผลแทนการเพิ่มข้อผิดพลาดสำหรับการดาวน์โหลดที่ล้มเหลว
canonical_id string; ค่าเริ่มต้นคือ ''
หากตั้งค่าไว้ ให้จำกัดการพบแคชไว้เฉพาะกรณีที่เพิ่มไฟล์ลงในแคชที่มีรหัส Canonical เดียวกัน
auth dict ค่าเริ่มต้นคือ {}
คำสั่งที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สำหรับ URL บางรายการ
headers dict; ค่าเริ่มต้นคือ {}
dict (ไม่บังคับ) ซึ่งระบุส่วนหัว http สำหรับ URL ทั้งหมด
integrity string; ค่าเริ่มต้นคือ ''
คาดหวัง checksum ของไฟล์ที่ดาวน์โหลดในรูปแบบ Subresource Integrity ซึ่งต้องตรงกับ checksum ของไฟล์ที่ดาวน์โหลด การละเว้นการตรวจสอบข้อผิดพลาดนั้นมีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้ การละเว้นฟิลด์นี้อย่างดีที่สุดจะทำให้งานสร้างของคุณไม่ใช่สุญญากาศ ไม่บังคับเพื่อให้การพัฒนาง่ายขึ้น แต่ควรตั้งค่าก่อนส่ง
rename_files dict ค่าเริ่มต้นคือ {}
คำสั่งที่ไม่บังคับซึ่งระบุไฟล์ที่จะเปลี่ยนชื่อระหว่างการดึงข้อมูล ระบบจะเปลี่ยนชื่อรายการที่เก็บถาวรที่มีชื่อตรงกับคีย์เป็นค่า ก่อนที่จะมีการปรับคำนำหน้าไดเรกทอรี ซึ่งสามารถใช้เพื่อดึงข้อมูลที่เก็บถาวรที่มีชื่อไฟล์ที่ไม่ใช่ Unicode หรือมีไฟล์ที่จะแยกไปยังเส้นทางเดียวกันในระบบไฟล์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

execute

exec_result module_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
arguments sequence; required
รายการอาร์กิวเมนต์ องค์ประกอบแรกควรเป็นเส้นทางไปยังโปรแกรมเพื่อเรียกใช้
timeout int; ค่าเริ่มต้นคือ 600
ระยะเวลาสูงสุดของคำสั่งเป็นวินาที (ค่าเริ่มต้นคือ 600 วินาที)
environment dict ค่าเริ่มต้นคือ {}
บังคับให้ตั้งค่าตัวแปรสภาพแวดล้อมบางรายการส่งไปยังกระบวนการ
quiet bool; ค่าเริ่มต้นคือ True
หากควรพิมพ์ stdout และ stderr ไปยังเทอร์มินัล
working_directory string; ค่าเริ่มต้นคือ ""
ไดเรกทอรีงานสําหรับการเรียกใช้คำสั่ง อาจสัมพัทธ์กับรูทของที่เก็บหรือแบบสัมบูรณ์ได้ ค่าเริ่มต้นคือรูทของที่เก็บ

extension_metadata

extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None, reproducible=False)

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
root_module_direct_deps ลำดับของสตริงหรือสตริง หรือ None ค่าเริ่มต้นคือ None
ชื่อของที่เก็บที่ส่วนขยายพิจารณาว่าเป็นทรัพยากร Dependency โดยตรงของโมดูลรูท หากโมดูลรูทนำเข้าที่เก็บเพิ่มเติมหรือไม่นำเข้าที่เก็บเหล่านี้ทั้งหมดผ่าน use_repo ทาง Bazel จะพิมพ์คำเตือนเมื่อมีการประเมินส่วนขยาย โดยสั่งให้ผู้ใช้เรียกใช้ bazel mod tidy เพื่อแก้ไขการเรียกใช้ use_repo โดยอัตโนมัติ

หากหนึ่งใน root_module_direct_deps และจะพิมพ์คำเตือนและคำสั่งแก้ไขเมื่อมีการประเมินส่วนขยาย

หากมีการระบุ root_module_direct_deps และ root_module_direct_dev_deps ไว้ รายการอื่นต้องเป็นเช่นเดียวกัน รายการที่ระบุโดยพารามิเตอร์ทั้งสองนี้ต้องไม่มีรายการร่วมกัน

คุณสามารถตั้งค่า root_module_direct_deps และ root_module_direct_dev_deps เป็นค่าพิเศษ "all" ที่แน่นอนได้ ซึ่งระบบจะถือว่ารายการที่มีชื่อที่เก็บทั้งหมดที่ส่วนขยายสร้างขึ้นเป็นค่า

root_module_direct_dev_deps ลำดับของสตริง หรือสตริง หรือ None ค่าเริ่มต้นคือ None
ชื่อของที่เก็บที่ส่วนขยายพิจารณาว่าเป็นทรัพยากร Dependency โดยตรงของโมดูลรูท หากโมดูลรูทนำเข้าที่เก็บเพิ่มเติมหรือไม่นำเข้าที่เก็บเหล่านี้ทั้งหมดผ่าน use_repo ในพร็อกซีส่วนขยายที่สร้างด้วย use_extension(..., dev_dependency = True) ทาง Bazel จะพิมพ์คำเตือนเมื่อมีการประเมินส่วนขยาย โดยแนะนำให้ผู้ใช้เรียกใช้ bazel mod tidy เพื่อแก้ไขการเรียกใช้ use_repo โดยอัตโนมัติ

หากมีการระบุ root_module_direct_deps และ root_module_direct_dev_deps ไว้ รายการอื่นต้องเป็นเช่นเดียวกัน รายการที่ระบุโดยพารามิเตอร์ทั้งสองนี้ต้องไม่มีรายการร่วมกัน

คุณสามารถตั้งค่า root_module_direct_deps และ root_module_direct_dev_deps เป็นค่าพิเศษ "all" ที่แน่นอนได้ ซึ่งระบบจะถือว่ารายการที่มีชื่อที่เก็บทั้งหมดที่ส่วนขยายสร้างขึ้นเป็นค่า

reproducible bool; ค่าเริ่มต้นคือ False
ระบุว่าส่วนขยายโมดูลนี้ช่วยให้มั่นใจว่าจะทำซ้ำได้อย่างสมบูรณ์ จึงไม่ควรจัดเก็บไว้ในไฟล์ล็อก

ไฟล์

None module_ctx.file(path, content='', executable=True, legacy_utf8=True)

สร้างไฟล์ในไดเรกทอรีที่เก็บด้วยเนื้อหาที่ระบุ

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path string หรือ Label หรือ path ต้องระบุ
เส้นทางของไฟล์ที่ต้องการสร้างโดยสัมพันธ์กับไดเรกทอรีที่เก็บ
content string; ค่าเริ่มต้นคือ ''
เนื้อหาของไฟล์ที่จะสร้าง และว่างเปล่าโดยค่าเริ่มต้น
executable bool; ค่าเริ่มต้นคือ True
ตั้งค่าสถานะไฟล์ปฏิบัติการในไฟล์ที่สร้างขึ้นเป็น true โดยค่าเริ่มต้น
legacy_utf8 bool; ค่าเริ่มต้นคือ True
เข้ารหัสเนื้อหาไฟล์เป็น UTF-8 ซึ่งเป็น true โดยค่าเริ่มต้น เวอร์ชันในอนาคตจะเปลี่ยนค่าเริ่มต้นและนำพารามิเตอร์นี้ออก

Getenv

string module_ctx.getenv(name, default=None)

แสดงผลค่าของตัวแปรสภาพแวดล้อม name เป็นสตริง หากมี หรือ default หากไม่มี

เมื่อสร้างแบบส่วนเพิ่ม การเปลี่ยนแปลงใดๆ ต่อค่าของตัวแปรที่ตั้งชื่อโดย name จะทำให้ระบบดึงข้อมูลที่เก็บนี้อีกครั้ง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
name string; required
ชื่อของตัวแปรสภาพแวดล้อมที่ต้องการ
default string หรือ None ค่าเริ่มต้นคือ None
ค่าเริ่มต้นที่จะแสดงผลหากไม่พบ "name"
อาจส่งคืน None

is_dev_dependency

bool module_ctx.is_dev_dependency(tag)

แสดงผลว่ามีการระบุแท็กที่ระบุในผลลัพธ์ของการเรียก use_extension ด้วย devDependency = True หรือไม่

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
tag bazel_module_tag; ต้องระบุ
แท็กที่ได้รับจาก bazel_module.tags

โมดูล

list module_ctx.modules

รายการโมดูล Bazel ทั้งหมดในกราฟทรัพยากร Dependency ภายนอกที่ใช้ส่วนขยายโมดูลนี้ โดยแต่ละรายการจะเป็นออบเจ็กต์ bazel_module ที่แสดงแท็กทั้งหมดที่ระบุไว้สําหรับส่วนขยายนี้ การทำซ้ำของพจนานุกรมนี้รับประกันว่าจะเหมือนกับการค้นหาแบบเริ่มจากความกว้างที่เริ่มต้นจากโมดูลรูท

os

repository_os module_ctx.os

โครงสร้างเพื่อเข้าถึงข้อมูลจากระบบ

เส้นทาง

path module_ctx.path(path)

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path string หรือ Label หรือ path ต้องระบุ
สตริง ป้ายกำกับ หรือเส้นทางที่จะใช้สร้างเส้นทาง

อ่าน

string module_ctx.read(path, *, watch='auto')

อ่านเนื้อหาของไฟล์ในระบบไฟล์

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path string หรือ Label หรือ path ต้องระบุ
เส้นทางของไฟล์เพื่ออ่าน
watch string; ค่าเริ่มต้นคือ 'auto'
ว่าจะดูไฟล์หรือไม่ อาจเป็นสตริง "yes" "no" หรือ "auto" การส่งผ่าน "yes" จะเหมือนกับการเรียกใช้เมธอด watch() ทันที การส่ง "no" จะไม่ถือว่าเป็นการดูไฟล์ การส่ง "auto" จะพยายามดูไฟล์ต่อเมื่อไฟล์ถูกกฎหมายเท่านั้น (โปรดดูข้อมูลเพิ่มเติมในเอกสารของ watch()

report_progress

None module_ctx.report_progress(status='')

อัปเดตสถานะความคืบหน้าสำหรับการดึงข้อมูลของที่เก็บหรือส่วนขยายโมดูลนี้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
status string; ค่าเริ่มต้นคือ ''
สตริงที่อธิบายสถานะปัจจุบันของความคืบหน้าการดึงข้อมูล

root_module_has_non_dev_dependency

bool module_ctx.root_module_has_non_dev_dependency

โมดูลรูทใช้ส่วนขยายนี้เป็นทรัพยากร Dependency ที่ไม่มีการพัฒนาหรือไม่

นาฬิกา

None module_ctx.watch(path)

บอก Bazel ให้คอยดูการเปลี่ยนแปลงในเส้นทางที่ระบุ เส้นทางนั้นมีอยู่ไหม หรือเป็นไฟล์หรือไดเรกทอรี การเปลี่ยนแปลงใดๆ ในไฟล์หรือไดเรกทอรีจะทำให้ที่เก็บหรือส่วนขยายโมดูลนี้ไม่ถูกต้อง และจะทำให้ระบบดึงข้อมูลใหม่หรือประเมินอีกครั้งในครั้งถัดไป

"การเปลี่ยนแปลง" ประกอบด้วยการเปลี่ยนแปลงเนื้อหาของไฟล์ (หากเส้นทางเป็นไฟล์) หากเส้นทางเป็นไฟล์แต่ปัจจุบันเป็นไดเรกทอรี หรือในทางกลับกัน และในกรณีที่เส้นทางเริ่มต้นหรือหยุดที่มีอยู่ สิ่งที่ควรทราบคือจะไม่รวมการเปลี่ยนแปลงในไฟล์ใดๆ ในไดเรกทอรีหากเส้นทางเป็นไดเรกทอรี หากเป็นเช่นนั้น โปรดใช้ path.readdir() แทน

โปรดทราบว่าการพยายามดูเส้นทางภายในที่เก็บที่กำลังดึงข้อมูลอยู่ หรือภายในไดเรกทอรีที่ใช้งานได้ของส่วนขยายโมดูลปัจจุบันจะทำให้เกิดข้อผิดพลาด ส่วนขยายโมดูลที่พยายามเฝ้าดูเส้นทางนอกพื้นที่ทำงาน Bazel ปัจจุบันจะส่งผลให้เกิดข้อผิดพลาดเช่นกัน

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
path string หรือ Label หรือ path ต้องระบุ
เส้นทางของไฟล์ที่จะรับชม

ไหน

path module_ctx.which(program)

แสดงผลเส้นทางของโปรแกรมที่เกี่ยวข้องหรือ ไม่มี หากไม่มีโปรแกรมดังกล่าวในเส้นทาง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
program string; required
โปรแกรมเพื่อค้นหาในเส้นทาง
อาจส่งคืน None