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

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

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

ดาวน์โหลด

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

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
url string; or Iterable of strings ต้องระบุ
รายการ URL มิเรอร์ที่อ้างอิงไฟล์เดียวกัน
output string; or Label; or path; เส้นทางเริ่มต้น = ''
ไปยังไฟล์เอาต์พุตซึ่งสัมพันธ์กับไดเรกทอรีที่เก็บ
sha256 default = ''
แฮช SHA-256 ที่คาดไว้ของไฟล์ที่ดาวน์โหลด ซึ่งต้องตรงกับแฮช SHA-256 ของไฟล์ที่ดาวน์โหลด การละเว้น SHA-256 มีความเสี่ยงด้านความปลอดภัยเนื่องจากไฟล์ระยะไกลอาจมีการเปลี่ยนแปลง การละเว้นช่องนี้อย่างดีที่สุดจะทำให้งานสร้างของคุณไม่ผ่อนปรน คุณไม่จำเป็นต้องทำการพัฒนาให้ง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง
executable default = False
ตั้งค่าแฟล็กสั่งการในไฟล์ที่สร้างขึ้น (false) ตามค่าเริ่มต้น
allow_fail default = False
หากตั้งค่าไว้ ให้ระบุข้อผิดพลาดในค่าที่แสดงผลแทนที่จะเพิ่มข้อผิดพลาดสำหรับการดาวน์โหลดที่ล้มเหลว
canonical_id default = ''
หากตั้งค่าไว้ ให้จำกัด Hit ของแคชไว้ที่กรณีที่มีการเพิ่มไฟล์ไปยังแคชที่มีรหัส Canonical เดียวกัน
auth default = {}
คำสั่งที่ไม่บังคับซึ่งระบุข้อมูลการตรวจสอบสิทธิ์สำหรับ URL บางรายการ
integrity default = ''
checksum ที่คาดหมายของไฟล์ที่ดาวน์โหลดในรูปแบบความสมบูรณ์ของทรัพยากรย่อย ซึ่งต้องตรงกับ Checksum ของไฟล์ที่ดาวน์โหลด การไม่ใส่การตรวจสอบข้อผิดพลาดเนื่องจากไฟล์ระยะไกลอาจเปลี่ยนแปลงได้ การละเว้นช่องนี้อย่างดีที่สุดจะทำให้งานสร้างของคุณไม่ผ่อนปรน คุณไม่จำเป็นต้องทำการพัฒนาให้ง่ายขึ้น แต่ควรตั้งค่าก่อนจัดส่ง

download_and_extract

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

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

พารามิเตอร์

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

execute

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

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

พารามิเตอร์

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

extension_metadata

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

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
root_module_direct_deps sequence of strings; or string; or None; default = ไม่มี
ชื่อของที่เก็บที่ส่วนขยายถือว่าเป็นทรัพยากร Dependency โดยตรงของโมดูลรูท หากโมดูลรูทนำเข้าที่เก็บเพิ่มเติมหรือไม่ได้นำเข้าที่เก็บเหล่านี้ทั้งหมดผ่าน use_repo Bazel จะพิมพ์คำเตือนและคำสั่ง editup เมื่อส่วนขยายได้รับการประเมิน

หากระบุ root_module_direct_deps และ root_module_direct_dev_deps อย่างใดอย่างหนึ่ง จะต้องระบุอีกค่าหนึ่งด้วย รายการที่ระบุโดยพารามิเตอร์ 2 ตัวนี้จะต้องแยกกัน

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

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

หากระบุ root_module_direct_deps และ root_module_direct_dev_deps อย่างใดอย่างหนึ่ง จะต้องระบุอีกค่าหนึ่งด้วย รายการที่ระบุโดยพารามิเตอร์ 2 ตัวนี้จะต้องแยกกัน

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

ไฟล์

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

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

พารามิเตอร์

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

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 ทั้งหมดในกราฟการอ้างอิงภายนอกที่ใช้ส่วนขยายโมดูลนี้ โดยแต่ละโมดูลเป็นออบเจ็กต์ bazel_module ที่แสดงแท็กทั้งหมดที่ระบุสำหรับส่วนขยายนี้ ลำดับการทำซ้ำของพจนานุกรมนี้จะเหมือนกับการค้นหาแบบเน้นความกว้างที่เริ่มจากโมดูลราก

os

repository_os module_ctx.os

โครงสร้างในการเข้าถึงข้อมูลจากระบบ

เส้นทาง

path module_ctx.path(path)

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

พารามิเตอร์

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

อ่าน

string module_ctx.read(path)

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

พารามิเตอร์

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

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 ที่ไม่ได้พัฒนาหรือไม่

ไหน

path module_ctx.which(program)

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
program ต้องระบุ
โปรแกรมเพื่อค้นหาในเส้นทาง
อาจแสดงผล None