การดำเนินการ

รายงานปัญหา ดูซอร์สโค้ด

โมดูลที่ให้ฟังก์ชันเพื่อสร้างการดําเนินการ เข้าถึงโมดูลนี้โดยใช้ ctx.actions

สมาชิก

อาร์กิวเมนต์

Args actions.args()

แสดงออบเจ็กต์ Args ที่สามารถใช้สร้างบรรทัดคําสั่งที่ประหยัดหน่วยความจํา

ไดเรกทอรี_การประกาศ

File actions.declare_directory(filename, *, sibling=None)

ประกาศว่ากฎหรือมุมมองจะสร้างไดเรกทอรีที่มีชื่อที่ระบุในแพ็กเกจปัจจุบัน คุณต้องสร้างการกระทําที่สร้างไดเรกทอรี เนื้อหาของไดเรกทอรีจะเข้าถึงจาก Starlark โดยตรงไม่ได้ แต่สามารถขยายในคําสั่งดําเนินการด้วย Args.add_all() เฉพาะไฟล์และไดเรกทอรีปกติเท่านั้นที่สามารถอยู่ในเนื้อหาแบบขยายของ identifier_directory

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
filename ต้องระบุ
หากไม่มีการระบุ "พี่น้อง" เส้นทางของไดเรกทอรีใหม่จะสัมพันธ์กับแพ็กเกจปัจจุบัน มิเช่นนั้น ชื่อฐานของไฟล์ ('sibling' จะกําหนดไดเรกทอรี)
sibling File; or None; ค่าเริ่มต้น = ไม่มี
ไฟล์ที่อยู่ในไดเรกทอรีเดียวกับไดเรกทอรีที่เพิ่งประกาศใหม่ ไฟล์ต้องอยู่ในแพ็กเกจปัจจุบัน

ไฟล์_ประกาศ

File actions.declare_file(filename, *, sibling=None)

ประกาศว่ากฎหรือแง่มุมสร้างไฟล์ที่มีชื่อไฟล์ที่ระบุ หากไม่ได้ระบุ sibling ไว้ ชื่อไฟล์จะสัมพันธ์กับไดเรกทอรีแพ็กเกจ มิฉะนั้นไฟล์จะอยู่ในไดเรกทอรีเดียวกับ sibling ไม่สามารถสร้างไฟล์นอกแพ็กเกจปัจจุบัน

โปรดทราบว่านอกเหนือจากการประกาศไฟล์แล้ว คุณต้องสร้างการทํางานที่ปล่อยไฟล์แยกต่างหาก การสร้างการทํางานดังกล่าวจะต้องส่งวัตถุ File ที่ส่งคืนไปยังฟังก์ชันการสร้างของการกระทํานั้น

โปรดทราบว่าไฟล์เอาต์พุตที่ระบุไว้ล่วงหน้าไม่จําเป็นต้องได้รับการประกาศ (และไม่สามารถ) ประกาศโดยใช้ฟังก์ชันนี้ได้ คุณรับออบเจ็กต์ File ของออบเจ็กต์ได้จาก ctx.outputs แทน ดูตัวอย่างการใช้งาน

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
filename ต้องระบุ
หากไม่มีการระบุ "พี่น้อง" เส้นทางของไฟล์ใหม่จะสัมพันธ์กับแพ็กเกจปัจจุบัน มิเช่นนั้น ชื่อฐานของไฟล์ ('sibling' จะกําหนดไดเรกทอรี)
sibling File; or None; default = None
ไฟล์ที่อยู่ในไดเรกทอรีเดียวกับไฟล์ที่สร้างใหม่ ไฟล์ต้องอยู่ในแพ็กเกจปัจจุบัน

File actions.declare_symlink(filename, *, sibling=None)

พารามิเตอร์นี้เป็นการทดลองและอาจเปลี่ยนแปลงได้ตลอดเวลา การตั้งค่าอาจถูกปิดใช้งานโดยการตั้งค่า --noexperimental_allow_unresolved_symlinks

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
filename ต้องระบุ
หากไม่ได้ระบุ "พี่น้อง" เส้นทางของลิงก์สัญลักษณ์ใหม่จะสัมพันธ์กับแพ็กเกจปัจจุบัน มิเช่นนั้น ชื่อฐานของไฟล์ ('sibling' จะกําหนดไดเรกทอรี)
sibling File; or None; default = ไม่มี
ไฟล์ที่อยู่ในไดเรกทอรีเดียวกับ symlink ที่ประกาศใหม่

