यह एक ऐसा प्रोवाइडर है जो टारगेट की डायरेक्ट और ट्रांज़िटिव फ़ाइलों के बारे में सामान्य जानकारी देता है. हर नियम के टाइप में यह प्रोवाइडर होता है. भले ही, नियम को लागू करने वाले फ़ंक्शन से इसे साफ़ तौर पर रिटर्न न किया गया हो. हर DefaultInfo
इंस्टेंस में ये फ़ील्ड होते हैं:
files
files_to_run
data_runfiles
default_runfiles
सदस्य
DefaultInfo
DefaultInfo DefaultInfo(files=None, runfiles=None, data_runfiles=None, default_runfiles=None, executable=None)
DefaultInfo
कंस्ट्रक्टर.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
files
|
depset; या None ;
डिफ़ॉल्ट रूप से None होता है यह File ऑब्जेक्ट का depset होता है. यह उन डिफ़ॉल्ट आउटपुट को दिखाता है जिन्हें तब बनाया जाता है, जब इस टारगेट को Bazel कमांड लाइन पर तय किया जाता है. डिफ़ॉल्ट रूप से, यह पहले से तय किए गए सभी आउटपुट होते हैं.
|
runfiles
|
runfiles; या None ;
डिफ़ॉल्ट रूप से None होता है runfiles डिस्क्रिप्टर, उन फ़ाइलों के बारे में बताता है जिनकी ज़रूरत इस टारगेट को तब पड़ती है, जब इसे run कमांड के ज़रिए या टूल की डिपेंडेंसी के तौर पर चलाया जाता है.
|
data_runfiles
|
runfiles; या None ;
डिफ़ॉल्ट रूप से None होता है हमारा सुझाव है कि आप इस पैरामीटर का इस्तेमाल न करें. इसके बारे में ज़्यादा जानने के लिए, "runfiles की ऐसी सुविधाएं जिनका इस्तेमाल नहीं करना चाहिए" लेख पढ़ें रनफ़ाइल डिस्क्रिप्टर, उन रनफ़ाइलों के बारे में बताता है जिनकी ज़रूरत इस टारगेट को तब होती है, जब यहdata एट्रिब्यूट के ज़रिए डिपेंडेंसी होती है.
|
default_runfiles
|
runfiles; या None ;
डिफ़ॉल्ट रूप से None होता है हमारा सुझाव है कि आप इस पैरामीटर का इस्तेमाल न करें. इसके बारे में ज़्यादा जानने के लिए, "runfiles की ऐसी सुविधाएं जिनका इस्तेमाल नहीं करना चाहिए" लेख पढ़ें runfiles descriptor describing the runfiles this target needs to run when it is a dependency via any attribute other than thedata attribute.
|
executable
|
File; या None ;
डिफ़ॉल्ट तौर पर None होता है अगर इस नियम को executable या test के तौर पर मार्क किया गया है, तो यह File ऑब्जेक्ट है. यह उस फ़ाइल को दिखाता है जिसे टारगेट को चलाने के लिए एक्ज़ीक्यूट किया जाना चाहिए. डिफ़ॉल्ट रूप से, यह पहले से तय किया गया आउटपुट ctx.outputs.executable होता है.
|
data_runfiles
runfiles DefaultInfo.data_runfiles
data
डिपेंडेंसी एट्रिब्यूट के तौर पर चलाया जाता है. ज़्यादातर मामलों में, default_runfiles
पैरामीटर का इस्तेमाल करें. ज़्यादा जानकारी के लिए, "runfiles की ऐसी सुविधाएं जिनका इस्तेमाल नहीं करना चाहिए" लेख पढ़ें.
इसमें None
मिल सकता है.
default_runfiles
runfiles DefaultInfo.default_runfiles
run
कमांड के ज़रिए या टूल डिपेंडेंसी के तौर पर चलाया जाता है.
इसमें None
मिल सकता है.
फ़ाइलें
depset DefaultInfo.files
depset
, File
ऑब्जेक्ट का होता है. ये ऑब्जेक्ट, डिफ़ॉल्ट आउटपुट को दिखाते हैं. इन्हें तब बनाया जाता है, जब इस टारगेट को Bazel कमांड लाइन पर तय किया जाता है. डिफ़ॉल्ट रूप से, यह पहले से तय किए गए सभी आउटपुट होते हैं.
इसमें None
मिल सकता है.
files_to_run
FilesToRunProvider DefaultInfo.files_to_run
FilesToRunProvider
ऑब्जेक्ट में, टारगेट के एक्ज़ीक्यूटेबल और रनफ़ाइल के बारे में जानकारी होती है.
इसमें None
मिल सकता है.
to_json
string DefaultInfo.to_json()
---incompatible_struct_has_no_methods
के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपके कोड, इस जल्द ही हटाए जाने वाले फ़ैसले से कोई दिक्कत नहीं होगी. struct पैरामीटर से JSON स्ट्रिंग बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्चर एलिमेंट (रिकर्सिव तरीके से) स्ट्रिंग, पूर्णांक, बूलियन, अन्य स्ट्रक्चर, इन टाइप की सूची या स्ट्रिंग कुंजियों और इन टाइप की वैल्यू वाली डिक्शनरी हों. स्ट्रिंग में मौजूद कोट और नई लाइनों को एस्केप किया जाता है. उदाहरण:
struct(key=123).to_json() # {"key":123} struct(key=True).to_json() # {"key":true} struct(key=[1, 2, 3]).to_json() # {"key":[1,2,3]} struct(key='text').to_json() # {"key":"text"} struct(key=struct(inner_key='text')).to_json() # {"key":{"inner_key":"text"}} struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json() # {"key":[{"inner_key":1},{"inner_key":2}]} struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json() # {"key":{"inner_key":{"inner_inner_key":"text"}}}
अब काम नहीं करता: इसके बजाय, json.encode(x) या json.encode_indent(x) का इस्तेमाल करें. ये फ़ंक्शन, स्ट्रक्चर के अलावा अन्य वैल्यू के लिए काम करते हैं और स्ट्रक्चर फ़ील्ड नेमस्पेस को खराब नहीं करते.
to_proto
string DefaultInfo.to_proto()
---incompatible_struct_has_no_methods
के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपके कोड, इस जल्द ही हटाए जाने वाले फ़ैसले से कोई दिक्कत नहीं होगी. यह struct पैरामीटर से एक टेक्स्ट मैसेज बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्चर एलिमेंट (रिकर्सिव) स्ट्रिंग, पूर्णांक, बूलियन, अन्य स्ट्रक्चर या डिक्शनरी या इन टाइप की सूचियां हों. स्ट्रिंग में मौजूद कोट और नई लाइनों को एस्केप किया जाता है. स्ट्रक्ट कुंजियों को क्रम से लगाया जाता है. उदाहरण:
struct(key=123).to_proto() # key: 123 struct(key=True).to_proto() # key: true struct(key=[1, 2, 3]).to_proto() # key: 1 # key: 2 # key: 3 struct(key='text').to_proto() # key: "text" struct(key=struct(inner_key='text')).to_proto() # key { # inner_key: "text" # } struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto() # key { # inner_key: 1 # } # key { # inner_key: 2 # } struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto() # key { # inner_key { # inner_inner_key: "text" # } # } struct(foo={4: 3, 2: 1}).to_proto() # foo: { # key: 4 # value: 3 # } # foo: { # key: 2 # value: 1 # }
अब यह तरीका काम नहीं करता: इसके बजाय, proto.encode_text(x) का इस्तेमाल करें.