कार्रवाइयां

कार्रवाइयां बनाने के लिए फ़ंक्शन देने वाला मॉड्यूल. ctx.actions का इस्तेमाल करके, इस मॉड्यूल को ऐक्सेस करें.

सदस्य

args

Args actions.args()

यह एक Args ऑब्जेक्ट दिखाता है. इसका इस्तेमाल, कम मेमोरी वाली कमांड लाइन बनाने के लिए किया जा सकता है.

declare_directory

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

यह एलान करता है कि नियम या पहलू, मौजूदा पैकेज में दिए गए नाम से एक डायरेक्ट्री बनाता है. आपको डायरेक्ट्री जनरेट करने वाली कोई कार्रवाई बनानी होगी. डायरेक्ट्री के कॉन्टेंट को Starlark से सीधे तौर पर ऐक्सेस नहीं किया जा सकता. हालांकि, Args.add_all() की मदद से, ऐक्शन कमांड में कॉन्टेंट को बड़ा किया जा सकता है.

पैरामीटर

पैरामीटर ब्यौरा
filename ज़रूरी है
अगर कोई 'सिबलिंग' नहीं दिया गया है, तो मौजूदा पैकेज के हिसाब से नई डायरेक्ट्री का पाथ. ऐसा न होने पर, फ़ाइल का बेस नाम ('सिबलिंग', डायरेक्ट्री के बारे में बताता है).
sibling File; or None; default = None
यह एक ऐसी फ़ाइल होती है जो नई डायरेक्ट्री में मौजूद होती है. फ़ाइल, मौजूदा पैकेज में होनी चाहिए.

declare_file

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

यह बताता है कि नियम या आसपेक्ट, दिए गए फ़ाइल नाम के साथ एक फ़ाइल बनाता है. अगर sibling नहीं दिया गया है, तो फ़ाइल का नाम पैकेज डायरेक्ट्री के हिसाब से होता है. अगर sibling दिया गया है, तो फ़ाइल sibling की उसी डायरेक्ट्री में होती है. फ़ाइलों को मौजूदा पैकेज के बाहर नहीं बनाया जा सकता.

याद रखें कि फ़ाइल का एलान करने के अलावा, आपको एक ऐसी कार्रवाई भी अलग से बनानी होगी जो फ़ाइल को उत्सर्जित करती है. इस कार्रवाई को बनाने के लिए, लौटाए गए File ऑब्जेक्ट को कार्रवाई के कंस्ट्रक्शन फ़ंक्शन में पास करना होगा.

ध्यान दें कि पहले से तय की गई आउटपुट फ़ाइलों का एलान, इस फ़ंक्शन का इस्तेमाल करके नहीं किया जा सकता. साथ ही, इनका एलान भी नहीं किया जा सकता. इसके बजाय, ctx.outputs से उनके File ऑब्जेक्ट पाए जा सकते हैं. इस्तेमाल का उदाहरण देखें.

पैरामीटर

पैरामीटर ब्यौरा
filename ज़रूरी है
अगर कोई 'सिबलिंग' नहीं दिया गया है, तो मौजूदा पैकेज के हिसाब से नई फ़ाइल का पाथ. अगर ऐसा नहीं है, तो फ़ाइल का बेस नेम ('सिबलिंग' से डायरेक्ट्री तय होती है).
sibling File; or None; डिफ़ॉल्ट = None
यह फ़ाइल, नई फ़ाइल के साथ मौजूद डायरेक्ट्री में मौजूद होती है. फ़ाइल, मौजूदा पैकेज में होनी चाहिए.

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

एक्सपेरिमेंटल. यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है. इसमें कभी भी बदलाव किया जा सकता है. कृपया इस पर भरोसा न करें. इसे --experimental_allow_unresolved_symlinks सेट करके प्रयोग के तौर पर चालू किया जा सकता है

इससे पता चलता है कि नियम या आसपेक्ट, मौजूदा पैकेज में दिए गए नाम के साथ एक सिमलिंक बनाता है. आपको एक ऐसी कार्रवाई बनानी होगी जो यह सिंबल लिंक जनरेट करे. Bazel इस सिमलिंक का रेफ़रंस कभी नहीं हटाएगा. साथ ही, इसे सैंडबॉक्स या रिमोट एक्ज़ीक्यूटर में हूबहू ट्रांसफ़र कर देगा.