ไม่ทําอะไร

None actions.do_nothing(mnemonic, inputs=[])

สร้างการกระทําที่ว่างเปล่าที่จะไม่เรียกใช้คําสั่งและไม่สร้างเอาต์พุตใดๆ แต่มีประโยชน์ในการแทรก "การทํางานพิเศษ"

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
mnemonic ต้องระบุ
คําอธิบายการดําเนินการ 1 คํา เช่น CppCompile หรือ GoLink
inputs sequence of Files; or depset; default = []
รายการไฟล์อินพุตของการดําเนินการ

ขยายเทมเพลต

None actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)

สร้างการทํางานสําหรับขยายเทมเพลต เมื่อดําเนินการแล้ว ระบบจะสร้างไฟล์ตามเทมเพลต ส่วนต่างๆ ของเทมเพลตจะถูกแทนที่โดยใช้พจนานุกรม substitutions ตามลําดับที่ระบุการแทนที่ เมื่อใดก็ตามที่คีย์ของพจนานุกรมปรากฏในเทมเพลต (หรือแทนการแทนที่ก่อนหน้า) คีย์นั้นจะถูกแทนที่ด้วยค่าที่เกี่ยวข้อง ไม่มีไวยากรณ์พิเศษสําหรับคีย์ ตัวอย่างเช่น คุณอาจใช้วงเล็บปีกกาเพื่อหลีกเลี่ยงความขัดแย้ง (ตัวอย่างเช่น {KEY}) ดูตัวอย่างการใช้งาน

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
template ต้องระบุ
ไฟล์เทมเพลต ซึ่งเป็นไฟล์ข้อความที่เข้ารหัสแบบ UTF-8
output ต้องระบุ
ไฟล์เอาต์พุต ซึ่งเป็นไฟล์ข้อความที่เข้ารหัสแบบ UTF-8
substitutions default = {}
การแทนที่ที่ทําเมื่อขยายเทมเพลต
is_executable default = False
ไฟล์ปฏิบัติการควรสั่งการได้หรือไม่
computed_substitutions TemplateDict; default = unbound
Experiment พารามิเตอร์นี้เป็นการทดลองและอาจเปลี่ยนแปลงได้ตลอดเวลา โปรดอย่าพึ่งพาข้อมูลนี้ คุณสามารถเปิดใช้การทดสอบได้โดยการตั้งค่า --+experimental_lazy_template_expansion
การทดสอบ: การแทนที่ที่จะทําเมื่อขยายเทมเพลต

โฮมรัน

None actions.run(outputs, inputs=[], unused_inputs_list=None, executable, tools=unbound, arguments=[], mnemonic=None, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=unbound)

สร้างการดําเนินการที่เรียกใช้ไฟล์ปฏิบัติการได้ ดูตัวอย่างการใช้งาน

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
outputs sequence of Files; ต้องระบุ
รายการไฟล์เอาต์พุตของการดําเนินการ
inputs sequence of Files; or depset; default = []
แสดงรายการหรือลดระดับไฟล์อินพุตของการดําเนินการ
unused_inputs_list File; or None; default = None
ไฟล์มีรายการอินพุตที่การดําเนินการไม่ได้ใช้

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

