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() की मदद से, इसे ऐक्शन कमांड में बड़ा किया जा सकता है.
पैरामीटर
| पैरामीटर | ब्यौरा |
|---|---|
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;
default = Noneयह एक ऐसी फ़ाइल होती है जो नई फ़ाइल के साथ ही डायरेक्ट्री में मौजूद होती है. फ़ाइल, मौजूदा पैकेज में होनी चाहिए. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
एक्सपेरिमेंटल. यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है. इसमें कभी भी बदलाव किया जा सकता है. कृपया इसके भरोसे न रहें. इसे एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. इसके लिए, --experimental_allow_unresolved_symlinks को सेट करना होगा
यह एलान करता है कि नियम या पहलू, मौजूदा पैकेज में दिए गए नाम के साथ एक सिमलंक बनाता है. आपको ऐसा ऐक्शन बनाना होगा जो इस सिमलंक को जनरेट करे. Bazel इस सिमलंक को कभी भी डीरेफ़रेंस नहीं करेगा. साथ ही, इसे सैंडबॉक्स या रिमोट एक्ज़ीक्यूटर को ट्रांसफ़र कर देगा.
पैरामीटर
| पैरामीटर | ब्यौरा |
|---|---|
filename
|
ज़रूरी है अगर कोई 'सिबलिंग' नहीं दी गई है, तो नए सिंबल लिंक का पाथ, मौजूदा पैकेज के हिसाब से. इसके अलावा, किसी फ़ाइल के लिए बेस नेम ('सिबलिंग' किसी डायरेक्ट्री को तय करता है). |
sibling
|
File; or None;
default = 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 = {} Substitutions to make when expanding the template. |
is_executable
|
default = False आउटपुट फ़ाइल एक्ज़ीक्यूटेबल होनी चाहिए या नहीं. |
computed_substitutions
|
TemplateDict;
default = unboundExperimental. यह पैरामीटर एक्सपेरिमेंट के तौर पर उपलब्ध है. इसमें कभी भी बदलाव किया जा सकता है. कृपया इसके भरोसे न रहें. इसे एक्सपेरिमेंट के तौर पर चालू किया जा सकता है. इसके लिए, --+experimental_lazy_template_expansion Experimental: 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=None)
पैरामीटर
| पैरामीटर | ब्यौरा |
|---|---|
outputs
|
sequence of Files;
ज़रूरी हैकार्रवाई की आउटपुट फ़ाइलों की सूची. |
inputs
|
sequence of Files; or depset;
default = []कार्रवाई की इनपुट फ़ाइलों की सूची या depset. |
unused_inputs_list
|
File; or None;
default = Noneऐसी फ़ाइल जिसमें कार्रवाई के लिए इस्तेमाल न किए गए इनपुट की सूची मौजूद हो. इस फ़ाइल का कॉन्टेंट, आम तौर पर कार्रवाई के आउटपुट में से एक होता है. यह उन इनपुट फ़ाइलों की सूची से मेल खाता है जिनका इस्तेमाल, कार्रवाई पूरी होने तक नहीं किया गया था. उन फ़ाइलों में किए गए किसी भी बदलाव से, कार्रवाई के आउटपुट पर कोई असर नहीं पड़ना चाहिए. |
executable
|
File; or string; or FilesToRunProvider;
ज़रूरी हैयह वह फ़ाइल है जिसे कार्रवाई के ज़रिए कॉल किया जाएगा. |
tools
|
sequence; or depset;
डिफ़ॉल्ट = unboundकार्रवाई के लिए ज़रूरी टूल की सूची या depset. टूल, अतिरिक्त रनफ़ाइल वाले इनपुट होते हैं. ये फ़ाइलें, कार्रवाई के लिए अपने-आप उपलब्ध हो जाती हैं. सूची दिए जाने पर, यह फ़ाइलों, FilesToRunProvider इंस्टेंस या फ़ाइलों के depsets का अलग-अलग कलेक्शन हो सकता है. सूची में मौजूद ऐसी फ़ाइलें जो सीधे तौर पर ctx.executable से आती हैं उनके रनफ़ाइल अपने-आप जुड़ जाएंगी. डेटासेट उपलब्ध कराने पर, उसमें सिर्फ़ फ़ाइलें होनी चाहिए. दोनों ही मामलों में, depsets में मौजूद फ़ाइलों को runfiles के लिए ctx.executable के साथ क्रॉस-रेफ़रंस नहीं किया जाता है. |
arguments
|
sequence;
default = []कार्रवाई के कमांड लाइन आर्ग्युमेंट. यह स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.
|
mnemonic
|
string; or None;
default = Noneकार्रवाई के बारे में एक शब्द में जानकारी. उदाहरण के लिए, CppCompile या GoLink. |
progress_message
|
string; or None;
default = NoneProgress message to show to the user during the build, for example, "Compiling foo.cc to create foo.o". मैसेज में %{label}, %{input} या %{output} पैटर्न शामिल हो सकते हैं. इन्हें लेबल स्ट्रिंग, पहले इनपुट या आउटपुट के पाथ से बदल दिया जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि ये ज़्यादा असरदार होते हैं.
|
use_default_shell_env
|
default = False Whether the action should use the built in shell environment or not. |
env
|
dict; or None;
default = Noneयह एनवायरमेंट वैरिएबल का डिक्शनरी सेट करता है. |
execution_requirements
|
dict; or None;
default = Noneकार्रवाई शेड्यूल करने के बारे में जानकारी. काम की कुंजियों के लिए, टैग देखें. |
input_manifests
|
sequence; or None;
default = None(Experimental) sets the input runfiles metadata; they are typically generated by resolve_command. |
exec_group
|
string; or None;
default = Noneयह दिए गए एक्ज़ीक्यूशन ग्रुप के एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाई करता है. अगर कोई भी नहीं है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है. |
shadowed_action
|
Action;
default = Noneयह कार्रवाई, शैडो की गई कार्रवाई के दिए गए इनपुट और एनवायरमेंट का इस्तेमाल करके की जाती है. साथ ही, कार्रवाई के इनपुट की सूची और एनवायरमेंट में जोड़े गए इनपुट और एनवायरमेंट का इस्तेमाल करके भी की जाती है. कार्रवाई का एनवायरमेंट, शैडो वाली कार्रवाई के किसी भी एनवायरमेंट वैरिएबल को ओवरराइट कर सकता है. अगर कोई भी नहीं है, तो सिर्फ़ कार्रवाई के इनपुट और दिए गए एनवायरमेंट का इस्तेमाल करता है. |
resource_set
|
callable; or None;
default = Noneयह एक कॉलबैक फ़ंक्शन है, जो संसाधन सेट डिक्शनरी दिखाता है. इसका इस्तेमाल, एक्ज़ीक्यूशन के समय संसाधन के इस्तेमाल का अनुमान लगाने के लिए किया जाता है. ऐसा तब होता है, जब यह कार्रवाई स्थानीय तौर पर की जाती है. यह फ़ंक्शन, दो पोज़ीशनल आर्ग्युमेंट स्वीकार करता है: ओएस के नाम को दिखाने वाली स्ट्रिंग (जैसे, "osx") और कार्रवाई के लिए इनपुट की संख्या को दिखाने वाला पूर्णांक. डिक्शनरी में ये एंट्री हो सकती हैं. इनमें से हर एंट्री, फ़्लोट या पूर्णांक हो सकती है:
अगर इस पैरामीटर को कॉलबैक, टॉप-लेवल का होना चाहिए. इसमें लैम्डा और नेस्ट किए गए फ़ंक्शन इस्तेमाल नहीं किए जा सकते. |
toolchain
|
Label; or string; or None;
default = 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;
डिफ़ॉल्ट = unboundकार्रवाई के लिए ज़रूरी टूल की सूची या depset. टूल, अतिरिक्त रनफ़ाइल वाले इनपुट होते हैं. ये फ़ाइलें, कार्रवाई के लिए अपने-आप उपलब्ध हो जाती हैं. इस सूची में Files या FilesToRunProvider इंस्टेंस शामिल हो सकते हैं. |
arguments
|
sequence;
default = []कार्रवाई के कमांड लाइन आर्ग्युमेंट. यह स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.Bazel, इस एट्रिब्यूट में मौजूद एलिमेंट को कमांड के लिए आर्ग्युमेंट के तौर पर पास करता है. कमांड, शेल वैरिएबल के बदले जाने की सुविधा का इस्तेमाल करके इन आर्ग्युमेंट को ऐक्सेस कर सकती है. जैसे, अगर |
mnemonic
|
string; or None;
default = Noneकार्रवाई के बारे में एक शब्द में जानकारी. उदाहरण के लिए, CppCompile या GoLink. |
command
|
string; or sequence of strings;
ज़रूरी हैयह वह शेल कमांड है जिसे चलाना है. यह स्ट्रिंग (सुझाया गया) या स्ट्रिंग का क्रम (अब इस्तेमाल नहीं किया जा सकता) हो सकता है. अगर (अब इस्तेमाल नहीं किया जा सकता) अगर Bazel, कमांड को एक्ज़ीक्यूट करने के लिए उसी शेल का इस्तेमाल करता है जिसका इस्तेमाल वह जनरूल के लिए करता है. |
progress_message
|
string; or None;
default = NoneProgress message to show to the user during the build, for example, "Compiling foo.cc to create foo.o". मैसेज में %{label}, %{input} या %{output} पैटर्न शामिल हो सकते हैं. इन्हें लेबल स्ट्रिंग, पहले इनपुट या आउटपुट के पाथ से बदल दिया जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि ये ज़्यादा असरदार होते हैं.
|
use_default_shell_env
|
default = False Whether the action should use the built in shell environment or not. |
env
|
dict; or None;
default = Noneयह एनवायरमेंट वैरिएबल का डिक्शनरी सेट करता है. |
execution_requirements
|
dict; or None;
default = Noneकार्रवाई को शेड्यूल करने के बारे में जानकारी. काम की कुंजियों के लिए, टैग देखें. |
input_manifests
|
sequence; or None;
default = None(Experimental) sets the input runfiles metadata; they are typically generated by resolve_command. |
exec_group
|
string; or None;
default = Noneयह दिए गए एक्ज़ीक्यूशन ग्रुप के एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाई करता है. अगर कोई भी नहीं है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है. |
shadowed_action
|
Action;
default = Noneयह कार्रवाई, शैडो की गई कार्रवाई के मिले हुए इनपुट का इस्तेमाल करके की जाती है. इन इनपुट को कार्रवाई के इनपुट की सूची में जोड़ा जाता है. अगर कोई भी इनपुट नहीं है, तो सिर्फ़ कार्रवाई के इनपुट का इस्तेमाल करता है. |
resource_set
|
callable; or None;
default = Noneअगर इसे स्थानीय तौर पर चलाया जाता है, तो संसाधन के इस्तेमाल का अनुमान लगाने के लिए कॉलबैक फ़ंक्शन. ctx.actions.run() देखें.
|
toolchain
|
Label; or string; or None;
default = 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 एट्रिब्यूट की वैल्यू से output एट्रिब्यूट की वैल्यू का टाइप मैच होना चाहिए. इससे सिमलिंक, target_file पर पॉइंट करता है. सिमलिंक के टारगेट या उसके कॉन्टेंट में बदलाव होने पर, Bazel इस कार्रवाई के आउटपुट को अमान्य कर देता है.
इसके अलावा, target_path का इस्तेमाल करते समय, declare_symlink() के साथ output का एलान करें. इस मामले में, सिंबॉलिक लिंक target_path की ओर इशारा करता है. Bazel कभी भी सिमलंक को हल नहीं करता है. इस कार्रवाई का आउटपुट सिर्फ़ तब अमान्य होता है, जब सिमलंक के टेक्स्ट कॉन्टेंट (यानी कि readlink() की वैल्यू) में बदलाव होता है. खास तौर पर, इसका इस्तेमाल डैंगलिंग सिमलंक बनाने के लिए किया जा सकता है.
पैरामीटर
| पैरामीटर | ब्यौरा |
|---|---|
output
|
ज़रूरी है इस कार्रवाई का आउटपुट. |
target_file
|
File; or None;
डिफ़ॉल्ट = कोई नहींवह फ़ाइल जिस पर आउटपुट सिमलंक पॉइंट करेगा. |
target_path
|
string; or None;
default = None(Experimental) The exact path that the output symlink will point to. इसमें कोई सामान्यीकरण या अन्य प्रोसेसिंग लागू नहीं की जाती. इस सुविधा को ऐक्सेस करने के लिए, --experimental_allow_unresolved_symlinks को सेट करना ज़रूरी है.
|
is_executable
|
default = False इसका इस्तेमाल सिर्फ़ target_file के साथ किया जा सकता है, target_path के साथ नहीं. अगर यह वैल्यू 'सही है' पर सेट है, तो कार्रवाई पूरी होने पर target_file के पाथ की जांच की जाती है. इससे यह पुष्टि की जाती है कि इसे एक्ज़ीक्यूट किया जा सकता है. अगर ऐसा नहीं होता है, तो गड़बड़ी की सूचना दी जाती है. is_executable को 'गलत है' पर सेट करने का मतलब यह नहीं है कि टारगेट को लागू नहीं किया जा सकता. इसका मतलब सिर्फ़ यह है कि पुष्टि नहीं की जाती.
|
progress_message
|
string; or None;
default = NoneProgress message to show to the user during the build. |
template_dict
TemplateDict actions.template_dict()
--+experimental_lazy_template_expansion Experimental: Returns a TemplateDict object for memory-efficient template expansion को सेट करना होगा.
मेरी मदद करो
None actions.write(output, content, is_executable=False)
expand_template का इस्तेमाल करें.
पैरामीटर
| पैरामीटर | ब्यौरा |
|---|---|
output
|
ज़रूरी है यह आउटपुट फ़ाइल है. |
content
|
string; or Args;
requiredthe contents of the file. यह एक स्ट्रिंग या actions.args() ऑब्जेक्ट हो सकता है.
|
is_executable
|
default = False आउटपुट फ़ाइल एक्ज़ीक्यूटेबल होनी चाहिए या नहीं. |