पैरामीटर

पैरामीटर ब्यौरा
filename ज़रूरी है
अगर कोई 'सिबलिंग' नहीं दिया गया है, तो मौजूदा पैकेज के हिसाब से नए सिमलंक का पाथ. अगर ऐसा नहीं है, तो फ़ाइल का बेस नेम ('सिबलिंग' किसी डायरेक्ट्री की जानकारी देता है).
sibling File; or None; डिफ़ॉल्ट = None
यह एक ऐसी फ़ाइल है जो नए सिग्नललिंक की उसी डायरेक्ट्री में मौजूद होती है.

do_nothing

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

यह एक खाली ऐक्शन बनाता है, जो न तो कोई कमांड लागू करता है और न ही कोई आउटपुट देता है. हालांकि, यह 'अतिरिक्त ऐक्शन' डालने के लिए काम का है.

पैरामीटर

पैरामीटर ब्यौरा
mnemonic ज़रूरी है
कार्रवाई के बारे में एक शब्द में जानकारी देना ज़रूरी है. उदाहरण के लिए, CppCompile या GoLink.
inputs sequence of Files; or depset; default = []
ऐक्शन की इनपुट फ़ाइलों की सूची.

expand_template

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 डिफ़ॉल्ट = False
क्या आउटपुट फ़ाइल को चलाया जा सकता है.
computed_substitutions TemplateDict; डिफ़ॉल्ट = अनबाउंड
प्रयोग के तौर पर उपलब्ध. यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है. इसमें कभी भी बदलाव किया जा सकता है. कृपया इस पर भरोसा न करें. इसे एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. इसके लिए, --+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=None)

ऐसी कार्रवाई तैयार करता है जिस पर एक्ज़ीक्यूट किया जा सकता है. इस्तेमाल का उदाहरण देखें.

पैरामीटर

पैरामीटर ब्यौरा
outputs sequence of Files; ज़रूरी है
कार्रवाई की आउटपुट फ़ाइलों की सूची.
inputs sequence of Files; or depset; default = []
कार्रवाई की इनपुट फ़ाइलों की सूची या depset.
unused_inputs_list File; or None; डिफ़ॉल्ट = कोई नहीं
ऐसी फ़ाइल जिसमें इनपुट की सूची है, जिसे कार्रवाई में इस्तेमाल नहीं किया गया.

इस फ़ाइल का कॉन्टेंट (आम तौर पर कार्रवाई का एक आउटपुट), उन इनपुट फ़ाइलों की सूची से जुड़ा होता है जिनका इस्तेमाल कार्रवाई पूरी होने के दौरान नहीं किया गया था. उन फ़ाइलों में कोई भी बदलाव करने से, कार्रवाई के आउटपुट पर कोई असर नहीं पड़ना चाहिए.