executable File; or string; or FilesToRunProvider; จําเป็น
ไฟล์ปฏิบัติการที่จะถูกเรียกโดยการดําเนินการ
tools sequence; or depset; default = unbound
แสดงรายการหรือเลิกใช้เครื่องมือที่ต้องมี เครื่องมือคืออินพุตที่มีการเรียกใช้ไฟล์เพิ่มเติมซึ่งจะพร้อมให้ใช้งานโดยอัตโนมัติ เมื่อมีการระบุรายการแล้ว อาจจะมีคอลเล็กชันไฟล์, อินสแตนซ์ FilesToRunProvider หรือชุดไฟล์ที่แตกต่างออกไป ไฟล์ที่อยู่ในรายการโดยตรงและมาจาก ctx.executable จะเพิ่มไฟล์ที่เรียกใช้โดยอัตโนมัติ เมื่อมีการยกเลิกการตั้งค่า จะต้องมีเฉพาะไฟล์เท่านั้น ในทั้ง 2 กรณี ไฟล์ภายในเครื่องหมายคําพูดจะไม่มีการอ้างอิงแบบ ctx.executable สําหรับการเรียกใช้ไฟล์
arguments sequence; ค่าเริ่มต้น = []
อาร์กิวเมนต์บรรทัดคําสั่งของการดําเนินการ ต้องเป็นรายการสตริงหรือออบเจ็กต์ actions.args()
mnemonic string; or None; default = None
คําอธิบายการดําเนินการ 1 คํา เช่น CppCompile หรือ GoLink
progress_message string; or None; ค่าเริ่มต้น = ไม่มี
ข้อความความคืบหน้าที่จะปรากฏให้ผู้ใช้เห็นระหว่างบิวด์ เช่น "คอมไพล์ foo.cc เพื่อสร้าง foo.o" ข้อความอาจมีรูปแบบ %{label}, %{input} หรือ %{output} ซึ่งจะมีการแทนที่ด้วยสตริงป้ายกํากับ อินพุตแรก หรือเส้นทางเอาต์พุตตามลําดับ ควรใช้รูปแบบแทนที่จะใช้สตริงแบบคงที่ เนื่องจากรูปแบบแรกมีประสิทธิภาพมากกว่า
use_default_shell_env default = False
การดําเนินการควรใช้สภาพแวดล้อมในตัวของ Shell หรือไม่
env dict; or None; default = None
ตั้งค่าพจนานุกรมของตัวแปรสภาพแวดล้อม
execution_requirements dict; or None; ค่าเริ่มต้น = ไม่มี
ข้อมูลสําหรับการตั้งเวลาการดําเนินการ ดูแท็กสําหรับคีย์ที่มีประโยชน์
input_manifests sequence; or None; default = None
(ทดลอง) กําหนดข้อมูลเมตา Runfiles ของอินพุต ซึ่งมักจะสร้างขึ้นจากResolve_command
exec_group string; or None; default = None
เรียกใช้การดําเนินการในแพลตฟอร์มการดําเนินการของกลุ่ม exec ที่ต้องการ หากไม่มี ให้ใช้แพลตฟอร์มการดําเนินการเริ่มต้นของเป้าหมาย
shadowed_action Action; ค่าเริ่มต้น = ไม่มี
เรียกใช้การดําเนินการโดยใช้อินพุตและสภาพแวดล้อมของการดําเนินการที่สังเกตการณ์ซึ่งเพิ่มลงในรายการอินพุตและสภาพแวดล้อมของการดําเนินการนั้นๆ สภาพแวดล้อมการดําเนินการสามารถเขียนทับตัวแปรสภาพแวดล้อมของการทํางานที่ถูกซ้อน หากไม่มี ให้ใช้เฉพาะอินพุตของการดําเนินการและสภาพแวดล้อมที่กําหนดเท่านั้น
resource_set callable; or None; ค่าเริ่มต้น = ไม่มี
ฟังก์ชันเรียกกลับที่แสดงพจนานุกรมชุดทรัพยากร ซึ่งใช้เพื่อประเมินการใช้งานทรัพยากรในเวลาที่ดําเนินการหากการดําเนินการนี้ทํางานในเครื่อง

ฟังก์ชันจะยอมรับอาร์กิวเมนต์ตามตําแหน่ง 2 ตัว ได้แก่ สตริงที่แสดงชื่อของระบบปฏิบัติการ (เช่น "osx") และจํานวนเต็มที่แสดงจํานวนอินพุตในการทํางานนี้ พจนานุกรมที่แสดงผลอาจมีรายการต่อไปนี้ โดยแต่ละรายการอาจเป็นแบบลอยหรือจํานวนเต็ม

  • "cpu": จํานวน CPU ค่าเริ่มต้น 1
  • "memory": เป็น MB ค่าเริ่มต้นคือ 250
  • "local_test": จํานวนการทดสอบในท้องถิ่น ค่าเริ่มต้น 1

หากตั้งค่าพารามิเตอร์นี้เป็น None หรือหาก --experimental_action_resource_set เป็นเท็จ ระบบจะใช้ค่าเริ่มต้น

