कार्रवाइयां बनाने के लिए फ़ंक्शन उपलब्ध कराने वाला मॉड्यूल. ctx.actions
का इस्तेमाल करके, इस मॉड्यूल को ऐक्सेस करें.
सदस्य
- args
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- run
- run_shell
- symlink
- template_dict
- लिखें
args
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all()
की मदद से, इसे ऐक्शन कमांड में बड़ा किया जा सकता है. declare_directory के कॉन्टेंट में सिर्फ़ सामान्य फ़ाइलें और डायरेक्ट्री हो सकती हैं.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
filename
|
string;
required अगर कोई 'सिबलिंग' नहीं दी गई है, तो मौजूदा पैकेज के हिसाब से नई डायरेक्ट्री का पाथ. इसके अलावा, फ़ाइल के लिए कोई बेस नेम ('सिबलिंग' किसी डायरेक्ट्री को तय करता है). |
sibling
|
फ़ाइल; या None ;
डिफ़ॉल्ट वैल्यू None है यह एक ऐसी फ़ाइल होती है जो नई डायरेक्ट्री के साथ-साथ उसी डायरेक्ट्री में मौजूद होती है. फ़ाइल, मौजूदा पैकेज में होनी चाहिए. |
declare_file
File actions.declare_file(filename, *, sibling=None)
sibling
नहीं दिया गया है, तो फ़ाइल का नाम पैकेज डायरेक्ट्री के हिसाब से होता है. अगर sibling
दिया गया है, तो फ़ाइल उसी डायरेक्ट्री में होती है जिसमें sibling
होता है. फ़ाइलों को मौजूदा पैकेज के बाहर नहीं बनाया जा सकता.ध्यान रखें कि फ़ाइल का एलान करने के साथ-साथ, आपको एक ऐसी कार्रवाई भी बनानी होगी जो फ़ाइल को जनरेट करे. उस कार्रवाई को बनाने के लिए, कार्रवाई के कंस्ट्रक्शन फ़ंक्शन में दिखाए गए File
ऑब्जेक्ट को पास करना होगा.
ध्यान दें कि पहले से तय की गई आउटपुट फ़ाइलों को इस फ़ंक्शन का इस्तेमाल करके, तय करने की ज़रूरत नहीं होती. साथ ही, ऐसा नहीं किया जा सकता. इसके बजाय, ctx.outputs
से उनके File
ऑब्जेक्ट पाए जा सकते हैं. इस्तेमाल का उदाहरण देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
filename
|
string;
required अगर कोई 'सिबलिंग' नहीं दी गई है, तो नई फ़ाइल का पाथ, मौजूदा पैकेज के हिसाब से. इसके अलावा, किसी फ़ाइल के लिए बेस नेम ('सिबलिंग' से डायरेक्ट्री का पता चलता है). |
sibling
|
File; या None ;
डिफ़ॉल्ट वैल्यू None है यह एक ऐसी फ़ाइल होती है जो नई फ़ाइल वाली डायरेक्ट्री में ही मौजूद होती है. फ़ाइल, मौजूदा पैकेज में होनी चाहिए. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
filename
|
string;
required अगर कोई 'सिबलिंग' नहीं दिया गया है, तो मौजूदा पैकेज के हिसाब से नए सिंबल लिंक का पाथ. इसके अलावा, फ़ाइल के लिए कोई बेस नेम ('सिबलिंग' किसी डायरेक्ट्री को तय करता है). |
sibling
|
फ़ाइल; या None ;
डिफ़ॉल्ट वैल्यू None है यह एक ऐसी फ़ाइल होती है जो नई डिक्लेयर की गई सिंबॉलिक लिंक वाली डायरेक्ट्री में मौजूद होती है. |
do_nothing
None
actions.do_nothing(mnemonic, inputs=[])
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
mnemonic
|
string;
required कार्रवाई के बारे में एक शब्द में जानकारी. उदाहरण के लिए, CppCompile या GoLink. |
inputs
|
Files का sequence; या depset;
डिफ़ॉल्ट वैल्यू [] है कार्रवाई की इनपुट फ़ाइलों की सूची. |
expand_template
None
actions.expand_template(template, output, substitutions={}, is_executable=False, computed_substitutions=unbound)
substitutions
डिक्शनरी का इस्तेमाल करके बदला जाएगा. बदलाव उसी क्रम में किए जाएंगे जिस क्रम में उन्हें तय किया गया है. जब भी डिक्शनरी की कोई कुंजी, टेंप्लेट में दिखती है (या पिछले बदलाव का कोई नतीजा दिखता है), तो उसे उससे जुड़ी वैल्यू से बदल दिया जाता है. कुंजियों के लिए कोई खास सिंटैक्स नहीं है. उदाहरण के लिए, टकराव से बचने के लिए कर्ली ब्रेसिज़ का इस्तेमाल किया जा सकता है (जैसे, {KEY}
). इस्तेमाल का उदाहरण देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
template
|
फ़ाइल;
ज़रूरी है यह टेंप्लेट फ़ाइल है. इसे UTF-8 कोड वाली टेक्स्ट फ़ाइल में बदला गया है. |
output
|
फ़ाइल;
ज़रूरी है यह आउटपुट फ़ाइल है. इसे UTF-8 कोड में बदली गई टेक्स्ट फ़ाइल के तौर पर सेव किया जाता है. |
substitutions
|
dict;
default is {} Substitutions to make when expanding the template. |
is_executable
|
bool;
default is False Whether the output file should be executable. |
computed_substitutions
|
TemplateDict;
default is unbound Substitutions to make when expanding the template. |
रन
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;
required List of the output files of the action. |
inputs
|
Files का sequence; या depset;
डिफ़ॉल्ट वैल्यू [] है कार्रवाई के इनपुट फ़ाइलों की सूची या depset. |
unused_inputs_list
|
File; या None ;
डिफ़ॉल्ट वैल्यू None है ऐसी फ़ाइल जिसमें कार्रवाई के लिए इस्तेमाल नहीं किए गए इनपुट की सूची शामिल हो. इस फ़ाइल का कॉन्टेंट (आम तौर पर, कार्रवाई के आउटपुट में से एक) उन इनपुट फ़ाइलों की सूची से मेल खाता है जिनका इस्तेमाल पूरी कार्रवाई के दौरान नहीं किया गया था. उन फ़ाइलों में किए गए किसी भी बदलाव से, कार्रवाई के आउटपुट पर कोई असर नहीं पड़ना चाहिए. |
executable
|
File; या string; या FilesToRunProvider;
required यह एक ऐसी फ़ाइल होती है जिसे कार्रवाई के ज़रिए कॉल किया जाता है. |
tools
|
sequence; या depset;
डिफ़ॉल्ट वैल्यू unbound है कार्रवाई के लिए ज़रूरी टूल की सूची या depset . टूल, ऐसे इनपुट होते हैं जिन्हें एक्ज़ीक्यूट किया जा सकता है. इनमें अपनी रनफ़ाइलें हो सकती हैं. ये रनफ़ाइलें, कार्रवाई के लिए अपने-आप उपलब्ध हो जाती हैं. सूची में अलग-अलग तरह के ये आइटम शामिल हो सकते हैं:
ctx.executable और सूची में सीधे तौर पर मौजूद FilesToRunProvider की रनफ़ाइलें अपने-आप जुड़ जाएंगी.File सभी टूल को इनपुट के तौर पर अपने-आप जोड़ दिया जाता है.
|
arguments
|
sequence;
default is [] Command line arguments of the action. यह स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.
|
mnemonic
|
string; या None ;
डिफ़ॉल्ट वैल्यू None है कार्रवाई के बारे में एक शब्द में जानकारी. उदाहरण के लिए, CppCompile या GoLink. |
progress_message
|
string; या None ;
डिफ़ॉल्ट वैल्यू None है बिल्ड के दौरान उपयोगकर्ता को दिखाने के लिए प्रोग्रेस मैसेज. उदाहरण के लिए, "foo.o बनाने के लिए foo.cc को कंपाइल किया जा रहा है". मैसेज में %{label} , %{input} या %{output} पैटर्न शामिल हो सकते हैं. इन्हें लेबल स्ट्रिंग, पहले इनपुट या आउटपुट के पाथ से बदल दिया जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि ये ज़्यादा असरदार होते हैं.
|
use_default_shell_env
|
bool;
default is False Whether the action should use the default shell environment, which consists of a few OS-dependent variables as well as variables set via --action_env .अगर |
env
|
dict; या None ;
डिफ़ॉल्ट वैल्यू None है यह एनवायरमेंट वैरिएबल की डिक्शनरी सेट करता है. अगर |
execution_requirements
|
dict; या None ;
डिफ़ॉल्ट वैल्यू None है कार्रवाई शेड्यूल करने के लिए जानकारी. काम की कुंजियों के लिए, टैग देखें. |
input_manifests
|
sequence; या None ;
डिफ़ॉल्ट वैल्यू None है लेगसी आर्ग्युमेंट. ध्यान नहीं दिया गया. |
exec_group
|
string; या None ;
डिफ़ॉल्ट वैल्यू None है यह विकल्प, दिए गए exec ग्रुप के एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाई करता है. अगर कोई भी नहीं है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है. |
shadowed_action
|
कार्रवाई;
डिफ़ॉल्ट रूप से None होता है यह कार्रवाई, शैडो वाली कार्रवाई के दिए गए इनपुट और एनवायरमेंट का इस्तेमाल करके की जाती है. साथ ही, कार्रवाई के इनपुट की सूची और एनवायरमेंट में जोड़े गए इनपुट और एनवायरमेंट का इस्तेमाल करके भी की जाती है. ऐक्शन एनवायरमेंट, शैडो ऐक्शन के किसी भी एनवायरमेंट वैरिएबल को ओवरराइट कर सकता है. अगर कोई भी नहीं है, तो सिर्फ़ कार्रवाई के इनपुट और दिए गए एनवायरमेंट का इस्तेमाल करता है. |
resource_set
|
callable; या None ;
डिफ़ॉल्ट वैल्यू None है यह एक कॉलबैक फ़ंक्शन है, जो संसाधन सेट डिक्शनरी दिखाता है. इसका इस्तेमाल, एक्ज़ीक्यूशन के समय संसाधन के इस्तेमाल का अनुमान लगाने के लिए किया जाता है. ऐसा तब होता है, जब यह कार्रवाई स्थानीय तौर पर की जाती है. यह फ़ंक्शन, दो पोज़ीशनल आर्ग्युमेंट स्वीकार करता है: ओएस के नाम को दिखाने वाली स्ट्रिंग (जैसे, "osx") और कार्रवाई के लिए इनपुट की संख्या को दिखाने वाला पूर्णांक. डिक्शनरी में ये एंट्री हो सकती हैं. इनमें से हर एंट्री, फ़्लोट या पूर्णांक हो सकती है:
अगर इस पैरामीटर को कॉलबैक, टॉप-लेवल का होना चाहिए. इसमें लैम्डा और नेस्ट किए गए फ़ंक्शन इस्तेमाल नहीं किए जा सकते. |
toolchain
|
Label; या string; या None ;
डिफ़ॉल्ट वैल्यू unbound है इस कार्रवाई में इस्तेमाल किए गए एक्ज़ीक्यूटेबल या टूल का टूलचेन टाइप. अगर एक्ज़ीक्यूटेबल और टूल, टूलचेन से नहीं आ रहे हैं, तो इस पैरामीटर को `None` पर सेट करें. अगर एक्ज़ीक्यूटेबल और टूल, टूलचेन से आ रहे हैं, तो टूलचेन का टाइप सेट होना चाहिए, ताकि कार्रवाई सही एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर हो. ध्यान दें कि इस कार्रवाई को बनाने वाले नियम को, अपने '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)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
outputs
|
sequence of Files;
required List of the output files of the action. |
inputs
|
Files का sequence; या depset;
डिफ़ॉल्ट वैल्यू [] है कार्रवाई के इनपुट फ़ाइलों की सूची या depset. |
tools
|
Files का sequence या depset;
डिफ़ॉल्ट वैल्यू unbound है कार्रवाई के लिए ज़रूरी किसी भी टूल की सूची या depset . टूल, ऐसे इनपुट होते हैं जिन्हें एक्ज़ीक्यूट किया जा सकता है. इनमें अपनी रनफ़ाइलें हो सकती हैं. ये रनफ़ाइलें, कार्रवाई के लिए अपने-आप उपलब्ध हो जाती हैं. सूची में अलग-अलग तरह के ये आइटम शामिल हो सकते हैं:
ctx.executable और सूची में सीधे तौर पर मौजूद FilesToRunProvider की रनफ़ाइलें अपने-आप जुड़ जाएंगी.File सभी टूल को इनपुट के तौर पर अपने-आप जोड़ दिया जाता है.
|
arguments
|
sequence;
default is [] Command line arguments of the action. यह स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.Bazel, इस एट्रिब्यूट में मौजूद एलिमेंट को कमांड के लिए आर्ग्युमेंट के तौर पर पास करता है. कमांड, शेल वैरिएबल सब्स्टिट्यूशन जैसे कि अगर |
mnemonic
|
string; या None ;
डिफ़ॉल्ट वैल्यू None है कार्रवाई के बारे में एक शब्द में जानकारी. उदाहरण के लिए, CppCompile या GoLink. |
command
|
string; या strings का sequence;
ज़रूरी है यह शेल कमांड है, जिसे एक्ज़ीक्यूट करना है. यह स्ट्रिंग (सुझाया गया) या स्ट्रिंग का क्रम (इस्तेमाल से रोका गया) हो सकता है. अगर (अब इस्तेमाल नहीं किया जाता) अगर Bazel, कमांड को एक्ज़ीक्यूट करने के लिए उसी शेल का इस्तेमाल करता है जिसका इस्तेमाल वह genrules के लिए करता है. |
progress_message
|
string; या None ;
डिफ़ॉल्ट वैल्यू None है बिल्ड के दौरान उपयोगकर्ता को दिखाने के लिए प्रोग्रेस मैसेज. उदाहरण के लिए, "foo.o बनाने के लिए foo.cc को कंपाइल किया जा रहा है". मैसेज में %{label} , %{input} या %{output} पैटर्न शामिल हो सकते हैं. इन्हें लेबल स्ट्रिंग, पहले इनपुट या आउटपुट के पाथ से बदल दिया जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि ये ज़्यादा असरदार होते हैं.
|
use_default_shell_env
|
bool;
default is False Whether the action should use the default shell environment, which consists of a few OS-dependent variables as well as variables set via --action_env .अगर |
env
|
dict; या None ;
डिफ़ॉल्ट वैल्यू None है यह एनवायरमेंट वैरिएबल की डिक्शनरी सेट करता है. अगर |
execution_requirements
|
dict; या None ;
डिफ़ॉल्ट वैल्यू None है कार्रवाई शेड्यूल करने के लिए जानकारी. काम की कुंजियों के लिए, टैग देखें. |
input_manifests
|
sequence; या None ;
डिफ़ॉल्ट वैल्यू None है लेगसी आर्ग्युमेंट. ध्यान नहीं दिया गया. |
exec_group
|
string; या None ;
डिफ़ॉल्ट वैल्यू None है यह विकल्प, दिए गए exec ग्रुप के एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाई करता है. अगर कोई भी नहीं है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है. |
shadowed_action
|
कार्रवाई;
डिफ़ॉल्ट रूप से None होता है यह कार्रवाई, शैडो वाली कार्रवाई के खोजे गए इनपुट का इस्तेमाल करके की जाती है. ये इनपुट, कार्रवाई के इनपुट की सूची में जोड़े जाते हैं. अगर कोई भी इनपुट नहीं है, तो सिर्फ़ ऐक्शन के इनपुट का इस्तेमाल करता है. |
resource_set
|
callable; या None ;
default is None A callback function for estimating resource usage if run locally. ctx.actions.run() देखें.
|
toolchain
|
Label; या string; या None ;
डिफ़ॉल्ट वैल्यू unbound है इस कार्रवाई में इस्तेमाल किए गए एक्ज़ीक्यूटेबल या टूल का टूलचेन टाइप. अगर एक्ज़ीक्यूटेबल और टूल, टूलचेन से नहीं आ रहे हैं, तो इस पैरामीटर को `None` पर सेट करें. अगर एक्ज़ीक्यूटेबल और टूल, टूलचेन से आ रहे हैं, तो टूलचेन का टाइप सेट होना चाहिए, ताकि कार्रवाई सही एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर हो. ध्यान दें कि इस कार्रवाई को बनाने वाले नियम को, अपने '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
एट्रिब्यूट की वैल्यू से output
एट्रिब्यूट की वैल्यू का टाइप मेल खाना चाहिए. इससे सिमलिंक, target_file
पर पॉइंट करेगा. सिमलिंक के टारगेट या उसके कॉन्टेंट में बदलाव होने पर, Bazel इस कार्रवाई के आउटपुट को अमान्य कर देता है.
इसके अलावा, target_path
का इस्तेमाल करते समय, declare_symlink()
के साथ output
का एलान करें. इस मामले में, सिमलंक target_path
की ओर इशारा करता है. Bazel कभी भी सिमलंक को हल नहीं करता है. इस कार्रवाई का आउटपुट सिर्फ़ तब अमान्य होता है, जब सिमलंक के टेक्स्ट कॉन्टेंट (यानी कि readlink()
की वैल्यू) में बदलाव होता है. खास तौर पर, इसका इस्तेमाल डैंगलिंग सिमलंक बनाने के लिए किया जा सकता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
output
|
फ़ाइल;
ज़रूरी है यह इस कार्रवाई का आउटपुट है. |
target_file
|
File; या None ;
डिफ़ॉल्ट वैल्यू None है यह वह फ़ाइल है जिस पर आउटपुट सिंबल लिंक करेगा. |
target_path
|
string; या None ;
डिफ़ॉल्ट वैल्यू None है यह वह सटीक पाथ है जिस पर आउटपुट सिमलंक पॉइंट करेगा. इसमें कोई बदलाव या अन्य प्रोसेसिंग नहीं की जाती है. |
is_executable
|
bool;
डिफ़ॉल्ट वैल्यू False है इसका इस्तेमाल सिर्फ़ target_file के साथ किया जा सकता है, target_path के साथ नहीं. अगर यह वैल्यू 'सही है' पर सेट है, तो कार्रवाई पूरी होने पर target_file के पाथ की जांच की जाती है. इससे यह पुष्टि की जाती है कि इसे एक्ज़ीक्यूट किया जा सकता है. अगर ऐसा नहीं होता है, तो गड़बड़ी की सूचना दी जाती है. is_executable को 'गलत है' पर सेट करने का मतलब यह नहीं है कि टारगेट को लागू नहीं किया जा सकता. इसका मतलब सिर्फ़ यह है कि पुष्टि नहीं की जाती.
|
progress_message
|
string; या None ;
डिफ़ॉल्ट वैल्यू None है बिल्ड के दौरान उपयोगकर्ता को दिखाने के लिए प्रोग्रेस मैसेज. |
template_dict
TemplateDict actions.template_dict()
मेरी मदद करो
None
actions.write(output, content, is_executable=False, *, mnemonic=None)
expand_template
का इस्तेमाल करें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
output
|
File;
required यह आउटपुट फ़ाइल है. |
content
|
string; या Args;
required the contents of the file. यह एक स्ट्रिंग या actions.args() ऑब्जेक्ट हो सकता है.
|
is_executable
|
bool;
default is False Whether the output file should be executable. |
mnemonic
|
string; या None ;
डिफ़ॉल्ट वैल्यू None है कार्रवाई के बारे में एक शब्द में जानकारी. उदाहरण के लिए, CppCompile या GoLink. |