executable File; or string; or FilesToRunProvider; ज़रूरी है
वह फ़ाइल जिसे ऐक्शन से कॉल किया जाना है.
tools sequence; or depset; default = unbound
कार्रवाई के लिए ज़रूरी टूल की सूची या depset. टूल, अतिरिक्त रनफ़ाइलों के साथ इनपुट होते हैं. ये ऐक्शन के लिए अपने-आप उपलब्ध हो जाते हैं. सूची उपलब्ध कराने पर, यह Files, FilesToRunProvider इंस्टेंस या Files के डेपसेट का अलग-अलग तरह का कलेक्शन हो सकता है. सीधे सूची में मौजूद और ctx.executable से आने वाली फ़ाइलों की रनफ़ाइलें अपने-आप जुड़ जाएंगी. अगर कोई डिप्सेट दिया जाता है, तो उसमें सिर्फ़ फ़ाइलें होनी चाहिए. दोनों मामलों में, depset में मौजूद फ़ाइलों को runfile के लिए, ctx.executable के साथ क्रॉस-रेफ़रंस नहीं किया जाता.
arguments sequence; डिफ़ॉल्ट = []
ऐक्शन के कमांड लाइन आर्ग्युमेंट. यह स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.
mnemonic string; or None; default = None
कार्रवाई के बारे में एक शब्द में जानकारी, जैसे कि CppCompile या GoLink.
progress_message string; or None; default = None
बिल्ड के दौरान उपयोगकर्ता को दिखाने के लिए प्रोग्रेस मैसेज. उदाहरण के लिए, "foo.o बनाने के लिए foo.cc को कंपाइल किया जा रहा है". इस मैसेज में %{label}, %{input} या %{output} पैटर्न हो सकते हैं. इन्हें लेबल स्ट्रिंग, पहले इनपुट या आउटपुट के पाथ से बदल दिया जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि ये ज़्यादा असरदार होते हैं.
use_default_shell_env default = False
कार्रवाई को बिल्ट-इन शेल एनवायरमेंट का इस्तेमाल करना चाहिए या नहीं.
env dict; or None; डिफ़ॉल्ट = None
एनवायरमेंट वैरिएबल की डिक्शनरी सेट करता है.
execution_requirements dict; or None; डिफ़ॉल्ट = कोई नहीं
कार्रवाई को शेड्यूल करने के लिए जानकारी. काम की कुंजियों के लिए, टैग देखें.
input_manifests sequence; or None; डिफ़ॉल्ट = कोई नहीं
(प्रयोग के तौर पर उपलब्ध), इनपुट रनफ़ाइल मेटाडेटा को सेट करता है; आम तौर पर, इन्हें clear_command की मदद से जनरेट किया जाता है.
exec_group string; or None; default = None
यह कार्रवाई, दिए गए एक्सेक्यूशन ग्रुप के एक्सेक्यूशन प्लैटफ़ॉर्म पर की जाती है. अगर कोई नहीं है, तो टारगेट के डिफ़ॉल्ट रनटाइम प्लैटफ़ॉर्म का इस्तेमाल किया जाता है.
shadowed_action Action; डिफ़ॉल्ट = None
कार्रवाई की इनपुट सूची और एनवायरमेंट में जोड़े गए, शैडो की गई कार्रवाई के इनपुट और एनवायरमेंट का इस्तेमाल करके कार्रवाई को चलाता है. कार्रवाई एनवायरमेंट, शैडो की गई किसी भी कार्रवाई के एनवायरमेंट वैरिएबल को ओवरराइट कर सकता है. अगर कोई नहीं है, तो सिर्फ़ ऐक्शन के इनपुट और दिए गए एनवायरमेंट का इस्तेमाल किया जाता है.
resource_set callable; or None; डिफ़ॉल्ट = कोई नहीं
एक कॉलबैक फ़ंक्शन, जो संसाधन सेट डिक्शनरी दिखाता है. इसका इस्तेमाल, स्थानीय तौर पर की जाने वाली कार्रवाई को एक्ज़ीक्यूट करते समय संसाधन के इस्तेमाल का अनुमान लगाने के लिए किया जाता है.

यह फ़ंक्शन दो पोज़िशनल आर्ग्युमेंट स्वीकार करता है: ओएस का नाम बताने वाली स्ट्रिंग (उदाहरण के लिए, "osx") और कार्रवाई के इनपुट की संख्या बताने वाला पूर्णांक. दी गई डिक्शनरी में ये एंट्री हो सकती हैं. इनमें से हर एंट्री, फ़्लोट या इंट हो सकती है:

  • "cpu": सीपीयू की संख्या; डिफ़ॉल्ट तौर पर 1
  • "memory": एमबी में; डिफ़ॉल्ट 250
  • "local_test": स्थानीय टेस्ट की संख्या; डिफ़ॉल्ट तौर पर 1

अगर यह पैरामीटर None पर सेट है या --experimental_action_resource_set गलत है, तो डिफ़ॉल्ट वैल्यू का इस्तेमाल किया जाता है.

कॉलबैक टॉप-लेवल का होना चाहिए. इसमें लैम्ब्डा और नेस्ट किए गए फ़ंक्शन इस्तेमाल नहीं किए जा सकते.

toolchain Label; or string; or None; डिफ़ॉल्ट = 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=None)