โค้ดเรียกกลับจะต้องอยู่ในระดับบนสุด (ไม่อนุญาตให้ใช้ฟังก์ชัน lambda และฟังก์ชันที่ซ้อนกัน)

toolchain Label; or string; or None; ค่าเริ่มต้น = ไม่จํากัด

ประเภทเครื่องมือของไฟล์ปฏิบัติการหรือเครื่องมือที่ใช้ในการดําเนินการนี้ ต้องตั้งค่าพารามิเตอร์เพื่อให้การดําเนินการทํางานในแพลตฟอร์มการดําเนินการที่ถูกต้อง

ตอนนี้ยังไม่ใช่การดําเนินการที่แนะนํา แต่เราขอแนะนําให้คุณตั้งค่าเมื่อมีการใช้กล่องเครื่องมือ เนื่องจากจําเป็นต้องใช้ในการเปิดตัว Bazel ในอนาคต

โปรดทราบว่ากฎที่สร้างการดําเนินการนี้จําเป็นต้องกําหนดชุดเครื่องมือนี้ภายในฟังก์ชัน 'rule()'

เมื่อมีการตั้งค่าพารามิเตอร์ "toolchain" และ "exec_group" ไว้ ระบบจะใช้ "exec_group" ข้อผิดพลาดจะเกิดขึ้นในกรณีที่ "exec_group" ไม่ได้ระบุซ้ํากัน

Run_shell

None actions.run_shell(outputs, inputs=[], tools=unbound, arguments=[], mnemonic=None, command, progress_message=None, use_default_shell_env=False, env=None, execution_requirements=None, input_manifests=None, exec_group=None, shadowed_action=None, resource_set=None, toolchain=unbound)

สร้างการดําเนินการที่เรียกใช้คําสั่ง Shell ดูตัวอย่างการใช้งาน

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
outputs sequence of Files; ต้องระบุ
รายการไฟล์เอาต์พุตของการดําเนินการ
inputs sequence of Files; or depset; default = []
แสดงรายการหรือลดระดับไฟล์อินพุตของการดําเนินการ
tools sequence of Files; or depset; default = unbound
แสดงรายการหรือเลิกใช้เครื่องมือที่ต้องมี เครื่องมือคืออินพุตที่มีการเรียกใช้ไฟล์เพิ่มเติมซึ่งจะพร้อมให้ใช้งานโดยอัตโนมัติ รายการสามารถประกอบด้วยไฟล์ต่างๆ หรืออินสแตนซ์ FilesToRunProvider
arguments sequence; ค่าเริ่มต้น = []
อาร์กิวเมนต์บรรทัดคําสั่งของการดําเนินการ ต้องเป็นรายการสตริงหรือออบเจ็กต์ actions.args()

Bazel จะส่งผ่านองค์ประกอบในแอตทริบิวต์นี้เป็นอาร์กิวเมนต์ไปยังคําสั่ง คําสั่งนี้สามารถเข้าถึงอาร์กิวเมนต์เหล่านี้โดยใช้การแทนที่ตัวแปร Shell เช่น $1, $2 เป็นต้น โปรดทราบว่าเนื่องจากออบเจ็กต์ Args จะแบนก่อนที่จะจัดทําดัชนี ถ้ามีออบเจ็กต์ Args ที่ไม่ทราบขนาด สตริงที่ตามมาทั้งหมดจะเป็นดัชนีที่คาดเดาไม่ได้ การใช้ $@ (เพื่อเรียกอาร์กิวเมนต์ทั้งหมด) ร่วมกับออบเจ็กต์ Args ที่มีขนาดไม่ชัดเจนอาจมีประโยชน์

ในกรณีที่ command เป็นรายการสตริง ระบบอาจไม่ใช้พารามิเตอร์นี้

mnemonic string; or None; default = None
คําอธิบายการดําเนินการ 1 คํา เช่น CppCompile หรือ GoLink
command string; or sequence of strings; ต้องระบุ
คําสั่ง Shell สําหรับการดําเนินการ ซึ่งอาจเป็นสตริง (แนะนํา) หรือลําดับของสตริง (เลิกใช้งานแล้ว)

