अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
कार्रवाइयां बनाने के लिए फ़ंक्शन उपलब्ध कराने वाला मॉड्यूल. ctx.actions
का इस्तेमाल करके इस मॉड्यूल को ऐक्सेस करें.
सदस्य
- आर्ग
- declare_directory
- declare_file
- declare_symlink
- do_nothing
- expand_template
- रन
- run_shell
- सिमलिंक
- template_dict
- लिखें
आर्ग्युमेंट
Args actions.args()
declare_directory
File actions.declare_directory(filename, *, sibling=None)
Args.add_all()
की मदद से, ऐक्शन कमांड में बड़ा किया जा सकता है. किसी dec_directory के बड़े किए गए कॉन्टेंट में, सिर्फ़ सामान्य फ़ाइलें और डायरेक्ट्री ही शामिल की जा सकती हैं.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
filename
|
string;
ज़रूरी है अगर कोई 'सिबलिंग' नहीं है दिया गया, मौजूदा पैकेज से जुड़ी नई डायरेक्ट्री का पाथ. ऐसा न होने पर, फ़ाइल का बेस नाम ('सिबलिंग', डायरेक्ट्री के बारे में बताता है). |
sibling
|
फ़ाइल; या None ;
डिफ़ॉल्ट रूप से None है ऐसी फ़ाइल जो उसी डायरेक्ट्री में मौजूद है जिसमें अभी नई डायरेक्ट्री का एलान किया गया है. फ़ाइल मौजूदा पैकेज में होनी चाहिए. |
declare_file
File actions.declare_file(filename, *, sibling=None)
sibling
तय नहीं किया गया है, तो फ़ाइल का नाम पैकेज डायरेक्ट्री के हिसाब से होगा. अगर ऐसा नहीं है, तो फ़ाइल उसी डायरेक्ट्री में sibling
की गई होगी. फ़ाइलों को मौजूदा पैकेज के बाहर नहीं बनाया जा सकता.याद रखें कि किसी फ़ाइल के बारे में जानकारी देने के अलावा, आपको अलग से ऐसी कार्रवाई बनानी होगी जिससे फ़ाइल में कार्बन का उत्सर्जन होता हो. इस कार्रवाई को करने के लिए, लौटाए गए File
ऑब्जेक्ट को कार्रवाई के कंस्ट्रक्शन फ़ंक्शन में पास करना होगा.
ध्यान दें कि पहले से तय की गई आउटपुट फ़ाइलों का एलान, इस फ़ंक्शन का इस्तेमाल करके नहीं किया जा सकता. साथ ही, इनका एलान भी नहीं किया जा सकता. इसके बजाय, ctx.outputs
से उनके File
ऑब्जेक्ट हासिल किए जा सकते हैं. इस्तेमाल का उदाहरण देखें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
filename
|
string;
ज़रूरी है अगर कोई 'सिबलिंग' नहीं है दिया गया, मौजूदा पैकेज से जुड़ी नई फ़ाइल का पाथ. ऐसा नहीं होने पर, किसी फ़ाइल का बेस नाम ('सिबलिंग', डायरेक्ट्री तय करता है). |
sibling
|
फ़ाइल; या None ;
डिफ़ॉल्ट रूप से None है ऐसी फ़ाइल जो उसी डायरेक्ट्री में मौजूद है जिसमें नई फ़ाइल बनाई गई है. फ़ाइल मौजूदा पैकेज में होनी चाहिए. |
declare_symlink
File actions.declare_symlink(filename, *, sibling=None)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
filename
|
string;
ज़रूरी है अगर कोई 'सिबलिंग' नहीं है दिया गया, नए सिमलिंक का पाथ, जो मौजूदा पैकेज से मिलता-जुलता हो. ऐसा न होने पर, फ़ाइल का बेस नाम ('सिबलिंग', डायरेक्ट्री के बारे में बताता है). |
sibling
|
फ़ाइल; या None ;
डिफ़ॉल्ट रूप से None है ऐसी फ़ाइल जो उसी डायरेक्ट्री में मौजूद है जिसमें नया सिमलिंक है. |
do_nothing
None
actions.do_nothing(mnemonic, inputs=[])
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
mnemonic
|
string;
ज़रूरी है कार्रवाई के बारे में एक शब्द में जानकारी, उदाहरण के लिए, CppCompile या GoLink. |
inputs
|
फ़ाइल का क्रम; या डिप्सेट;
डिफ़ॉल्ट [] है कार्रवाई की इनपुट फ़ाइलों की सूची. |
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;
डिफ़ॉल्ट रूप से {} है टेंप्लेट को बड़ा करते समय किए जाने वाले विकल्प. |
is_executable
|
bool;
डिफ़ॉल्ट रूप से False है आउटपुट फ़ाइल एक्ज़ीक्यूटेबल होनी चाहिए या नहीं. |
computed_substitutions
|
TemplateDict;
डिफ़ॉल्ट रूप से unbound है टेंप्लेट को बड़ा करते समय किए जाने वाले विकल्प. |
रन
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
|
फ़ाइल का क्रम;
ज़रूरी है कार्रवाई की आउटपुट फ़ाइलों की सूची. |
inputs
|
फ़ाइल का क्रम; या डिप्सेट;
डिफ़ॉल्ट [] है कार्रवाई की इनपुट फ़ाइलों की सूची या सूची. |
unused_inputs_list
|
फ़ाइल; या None ;
डिफ़ॉल्ट रूप से None है ऐसी फ़ाइल जिसमें इनपुट की ऐसी सूची दी गई है जिसका इस्तेमाल ऐसी कार्रवाई के लिए नहीं किया गया है. इस फ़ाइल का कॉन्टेंट (आम तौर पर, कार्रवाई के आउटपुट में से एक) उन इनपुट फ़ाइलों की सूची के मुताबिक होता है जिनका इस्तेमाल पूरी कार्रवाई के दौरान नहीं किया गया था. उन फ़ाइलों में कोई भी बदलाव करने से, कार्रवाई के आउटपुट पर कोई असर नहीं पड़ना चाहिए. |
executable
|
फ़ाइल; या string; या FilesToRunProvider;
ज़रूरी है कार्रवाई से कॉल की जाने वाली एक्ज़ीक्यूटेबल फ़ाइल. |
tools
|
क्रम; या डिप्सेट;
डिफ़ॉल्ट unbound है कार्रवाई के लिए ज़रूरी सभी टूल की सूची बनाएं या उन्हें हटाएं. टूल, अतिरिक्त रनफ़ाइल वाले इनपुट होते हैं, जो कार्रवाई के लिए अपने-आप उपलब्ध होते हैं. जब सूची दी जाती है, तब यह Files, FilesToRunProvider इंस्टेंस या Files के डिपार्टमेंट का एक विषम संग्रह हो सकता है. जो फ़ाइलें सीधे सूची में हैं और ctx.executable से आती हैं उनकी रनफ़ाइल अपने-आप जुड़ जाएंगी. जब डिप्सेट दिया जाता है, तो उसमें सिर्फ़ Files ही शामिल होना चाहिए. दोनों ही मामलों में, रनफ़ाइल के लिए ctx.executable के साथ डेपसेट में मौजूद फ़ाइलों की क्रॉस-रेफ़रंस नहीं की जाती है. |
arguments
|
क्रम;
डिफ़ॉल्ट रूप से [] है कार्रवाई के कमांड लाइन आर्ग्युमेंट. यह स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.
|
mnemonic
|
string; या None ;
डिफ़ॉल्ट रूप से None है कार्रवाई के बारे में एक शब्द में जानकारी, उदाहरण के लिए, CppCompile या GoLink. |
progress_message
|
string; या None ;
डिफ़ॉल्ट रूप से None है बिल्ड के दौरान उपयोगकर्ता को प्रोग्रेस दिखाने वाला मैसेज. उदाहरण के लिए, "foo.cc को foo.o बनाने के लिए कंपाइल करना". मैसेज में %{label} , %{input} या %{output} पैटर्न हो सकते हैं. इन्हें लेबल स्ट्रिंग, पहले इनपुट या आउटपुट के पाथ से बदल दिया जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि पहली स्ट्रिंग ज़्यादा असरदार होती हैं.
|
use_default_shell_env
|
bool;
डिफ़ॉल्ट रूप से False है कार्रवाई में डिफ़ॉल्ट शेल एनवायरमेंट का इस्तेमाल किया जाना चाहिए या नहीं. इसमें, ओएस पर निर्भर कुछ वैरिएबल के साथ-साथ --action_env के ज़रिए सेट किए गए वैरिएबल शामिल हैं.अगर |
env
|
dict; या None ;
डिफ़ॉल्ट रूप से None है एनवायरमेंट वैरिएबल की डिक्शनरी को सेट करता है. अगर |
execution_requirements
|
dict; या None ;
डिफ़ॉल्ट रूप से None है कार्रवाई शेड्यूल करने के बारे में जानकारी. काम की कुंजियों के लिए टैग देखें. |
input_manifests
|
क्रम; या None ;
डिफ़ॉल्ट रूप से None है लेगसी आर्ग्युमेंट. ध्यान नहीं दिया गया. |
exec_group
|
string; या None ;
डिफ़ॉल्ट रूप से None है दिए गए exec ग्रुप के एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाई करता है. अगर ऐसा नहीं होता है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है. |
shadowed_action
|
कार्रवाई;
डिफ़ॉल्ट रूप से None है शैडो की गई कार्रवाई के इनपुट और कार्रवाई की इनपुट सूची और एनवायरमेंट में जोड़े गए एनवायरमेंट का इस्तेमाल करके कार्रवाई चलाता है. कार्रवाई एनवायरमेंट, शैडो की गई किसी भी कार्रवाई के एनवायरमेंट वैरिएबल को ओवरराइट कर सकता है. अगर इनमें से कोई भी नहीं है, तो सिर्फ़ कार्रवाई के इनपुट और दिए गए एनवायरमेंट का इस्तेमाल किया जाता है. |
resource_set
|
कॉल करने लायक; या None ;
डिफ़ॉल्ट रूप से None है एक कॉलबैक फ़ंक्शन, जो संसाधन सेट डिक्शनरी दिखाता है. अगर इस कार्रवाई को स्थानीय तौर पर चलाया जाता है, तो संसाधन के इस्तेमाल का अनुमान लगाने के लिए इसका इस्तेमाल किया जाता है. फ़ंक्शन में दो पोज़िशनल आर्ग्युमेंट इस्तेमाल किए जा सकते हैं: ओएस का नाम (जैसे कि "osx") दिखाने वाली स्ट्रिंग और ऐक्शन के लिए इनपुट की संख्या दिखाने वाला पूर्णांक. लौटाए गए शब्दकोश में निम्न प्रविष्टियां हो सकती हैं, जिनमें से प्रत्येक फ़्लोट या पूर्णांक हो सकती है:
अगर यह पैरामीटर कॉलबैक टॉप-लेवल का होना चाहिए. लैम्डा और नेस्ट किए गए फ़ंक्शन की अनुमति नहीं है. |
toolchain
|
लेबल; या string; या None ;
डिफ़ॉल्ट रूप से unbound है इस कार्रवाई में इस्तेमाल किए जाने वाले एक्ज़ीक्यूटेबल या टूल का टूलचेन टाइप. अगर एक्ज़ीक्यूटेबल और टूल टूलचेन से नहीं मिल रहे हैं, तो इस पैरामीटर को `कोई नहीं` पर सेट करें. अगर एक्ज़ीक्यूटेबल और टूल किसी टूलचेन से आ रहे हैं, तो टूलचेन टाइप सेट होना ज़रूरी है, ताकि कार्रवाई सही एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर लागू हो सके. ध्यान दें कि यह कार्रवाई बनाने वाले नियम के लिए यह टूलचेन तय करना ज़रूरी है कि यह 'नियम()' के अंदर मौजूद हो फ़ंक्शन का इस्तेमाल करना होगा. जब `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
|
फ़ाइल का क्रम;
ज़रूरी है कार्रवाई की आउटपुट फ़ाइलों की सूची. |
inputs
|
फ़ाइल का क्रम; या डिप्सेट;
डिफ़ॉल्ट [] है कार्रवाई की इनपुट फ़ाइलों की सूची या सूची. |
tools
|
फ़ाइल का क्रम; या डिप्सेट;
डिफ़ॉल्ट unbound है कार्रवाई के लिए ज़रूरी सभी टूल की सूची बनाएं या उन्हें हटाएं. टूल, अतिरिक्त रनफ़ाइल वाले इनपुट होते हैं, जो कार्रवाई के लिए अपने-आप उपलब्ध होते हैं. इस सूची में Files या FilesToRunProvider के इंस्टेंस शामिल हो सकते हैं. |
arguments
|
क्रम;
डिफ़ॉल्ट रूप से [] है कार्रवाई के कमांड लाइन आर्ग्युमेंट. यह स्ट्रिंग या actions.args() ऑब्जेक्ट की सूची होनी चाहिए.Basel इस एट्रिब्यूट में एलिमेंट को कमांड के लिए आर्ग्युमेंट के तौर पर पास करता है.कमांड, शेल वैरिएबल सब्सिट्यूशन जैसे कि ऐसे मामले में जहां |
mnemonic
|
string; या None ;
डिफ़ॉल्ट रूप से None है कार्रवाई के बारे में एक शब्द में जानकारी, उदाहरण के लिए, CppCompile या GoLink. |
command
|
string; या स्ट्रिंग का सीक्वेंस;
ज़रूरी है शेल कमांड इस्तेमाल करना है. यह या तो कोई स्ट्रिंग (पसंदीदा) या स्ट्रिंग का कोई क्रम हो सकता है (अब सेवा में नहीं है). अगर (अब काम नहीं करता) अगर बेज़ल, आदेश को अंजाम देने के लिए उसी शेल का इस्तेमाल करते हैं, जो जेन रूल के लिए करते हैं. |
progress_message
|
string; या None ;
डिफ़ॉल्ट रूप से None है बिल्ड के दौरान उपयोगकर्ता को प्रोग्रेस दिखाने वाला मैसेज. उदाहरण के लिए, "foo.cc को foo.o बनाने के लिए कंपाइल करना". मैसेज में %{label} , %{input} या %{output} पैटर्न हो सकते हैं. इन्हें लेबल स्ट्रिंग, पहले इनपुट या आउटपुट के पाथ से बदल दिया जाता है. स्टैटिक स्ट्रिंग के बजाय पैटर्न का इस्तेमाल करें, क्योंकि पहली स्ट्रिंग ज़्यादा असरदार होती हैं.
|
use_default_shell_env
|
bool;
डिफ़ॉल्ट रूप से False है कार्रवाई में डिफ़ॉल्ट शेल एनवायरमेंट का इस्तेमाल किया जाना चाहिए या नहीं. इसमें, ओएस पर निर्भर कुछ वैरिएबल के साथ-साथ --action_env के ज़रिए सेट किए गए वैरिएबल शामिल हैं.अगर |
env
|
dict; या None ;
डिफ़ॉल्ट रूप से None है एनवायरमेंट वैरिएबल की डिक्शनरी को सेट करता है. अगर |
execution_requirements
|
dict; या None ;
डिफ़ॉल्ट रूप से None है कार्रवाई शेड्यूल करने के बारे में जानकारी. काम की कुंजियों के लिए टैग देखें. |
input_manifests
|
क्रम; या None ;
डिफ़ॉल्ट रूप से None है लेगसी आर्ग्युमेंट. ध्यान नहीं दिया गया. |
exec_group
|
string; या None ;
डिफ़ॉल्ट रूप से None है दिए गए exec ग्रुप के एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर कार्रवाई करता है. अगर ऐसा नहीं होता है, तो टारगेट के डिफ़ॉल्ट एक्ज़ीक्यूशन प्लैटफ़ॉर्म का इस्तेमाल करता है. |
shadowed_action
|
कार्रवाई;
डिफ़ॉल्ट रूप से None है शैडो की गई कार्रवाई के खोजे गए इनपुट को कार्रवाई की इनपुट सूची में जोड़े गए इनपुट का इस्तेमाल करके कार्रवाई चलाता है. अगर इनमें से कोई नहीं है, तो सिर्फ़ कार्रवाई के इनपुट का इस्तेमाल करता है. |
resource_set
|
कॉल करने लायक; या None ;
डिफ़ॉल्ट रूप से None है अगर स्थानीय तौर पर चलाया जाता है, तो संसाधन के इस्तेमाल का अनुमान लगाने के लिए कॉलबैक फ़ंक्शन. ctx.actions.run() देखें.
|
toolchain
|
लेबल; या string; या None ;
डिफ़ॉल्ट रूप से unbound है इस कार्रवाई में इस्तेमाल किए जाने वाले एक्ज़ीक्यूटेबल या टूल का टूलचेन टाइप. अगर एक्ज़ीक्यूटेबल और टूल टूलचेन से नहीं मिल रहे हैं, तो इस पैरामीटर को `कोई नहीं` पर सेट करें. अगर एक्ज़ीक्यूटेबल और टूल किसी टूलचेन से आ रहे हैं, तो टूलचेन टाइप सेट होना ज़रूरी है, ताकि कार्रवाई सही एक्ज़ीक्यूशन प्लैटफ़ॉर्म पर लागू हो सके. ध्यान दें कि यह कार्रवाई बनाने वाले नियम के लिए यह टूलचेन तय करना ज़रूरी है कि यह 'नियम()' के अंदर मौजूद हो फ़ंक्शन का इस्तेमाल करना होगा. जब `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
का इस्तेमाल करते समय, output
को declare_file()
या declare_directory()
के साथ बताएं और target_file
टाइप से मैच करें. इससे सिमलिंक पॉइंट, target_file
पर सेट हो जाता है. जब भी सिमलिंक का टारगेट या इसके कॉन्टेंट में बदलाव होता है, तब Baज़ल, इस ऐक्शन के आउटपुट को अमान्य कर देता है.
अगर ऐसा नहीं है, तो target_path
का इस्तेमाल करने पर, declare_symlink()
के साथ output
के बारे में बताएं. इस मामले में, सिमलिंक target_path
पर ले जाता है. Basel, सिमलिंक को कभी ठीक नहीं करता है. इस ऐक्शन का आउटपुट अमान्य होता है. ऐसा सिर्फ़ तब होता है, जब सिमलिंक के टेक्स्ट कॉन्टेंट (यानी, readlink()
की वैल्यू) में बदलाव होता है. खास तौर पर, इसका इस्तेमाल डैंगलिंग सिमलिंक बनाने के लिए किया जा सकता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
output
|
फ़ाइल;
ज़रूरी है इस कार्रवाई का आउटपुट. |
target_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)
expand_template
का इस्तेमाल करें.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
output
|
फ़ाइल;
ज़रूरी है आउटपुट फ़ाइल. |
content
|
string; या Args;
ज़रूरी है फ़ाइल की सामग्री. यह एक स्ट्रिंग या actions.args() ऑब्जेक्ट हो सकता है.
|
is_executable
|
bool;
डिफ़ॉल्ट रूप से False है आउटपुट फ़ाइल एक्ज़ीक्यूटेबल होनी चाहिए या नहीं. |