एक ऐसी कार्रवाई बनाता है जो शेल कमांड चलाता है. इस्तेमाल का उदाहरण देखें.

पैरामीटर

पैरामीटर ब्यौरा
outputs sequence of Files; ज़रूरी है
कार्रवाई की आउटपुट फ़ाइलों की सूची.
inputs sequence of Files; or depset; default = []
कार्रवाई की इनपुट फ़ाइलों की सूची या depset.
tools sequence of Files; or depset; default = unbound
कार्रवाई के लिए ज़रूरी टूल की सूची या depset. टूल, अतिरिक्त रनफ़ाइलों के साथ इनपुट होते हैं. ये ऐक्शन के लिए अपने-आप उपलब्ध हो जाते हैं. इस सूची में Files या FilesToRunProvider के इंस्टेंस शामिल हो सकते हैं.
arguments sequence; डिफ़ॉल्ट = []
कार्रवाई के कमांड लाइन आर्ग्युमेंट. यह स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.

Bazel, इस एट्रिब्यूट में मौजूद एलिमेंट को आर्ग्युमेंट के तौर पर कमांड को पास करता है. कमांड, $1, $2 वगैरह जैसे शेल वैरिएबल सबस्टिट्यूशन का इस्तेमाल करके इन आर्ग्युमेंट को ऐक्सेस कर सकता है. ध्यान दें कि इंडेक्स करने से पहले, Args ऑब्जेक्ट को फ़्लैट कर दिया जाता है. अगर Args ऑब्जेक्ट का साइज़ पता नहीं है, तो उसके बाद की सभी स्ट्रिंग, अनुमानित इंडेक्स पर होंगी. अनिश्चित साइज़ वाले Args ऑब्जेक्ट के साथ, $@ (सभी आर्ग्युमेंट वापस पाने के लिए) का इस्तेमाल करने से आपको मदद मिल सकती है.

ऐसे मामले में जहां command, स्ट्रिंग की सूची है, वहां इस पैरामीटर का इस्तेमाल नहीं किया जा सकता.

mnemonic string; or None; default = None
कार्रवाई के बारे में एक शब्द में जानकारी, जैसे कि CppCompile या GoLink.
command string; or sequence of strings; ज़रूरी है
शेल कमांड को लागू करने के लिए. यह एक स्ट्रिंग (प्राथमिकता दी जाती है) या स्ट्रिंग का क्रम (इस्तेमाल से रोका गया) हो सकता है.

अगर command कोई स्ट्रिंग है, तो इसे sh -c <command> "" <arguments> की तरह ही चलाया जाता है. इसका मतलब है कि arguments में मौजूद एलिमेंट, कमांड के लिए $1, $2 (या Windows बैच का इस्तेमाल करने पर %1, %2) वगैरह के तौर पर उपलब्ध कराए जाते हैं. अगर arguments में कोई actions.args() ऑब्जेक्ट है, तो उनका कॉन्टेंट कमांड लाइन में एक-एक करके जोड़ा जाता है, ताकि $i, Args ऑब्जेक्ट में मौजूद अलग-अलग स्ट्रिंग का रेफ़रंस दे सके. ध्यान दें कि अगर arguments के हिस्से के तौर पर, अज्ञात साइज़ वाले Args ऑब्जेक्ट को पास किया जाता है, तो स्ट्रिंग अज्ञात इंडेक्स पर होगी. इस मामले में $@ शेल की जगह (सभी आर्ग्युमेंट वापस पाएं) तरीका काम आ सकता है.

(अब काम नहीं करता) अगर command, स्ट्रिंग का क्रम है, तो पहला आइटम वह एक्सीक्यूटेबल है जिसे चलाना है और बाकी आइटम उसके आर्ग्युमेंट हैं. अगर इस फ़ॉर्म का इस्तेमाल किया जाता है, तो arguments पैरामीटर नहीं दिया जाना चाहिए. ध्यान दें कि इस फ़ॉर्म का इस्तेमाल नहीं किया जा सकता. इसे जल्द ही हटा दिया जाएगा. यह `--incompatible_run_shell_command_string` के साथ बंद है. यह पुष्टि करने के लिए कि आपका कोड काम करता है या नहीं, इस फ़्लैग का इस्तेमाल करें.