หาก command เป็นสตริง ฟังก์ชันจะทํางานเหมือน sh -c <command> "" <arguments> กล่าวคือ ใน arguments จะมีคําสั่งเป็น $1, $2 (หรือ %1, %2 หากใช้กลุ่ม Windows) เป็นต้น หาก arguments มีออบเจ็กต์ actions.args() ต่อท้ายด้วยบรรทัดคําสั่งทีละรายการ $i จึงสามารถอ้างถึงแต่ละสตริงภายในวัตถุ Args ได้ โปรดทราบว่าหากมีการส่งออบเจ็กต์ Args ที่ไม่ทราบขนาดเป็นส่วนหนึ่งของ arguments สตริงจะเป็นดัชนีที่ไม่รู้จัก ในกรณีนี้ การแทนที่ $@ Shell (เรียกอาร์กิวเมนต์ทั้งหมด) อาจมีประโยชน์

(เลิกใช้งานแล้ว) หาก command เป็นลําดับของสตริง รายการแรกจะเป็นไฟล์ที่เรียกใช้งานได้ และรายการที่เหลือจะเป็นอาร์กิวเมนต์ หากใช้แบบฟอร์มนี้ ต้องไม่ระบุพารามิเตอร์ arguments โปรดทราบว่าเราเลิกใช้งานฟอร์มนี้แล้วและจะนําออกเร็วๆ นี้ ปิดใช้ด้วย `--incompatible_run_shell_command_string` ใช้แฟล็กนี้เพื่อตรวจสอบว่าโค้ดเข้ากันได้หรือไม่

Bazel ใช้เชลล์เดียวกันในการดําเนินการคําสั่งเหมือนใน Gengen

progress_message string; or None; ค่าเริ่มต้น = ไม่มี
ข้อความความคืบหน้าที่จะปรากฏให้ผู้ใช้เห็นระหว่างบิวด์ เช่น "คอมไพล์ foo.cc เพื่อสร้าง foo.o" ข้อความอาจมีรูปแบบ %{label}, %{input} หรือ %{output} ซึ่งจะมีการแทนที่ด้วยสตริงป้ายกํากับ อินพุตแรก หรือเส้นทางเอาต์พุตตามลําดับ ควรใช้รูปแบบแทนที่จะใช้สตริงแบบคงที่ เนื่องจากรูปแบบแรกมีประสิทธิภาพมากกว่า
use_default_shell_env default = False
การดําเนินการควรใช้สภาพแวดล้อมในตัวของ Shell หรือไม่
env dict; or None; default = None
ตั้งค่าพจนานุกรมของตัวแปรสภาพแวดล้อม
execution_requirements dict; or None; ค่าเริ่มต้น = ไม่มี
ข้อมูลสําหรับการตั้งเวลาการดําเนินการ ดูแท็กสําหรับคีย์ที่มีประโยชน์
input_manifests sequence; or None; default = None
(ทดลอง) กําหนดข้อมูลเมตา Runfiles ของอินพุต ซึ่งมักจะสร้างขึ้นจากResolve_command
exec_group string; or None; default = None
เรียกใช้การดําเนินการในแพลตฟอร์มการดําเนินการของกลุ่ม exec ที่ต้องการ หากไม่มี ให้ใช้แพลตฟอร์มการดําเนินการเริ่มต้นของเป้าหมาย
shadowed_action Action; default = None
เรียกใช้การดําเนินการโดยใช้อินพุตที่ค้นพบของการดําเนินการที่สังเกตการณ์ซึ่งเพิ่มในรายการอินพุตของการดําเนินการ หากไม่มี ให้ใช้เฉพาะอินพุตของการดําเนินการ
resource_set callable; or None; ค่าเริ่มต้น = ไม่มี
ฟังก์ชันเรียกกลับสําหรับการประมาณการใช้ทรัพยากรในกรณีที่เรียกใช้ในเครื่อง โปรดดูctx.actions.run()
toolchain Label; or string; or None; ค่าเริ่มต้น = ไม่จํากัด

ประเภทเครื่องมือของไฟล์ปฏิบัติการหรือเครื่องมือที่ใช้ในการดําเนินการนี้ ต้องตั้งค่าพารามิเตอร์เพื่อให้การดําเนินการทํางานในแพลตฟอร์มการดําเนินการที่ถูกต้อง

ตอนนี้ยังไม่ใช่การดําเนินการที่แนะนํา แต่เราขอแนะนําให้คุณตั้งค่าเมื่อมีการใช้กล่องเครื่องมือ เนื่องจากจําเป็นต้องใช้ในการเปิดตัว Bazel ในอนาคต