Bazel, निर्देश को लागू करने के लिए उसी शेल का इस्तेमाल करता है जिसका इस्तेमाल genrules के लिए किया जाता है.

progress_message string; or None; default = None
बिल्ड के दौरान उपयोगकर्ता को दिखाने के लिए प्रोग्रेस मैसेज. उदाहरण के लिए, "foo.o बनाने के लिए foo.cc को कंपाइल किया जा रहा है". मैसेज में %{label}, %{input} या %{output} पैटर्न हो सकते हैं. इन्हें लेबल स्ट्रिंग, पहले इनपुट या आउटपुट के पाथ से बदला जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि ये ज़्यादा असरदार होते हैं.
use_default_shell_env default = False
यह तय करता है कि कार्रवाई में, पहले से मौजूद शेल एनवायरमेंट का इस्तेमाल किया जाना चाहिए या नहीं.
env dict; or None; डिफ़ॉल्ट = कोई नहीं
एनवायरमेंट वैरिएबल की डिक्शनरी को सेट करता है.
execution_requirements dict; or None; डिफ़ॉल्ट = कोई नहीं
कार्रवाई को शेड्यूल करने के लिए जानकारी. काम की कुंजियों के लिए टैग देखें.
input_manifests sequence; or None; default = None
(प्रयोग के तौर पर उपलब्ध) इनपुट रनफ़ाइल का मेटाडेटा सेट करता है. आम तौर पर, ये resolve_command से जनरेट होते हैं.
exec_group string; or None; डिफ़ॉल्ट = कोई नहीं
यह कार्रवाई, दिए गए एक्सेक्यूशन ग्रुप के एक्सेक्यूशन प्लैटफ़ॉर्म पर की जाती है. अगर ऐसा नहीं होता है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है.
shadowed_action Action; default = None
कार्रवाई की इनपुट सूची में जोड़े गए, शैडो की गई कार्रवाई के खोजे गए इनपुट का इस्तेमाल करके कार्रवाई को चलाता है. अगर कोई नहीं है, तो सिर्फ़ ऐक्शन के इनपुट का इस्तेमाल किया जाता है.
resource_set callable; or None; डिफ़ॉल्ट = कोई नहीं
स्थानीय तौर पर चलाए जाने पर, संसाधन के इस्तेमाल का अनुमान लगाने के लिए एक कॉलबैक फ़ंक्शन. ctx.actions.run() देखें.
toolchain Label; or string; or None; डिफ़ॉल्ट = None

इस कार्रवाई में इस्तेमाल किए गए टूल या एक्सीक्यूटेबल का टूलचेन टाइप. पैरामीटर सेट होना चाहिए, ताकि ऐक्शन सही प्लैटफ़ॉर्म पर लागू हो.

फ़िलहाल, यह कोई काम नहीं करता. हालांकि, हमारा सुझाव है कि टूलचेन का इस्तेमाल करते समय इसे सेट करें, क्योंकि आने वाले समय में Bazel के रिलीज़ में इसकी ज़रूरत होगी.

ध्यान दें कि इस कार्रवाई को बनाने वाले नियम को अपने 'rule()' फ़ंक्शन में इस टूलचेन की जानकारी देनी होगी.

अगर `toolchain` और `exec_group` पैरामीटर, दोनों सेट हैं, तो `exec_group` का इस्तेमाल किया जाएगा. अगर `exec_group` में टूलचेन के बारे में नहीं बताया गया है, तो गड़बड़ी का मैसेज दिखता है.

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

यह एक ऐसी कार्रवाई बनाता है जो फ़ाइल सिस्टम में सिमलिंक लिखता है.

इस फ़ंक्शन को बताए गए target_file या target_path में से किसी एक के साथ ही कॉल किया जाना चाहिए.

target_file का इस्तेमाल करते समय, declare_file() या declare_directory() के साथ output का एलान करें और target_file के टाइप से मैच करें. इससे सिमलिंक पॉइंट, target_file पर सेट हो जाता है. जब भी सिमलिन्क का टारगेट या उसका कॉन्टेंट बदलता है, तो Bazel इस कार्रवाई के आउटपुट को अमान्य कर देता है.

इसके अलावा, target_path का इस्तेमाल करते समय, declare_symlink() के साथ output का एलान करें. इस मामले में, सिमलंक target_path पर ले जाता है. Baज़ल, सिमलिंक को कभी ठीक नहीं करता और इस कार्रवाई का आउटपुट अमान्य हो जाता है. ऐसा सिर्फ़ तब होता है, जब सिमलिंक के टेक्स्ट कॉन्टेंट (यानी, readlink() की वैल्यू) में बदलाव होता है. खास तौर पर, इसका इस्तेमाल डैंगलिंग सिंबललिंक बनाने के लिए किया जा सकता है.

पैरामीटर

पैरामीटर ब्यौरा
output ज़रूरी है
इस कार्रवाई का आउटपुट.
target_file File; or None; डिफ़ॉल्ट = कोई नहीं
वह फ़ाइल जिस पर आउटपुट सिमलिंक को ले जाया जाएगा.
target_path string; or None; डिफ़ॉल्ट = कोई नहीं
(प्रयोग के तौर पर उपलब्ध) आउटपुट सिमलिंक जिस पाथ पर ले जाएगा उसका सटीक पता. इसमें नॉर्मलाइज़ेशन या कोई अन्य प्रोसेस लागू नहीं की जाती. इस सुविधा को ऐक्सेस करने के लिए, --experimental_allow_unresolved_symlinks सेटिंग चालू करना ज़रूरी है.
is_executable default = False
इसका इस्तेमाल सिर्फ़ target_file के साथ किया जा सकता है, target_path के साथ नहीं. अगर यह सही है, तो कार्रवाई करने पर target_file के पाथ की जांच की जाती है, ताकि यह पक्का किया जा सके कि इसे चलाया जा सकता है. अगर ऐसा नहीं है, तो गड़बड़ी की सूचना दी जाती है. is_executable को 'गलत है' पर सेट करने का मतलब यह नहीं है कि टारगेट को एक्ज़ीक्यूट नहीं किया जा सकता. इसका मतलब सिर्फ़ यह है कि कोई पुष्टि नहीं हुई है.

target_path के लिए यह सुविधा किसी काम की नहीं है, क्योंकि हो सकता है कि बिल्ड के समय लगातार सिम्लिंक मौजूद न हों.

progress_message string; or None; default = None
बिल्ड के दौरान उपयोगकर्ता को दिखाने के लिए प्रोग्रेस मैसेज.

template_dict

TemplateDict actions.template_dict()

एक्सपेरिमेंटल. इस एपीआई को फ़िलहाल आज़माया जा रहा है. इसमें किसी भी समय बदलाव किया जा सकता है. कृपया इस पर भरोसा न करें. इसे एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. इसके लिए, --+experimental_lazy_template_expansion
एक्सपेरिमेंटल: यह मेमोरी के हिसाब से टेम्प्लेट एक्सपैंशन के लिए, TemplateDict ऑब्जेक्ट दिखाता है को सेट करें.

write

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

फ़ाइल में डेटा लिखने की कार्रवाई बनाता है. कार्रवाई पूरी होने पर, यह दिए गए कॉन्टेंट को फ़ाइल में लिख देगा. इसका इस्तेमाल, विश्लेषण के चरण में उपलब्ध जानकारी का इस्तेमाल करके फ़ाइलें जनरेट करने के लिए किया जाता है. अगर फ़ाइल का साइज़ बड़ा है और उसमें बहुत सारा स्टैटिक कॉन्टेंट है, तो expand_template का इस्तेमाल करें.

पैरामीटर

पैरामीटर ब्यौरा
output ज़रूरी है
आउटपुट फ़ाइल.
content string; or Args; फ़ाइल का कॉन्टेंट
ज़रूरी है. यह स्ट्रिंग या actions.args() ऑब्जेक्ट हो सकता है.
is_executable default = False
आउटपुट फ़ाइल एक्ज़ीक्यूटेबल होनी चाहिए या नहीं.