โปรดทราบว่ากฎที่สร้างการดําเนินการนี้จําเป็นต้องกําหนดชุดเครื่องมือนี้ภายในฟังก์ชัน 'rule()'

เมื่อมีการตั้งค่าพารามิเตอร์ "toolchain" และ "exec_group" ไว้ ระบบจะใช้ "exec_group" เกิดข้อผิดพลาดขึ้นในกรณีที่ "exec_group" ไม่ได้ระบุ toolchain เดียวกัน

None actions.symlink(output, target_file=None, target_path=None, is_executable=False, progress_message=None)

สร้างการทํางานที่เขียน symlink ในระบบไฟล์

ฟังก์ชันนี้ต้องถูกเรียกใช้ด้วยการระบุ target_file หรือ target_path ที่แน่นอน

เมื่อคุณใช้ target_file ให้ประกาศ output ด้วย declare_file() หรือ declare_directory() และตรงกับประเภท target_file การดําเนินการนี้ทําให้สัญลักษณ์ลิงก์ชี้ไปยัง target_file Bazel ทําให้เอาต์พุตของการดําเนินการนี้เป็นโมฆะเมื่อใดก็ตามที่เป้าหมายของไวยากรณ์หรือเนื้อหาของลิงก์เปลี่ยนแปลง

หรือหากใช้ target_path ให้ประกาศ output ด้วย declare_symlink()) ในกรณีนี้ symlink จะชี้ไปที่ target_path Bazel จะไม่แก้ไข symlink และเอาต์พุตของการดําเนินการนี้จะไม่มีผลเฉพาะเมื่อเนื้อหาของข้อความ symlink (กล่าวคือ ค่าของ readlink()) มีการเปลี่ยนแปลง โดยเฉพาะอย่างยิ่ง อาจใช้ในการสร้างลิงก์สัญลักษณ์ร่วม

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
output ต้องระบุ
เอาต์พุตของการดําเนินการนี้
target_file File; or None; default = None
ไฟล์ที่สัญลักษณ์ลิงก์ผลลัพธ์ชี้ไป
target_path string; or None; default = None
เส้นทางที่แน่นอนที่สัดส่วนของลิงก์ผลลัพธ์ชี้ไป โดยจะไม่มีการใช้การปรับมาตรฐานหรือการดําเนินการอื่นๆ
is_executable default = False
ใช้ได้กับ target_file เท่านั้น ไม่ใช่ target_path หากเป็นจริง เมื่อมีการดําเนินการดังกล่าว ระบบจะตรวจสอบเส้นทางของ target_file เพื่อยืนยันว่าปฏิบัติการได้ และจะรายงานข้อผิดพลาดหากไม่ดําเนินการ การตั้งค่า is_executable เป็น "เท็จ" ไม่ได้หมายความว่าดําเนินการเป้าหมายไม่ได้ เพียงแต่ยังไม่มีการยืนยัน

ฟีเจอร์นี้ไม่สมเหตุสมผลสําหรับ target_path เนื่องจากลิงก์สัญลักษณ์ร่วมอาจใช้งานไม่ได้ในขณะสร้าง

progress_message string; or None; ค่าเริ่มต้น = ไม่มี
ข้อความความคืบหน้าที่จะปรากฏให้ผู้ใช้เห็นระหว่างบิวด์

เทมเพลตเทมเพลต

TemplateDict actions.template_dict()

ทดลอง API นี้อยู่ระหว่างการทดลองและอาจเปลี่ยนแปลงได้ตลอดเวลา โปรดอย่าพึ่งพาข้อมูลนี้ คุณสามารถเปิดใช้การทดสอบได้โดยการตั้งค่า --+experimental_lazy_template_expansion
การทดสอบ: แสดงผลออบเจ็กต์ TemplateDict สําหรับการขยายเทมเพลตที่หน่วยความจํามีประสิทธิภาพ

เขียน

None actions.write(output, content, is_executable=False)

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
output ต้องระบุ
ไฟล์เอาต์พุต
content string; or Args ต้องระบุ
เนื้อหาของไฟล์ อาจเป็นสตริงหรือออบเจ็กต์ actions.args()
is_executable default = False
ไฟล์ปฏิบัติการควรสั่งการได้หรือไม่