मॉड्यूल एक्सटेंशन का कॉन्टेक्स्ट, जिसमें हेल्पर फ़ंक्शन और डिपेंडेंसी ग्राफ़ में काम के टैग की जानकारी शामिल होती है. मॉड्यूल एक्सटेंशन बनाने पर, आपको implementation
फ़ंक्शन के आर्ग्युमेंट के तौर पर module_ctx ऑब्जेक्ट मिलता है.
सदस्य
- डाउनलोड करें
- download_and_extract
- execute
- extension_metadata
- एक्सट्रैक्ट
- फ़ाइल
- getenv
- is_dev_dependency
- मॉड्यूल
- os
- पाथ
- read
- report_progress
- root_module_has_non_dev_dependency
- स्मार्टवॉच
- कौनसा
डाउनलोड करें
unknown module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)
success
वाला स्ट्रक्चर दिखाता है. यह एक फ़्लैग होता है, जो true
होता है, अगर डाउनलोड पूरा हो जाता है. अगर डाउनलोड पूरा हो जाता है, तो sha256
और integrity
फ़ील्ड के साथ फ़ाइल का हैश दिखाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
url
|
स्ट्रिंग या स्ट्रिंग की Iterable वैल्यू;
ज़रूरी है एक ही फ़ाइल का रेफ़रंस देने वाले मिरर यूआरएल की सूची. |
output
|
स्ट्रिंग; या लेबल; या पाथ;
डिफ़ॉल्ट रूप से '' होता है रिपॉज़िटरी डायरेक्ट्री के हिसाब से, आउटपुट फ़ाइल का पाथ. |
sha256
|
डिफ़ॉल्ट तौर पर, '' डाउनलोड की गई फ़ाइल का अनुमानित SHA-256 हैश. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. SHA-256 को हटाना सुरक्षा के लिहाज़ से जोखिम भरा है, क्योंकि रिमोट फ़ाइलों में बदलाव हो सकता है. इस फ़ील्ड को छोड़ने से आपका बिल्ड नॉन-हर्मेटिक हो जाएगा. डेवलपमेंट को आसान बनाना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट किया जाना चाहिए. अगर हैश दिया गया है, तो पहले रिपॉज़िटरी कैश में उस हैश वाली फ़ाइल की जांच की जाएगी. अगर फ़ाइल कैश में नहीं मिली, तो ही उसे डाउनलोड करने की कोशिश की जाएगी. डाउनलोड हो जाने के बाद, फ़ाइल को कैश मेमोरी में जोड़ दिया जाएगा. |
executable
|
डिफ़ॉल्ट रूप से False होता है बनाई गई फ़ाइल पर, 'चलाया जा सकता है' फ़्लैग सेट करें. यह डिफ़ॉल्ट रूप से गलत होता है. |
allow_fail
|
डिफ़ॉल्ट रूप से False पर सेट होता है अगर सेट किया जाता है, तो डाउनलोड न हो पाने की गड़बड़ी दिखाने के बजाय, रिटर्न वैल्यू में गड़बड़ी की जानकारी दें |
canonical_id
|
डिफ़ॉल्ट तौर पर '' है अगर यह सेट है, तो कैश मेमोरी में हिट होने की संख्या को उन मामलों तक सीमित करें जहां फ़ाइल को कैश मेमोरी में एक ही कैननिकल आईडी के साथ जोड़ा गया था. डिफ़ॉल्ट रूप से, कैश मेमोरी में डेटा सेव करने के लिए चेकसम( sha256 या integrity ) का इस्तेमाल किया जाता है.
|
auth
|
डिफ़ॉल्ट {} है यह एक वैकल्पिक डिक्शनरी है, जिसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी गई है. |
headers
|
डिफ़ॉल्ट {} है सभी यूआरएल के लिए http हेडर की जानकारी देने वाली वैकल्पिक डिक्शनरी. |
integrity
|
डिफ़ॉल्ट रूप से '' सब-सोर्स इंटिग्रिटी फ़ॉर्मैट में, डाउनलोड की गई फ़ाइल का अनुमानित चेकसम. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को हटाना सुरक्षा के लिहाज़ से जोखिम भरा है, क्योंकि रिमोट फ़ाइलों में बदलाव हो सकता है. इस फ़ील्ड को हटाने पर, आपका बिल्ड पूरी तरह से सुरक्षित नहीं रहेगा. डेवलपमेंट को आसान बनाने के लिए, इसे सेट करना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट करना चाहिए. अगर चेकसम दिया गया है, तो रिपॉज़िटरी के कैश मेमोरी में, दिए गए चेकसम वाली फ़ाइल की जांच की जाएगी. अगर कैश मेमोरी में फ़ाइल नहीं मिली, तो ही उसे डाउनलोड करने की कोशिश की जाएगी. डाउनलोड होने के बाद, फ़ाइल को कैश मेमोरी में जोड़ दिया जाएगा. |
block
|
True डिफ़ॉल्ट हैअगर कॉल को 'गलत है' पर सेट किया जाता है, तो कॉल तुरंत वापस आ जाता है. साथ ही, सामान्य रिटर्न वैल्यू के बजाय, यह सिर्फ़ एक तरीके वाले वेट() का इस्तेमाल करके टोकन दिखाता है. यह तरीके, डाउनलोड पूरा होने तक ब्लॉक हो जाता है और सामान्य रिटर्न वैल्यू दिखाता है या सामान्य वैल्यू दिखाता है. |
download_and_extract
struct module_ctx.download_and_extract(url, output='', sha256='', type='', stripPrefix='', allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', rename_files={})
success
वाला स्ट्रक्चर दिखाता है. यह एक फ़्लैग होता है, जो true
होता है, अगर डाउनलोड पूरा हो जाता है. अगर डाउनलोड पूरा हो जाता है, तो sha256
और integrity
फ़ील्ड के साथ फ़ाइल का हैश दिखाया जाता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
url
|
string; या string में बदलाव करने की सुविधा हो;
ज़रूरी है एक ही फ़ाइल का रेफ़रंस देने वाले डुप्लीकेट यूआरएल की सूची. |
output
|
स्ट्रिंग; या लेबल; या पाथ;
डिफ़ॉल्ट रूप से '' वह पाथ जहां संग्रह को अनपैक किया जाएगा. यह पाथ, रिपॉज़िटरी डायरेक्ट्री से लिया जाता है. |
sha256
|
डिफ़ॉल्ट तौर पर, '' डाउनलोड की गई फ़ाइल का अनुमानित SHA-256 हैश. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. SHA-256 को हटाना सुरक्षा के लिहाज़ से जोखिम भरा है, क्योंकि रिमोट फ़ाइलों में बदलाव हो सकता है. इस फ़ील्ड को हटाने पर, आपका बिल्ड पूरी तरह से सुरक्षित नहीं रहेगा. डेवलपमेंट को आसान बनाने के लिए, इसे सेट करना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट करना चाहिए. अगर हैश दिया गया है, तो पहले रिपॉज़िटरी कैश में उस हैश वाली फ़ाइल की जांच की जाएगी. अगर फ़ाइल कैश में नहीं मिली, तो ही उसे डाउनलोड करने की कोशिश की जाएगी. डाउनलोड होने के बाद, फ़ाइल को कैश मेमोरी में जोड़ दिया जाएगा. |
type
|
डिफ़ॉल्ट तौर पर, '' डाउनलोड की गई फ़ाइल का संग्रह टाइप. डिफ़ॉल्ट रूप से, यूआरएल के फ़ाइल एक्सटेंशन से यह तय होता है कि संग्रह किस तरह का है. अगर फ़ाइल का कोई एक्सटेंशन नहीं है, तो यहां "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar" या ".deb" में से कोई एक एक्सटेंशन डालें. |
stripPrefix
|
डिफ़ॉल्ट रूप से, '' होता है यह डायरेक्ट्री का प्रीफ़िक्स होता है, जिसे निकाली गई फ़ाइलों से हटाना होता है. कई संग्रह में एक शीर्ष-स्तरीय निर्देशिका होती है जिसमें संग्रह की सभी फ़ाइलें होती हैं. build_file में इस प्रीफ़िक्स को बार-बार बताने के बजाय, इस फ़ील्ड का इस्तेमाल करके, निकाली गई फ़ाइलों से इसे हटाया जा सकता है.
|
allow_fail
|
डिफ़ॉल्ट रूप से False पर सेट होता है अगर सेट किया जाता है, तो डाउनलोड न हो पाने की गड़बड़ी दिखाने के बजाय, रिटर्न वैल्यू में गड़बड़ी की जानकारी दें |
canonical_id
|
डिफ़ॉल्ट तौर पर '' है अगर यह सेट है, तो कैश मेमोरी में हिट होने की संख्या को उन मामलों तक सीमित करें जहां फ़ाइल को कैश मेमोरी में एक ही कैननिकल आईडी के साथ जोड़ा गया था. डिफ़ॉल्ट रूप से, कैश मेमोरी में डेटा सेव करने के लिए चेकसम( sha256 या integrity ) का इस्तेमाल किया जाता है.
|
auth
|
डिफ़ॉल्ट {} है यह एक वैकल्पिक डिक्शनरी है, जिसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी गई है. |
headers
|
डिफ़ॉल्ट {} है सभी यूआरएल के लिए http हेडर की जानकारी देने वाली वैकल्पिक डिक्शनरी. |
integrity
|
डिफ़ॉल्ट रूप से '' सब-सोर्स इंटिग्रिटी फ़ॉर्मैट में, डाउनलोड की गई फ़ाइल का अनुमानित चेकसम. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को हटाने से सुरक्षा जोखिम हो सकता है, क्योंकि रिमोट फ़ाइलें बदल सकती हैं. इस फ़ील्ड को हटाने पर, आपका बिल्ड पूरी तरह से सुरक्षित नहीं रहेगा. डेवलपमेंट को आसान बनाने के लिए, इसे सेट करना ज़रूरी नहीं है. हालांकि, इसे शिपिंग से पहले सेट करना चाहिए. अगर यह दिया जाता है, तो सबसे पहले दिए गए चेकसम वाली फ़ाइल के लिए रिपॉज़िटरी कैश मेमोरी की जांच की जाएगी. कैश मेमोरी में फ़ाइल न मिलने पर ही डाउनलोड की कोशिश की जाएगी. डाउनलोड होने के बाद, फ़ाइल को कैश मेमोरी में जोड़ दिया जाएगा. |
rename_files
|
डिफ़ॉल्ट रूप से {} एक वैकल्पिक डिक्शनरी, जिसमें एक्सट्रैक्ट करने के दौरान फ़ाइलों के नाम बदलने के बारे में बताया गया है. किसी कीवर्ड से पूरी तरह मेल खाने वाले नाम वाली संग्रहित एंट्री का नाम, डायरेक्ट्री के प्रीफ़िक्स में बदलाव करने से पहले, वैल्यू पर बदल दिया जाएगा. इसका इस्तेमाल उन संग्रहों को निकालने के लिए किया जा सकता है जिनमें यूनिकोड फ़ाइल नाम नहीं हैं या जिनमें ऐसी फ़ाइलें हैं जो केस-इनसेंसिटिव फ़ाइल सिस्टम पर एक ही पाथ में निकाली जाएंगी. |
execute
exec_result module_ctx.execute(arguments, timeout=600, environment={}, quiet=True, working_directory="")
timeout
सेकंड लग सकते हैं. डिफ़ॉल्ट रूप से, यह समय 600 सेकंड होता है. यह तरीका, exec_result
स्ट्रक्चर दिखाता है, जिसमें निर्देश का आउटपुट होता है. environment
मैप का इस्तेमाल, प्रोसेस में पास किए जाने वाले कुछ एनवायरमेंट वैरिएबल को बदलने के लिए किया जा सकता है.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
arguments
|
ज़रूरी आर्ग्युमेंट की सूची, पहला एलिमेंट उस प्रोग्राम का पाथ होना चाहिए जिसे चलाना है. |
timeout
|
डिफ़ॉल्ट रूप से 600 सेकंड में, कमांड की ज़्यादा से ज़्यादा अवधि (डिफ़ॉल्ट रूप से 600 सेकंड). |
environment
|
डिफ़ॉल्ट रूप से {} है प्रोसेस में पास करने के लिए, कुछ एनवायरमेंट वैरिएबल को सेट करने के लिए ज़रूरी है. |
quiet
|
डिफ़ॉल्ट वैल्यू True हैअगर stdout और stderr को टर्मिनल पर प्रिंट किया जाना चाहिए. |
working_directory
|
डिफ़ॉल्ट रूप से, "" कमांड को लागू करने के लिए काम करने वाली डायरेक्ट्री. यह रिपॉज़िटरी रूट के हिसाब से या एब्सोलूट हो सकता है. |
extension_metadata
extension_metadata module_ctx.extension_metadata(root_module_direct_deps=None, root_module_direct_dev_deps=None, reproducible=False)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
root_module_direct_deps
|
strings; या string; या None का सीक्वेंस;
डिफ़ॉल्ट None हैऐसे डेटा स्टोर करने की जगहों के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल के लिए डायरेक्ट डिपेंडेंसी मानता है. अगर रूट मॉड्यूल में डेटा स्टोर करने की अतिरिक्त जगहें इंपोर्ट की जाती हैं या use_repo के ज़रिए ये सभी डेटा स्टोर करने की जगह इंपोर्ट नहीं की जाती हैं, तो एक्सटेंशन का आकलन होने पर Baज़ल, डेटा स्टोर करने की जगह को एक चेतावनी प्रिंट कर देगा. इसमें उपयोगकर्ता को bazel mod tidy चलाने के लिए निर्देश दिया जाएगा, ताकि वह use_repo कॉल को अपने-आप ठीक कर सके. अगर अगर
|
root_module_direct_dev_deps
|
स्ट्रिंग या स्ट्रिंग या None का क्रम;
डिफ़ॉल्ट तौर पर None उन रिपॉज़िटरी के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल की सीधे तौर पर डिवेलपर डिपेंडेंसी मानता है. अगर रूट मॉड्यूल अतिरिक्त रिपॉज़िटरी इंपोर्ट करता है या use_extension(..., dev_dependency = True) के साथ बनाए गए एक्सटेंशन प्रॉक्सी पर use_repo के ज़रिए ये सभी डेटा स्टोर करने की जगह इंपोर्ट नहीं करता है, तो एक्सटेंशन का आकलन होने पर Basel एक चेतावनी प्रिंट कर देगा. साथ ही, उपयोगकर्ता को use_repo कॉल को अपने-आप ठीक करने के लिए bazel mod tidy चलाने के लिए निर्देश देगा. अगर
|
reproducible
|
bool;
डिफ़ॉल्ट तौर पर False होता है इससे पता चलता है कि इस मॉड्यूल एक्सटेंशन से, पूरी तरह से दोबारा बनाने की सुविधा मिलती है. इसलिए, इसे लॉकफ़ाइल में सेव नहीं किया जाना चाहिए. |
एक्सट्रैक्ट
None
module_ctx.extract(archive, output='', stripPrefix='', *, rename_files={}, watch_archive='auto')
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
archive
|
स्ट्रिंग; या लेबल; या पाथ;
ज़रूरी है उस संग्रह का पाथ जिसे अनपैक किया जाएगा. यह पाथ, रिपॉज़िटरी डायरेक्ट्री से जुड़ा होना चाहिए. |
output
|
स्ट्रिंग; या लेबल; या पाथ;
डिफ़ॉल्ट रूप से '' वह पाथ जहां संग्रह को अनपैक किया जाएगा. यह पाथ, रिपॉज़िटरी डायरेक्ट्री से लिया जाता है. |
stripPrefix
|
'' एक डायरेक्ट्री प्रीफ़िक्स है, जो एक्सट्रैक्ट की गई फ़ाइलों से अलग करता है. कई संग्रहों में एक टॉप-लेवल डायरेक्ट्री होती है, जिसमें संग्रह की सभी फ़ाइलें होती हैं. build_file में इस प्रीफ़िक्स को बार-बार बताने के बजाय, इस फ़ील्ड का इस्तेमाल करके, निकाली गई फ़ाइलों से इसे हटाया जा सकता है.
|
rename_files
|
डिफ़ॉल्ट रूप से {} एक वैकल्पिक डिक्शनरी, जिसमें एक्सट्रैक्ट करने के दौरान फ़ाइलों के नाम बदलने के बारे में बताया गया है. किसी कुंजी से पूरी तरह मेल खाने वाले नामों वाली संग्रह एंट्री का नाम बदलकर, वैल्यू के तौर पर सेट कर दिया जाएगा. ऐसा, डायरेक्ट्री प्रीफ़िक्स अडजस्टमेंट से पहले किया जाएगा. इसका इस्तेमाल उन संग्रहों को निकालने के लिए किया जा सकता है जिनमें यूनिकोड फ़ाइल नाम नहीं हैं या जिनमें ऐसी फ़ाइलें हैं जो केस-इनसेंसिटिव फ़ाइल सिस्टम पर एक ही पाथ में निकाली जाएंगी. |
watch_archive
|
डिफ़ॉल्ट रूप से यह 'auto' सेट होता है कि संग्रहित फ़ाइल को देखना है या नहीं. यह स्ट्रिंग 'हां', 'नहीं' या 'ऑटो' स्ट्रिंग हो सकती है. 'हां' पास करना watch() विधि को तुरंत शुरू करने के समान है; 'नहीं' में पास करना फ़ाइल को देखने का प्रयास नहीं करता; 'ऑटो' पास करना फ़ाइल को देखने का केवल तभी प्रयास करेगा, जब ऐसा करना कानूनी हो (ज़्यादा जानकारी के लिए watch() दस्तावेज़ देखें.
|
फ़ाइल
None
module_ctx.file(path, content='', executable=True, legacy_utf8=True)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
path
|
string; या Label; या path;
ज़रूरी है फ़ाइल का पाथ, जिसे रिपॉज़िटरी डायरेक्ट्री से जोड़ा जाना है. |
content
|
फ़ाइल का कॉन्टेंट '' डिफ़ॉल्ट पर सेट होता है. यह डिफ़ॉल्ट रूप से खाली होता है. |
executable
|
डिफ़ॉल्ट तौर पर True है बनाई गई फ़ाइल पर, 'एक्सीक्यूटेबल' फ़्लैग सेट करें. यह डिफ़ॉल्ट रूप से 'सही' पर सेट होता है. |
legacy_utf8
|
डिफ़ॉल्ट True फ़ाइल के कॉन्टेंट को UTF-8 में बदलें. यह डिफ़ॉल्ट रूप से 'सही' पर सेट होता है. आने वाले वर्शन में, डिफ़ॉल्ट पैरामीटर बदल जाएगा और यह पैरामीटर हट जाएगा. |
getenv
string module_ctx.getenv(name, default=None)
name
मौजूद है, तो उसकी वैल्यू को स्ट्रिंग के तौर पर दिखाता है. अगर वैरिएबल मौजूद नहीं है, तो default
दिखाता है.धीरे-धीरे डेटा इकट्ठा करते समय, name
नाम वाले वैरिएबल की वैल्यू में कोई बदलाव करने पर, इस रिपॉज़िटरी को फिर से फ़ेच किया जाएगा.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
name
|
string;
ज़रूरी है एनवायरमेंट वैरिएबल का नाम |
default
|
string या None ;
डिफ़ॉल्ट तौर पर None अगर `name` नहीं मिलता है, तो डिफ़ॉल्ट वैल्यू दिखाने के लिए |
None
को वापस किया जा सकता है.
is_dev_dependency
bool module_ctx.is_dev_dependency(tag)
devDependency = True
के साथ use_extension कॉल के नतीजे में तय हुआ था या नहीं.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
tag
|
basel_module_tag;
ज़रूरी bazel_module.tags से मिला टैग. |
मॉड्यूल
list module_ctx.modules
os
repository_os module_ctx.os
पाथ
path module_ctx.path(path)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
path
|
स्ट्रिंग; या लेबल; या पाथ;
ज़रूरी है वह स्ट्रिंग, लेबल या पाथ जिससे पाथ बनाना है |
पढ़ा गया
string module_ctx.read(path, *, watch='auto')
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
path
|
स्ट्रिंग; या लेबल; या पाथ;
ज़रूरी है उस फ़ाइल का पाथ जिसे पढ़ना है. |
watch
|
डिफ़ॉल्ट रूप से, 'auto' फ़ाइल को देखना है या नहीं. यह 'yes', 'no' या 'auto' स्ट्रिंग हो सकती है. 'हां' पास करना watch() विधि को तुरंत शुरू करने के समान है; 'नहीं' में पास करना फ़ाइल को देखने का प्रयास नहीं करता; 'ऑटो' पास करना फ़ाइल को देखने का केवल तभी प्रयास करेगा, जब ऐसा करना कानूनी हो (ज़्यादा जानकारी के लिए watch() दस्तावेज़ देखें.
|
report_progress
None
module_ctx.report_progress(status='')
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
status
|
स्ट्रिंग;
डिफ़ॉल्ट तौर पर '' है फ़ेच की प्रोग्रेस की मौजूदा स्थिति बताने वाली स्ट्रिंग |
root_module_has_non_dev_dependency
bool module_ctx.root_module_has_non_dev_dependency
देखें
None
module_ctx.watch(path)
"बदलाव" में, फ़ाइल के कॉन्टेंट में किए गए बदलाव शामिल हैं. ऐसा तब होता है, जब पाथ कोई फ़ाइल हो. अगर पाथ पहले फ़ाइल था और अब डायरेक्ट्री है या इसके उलट, तो भी "बदलाव" में शामिल किया जाता है. साथ ही, अगर पाथ मौजूद है या नहीं, तो भी "बदलाव" में शामिल किया जाता है. ध्यान दें कि अगर पाथ कोई डायरेक्ट्री है, तो इसमें डायरेक्ट्री में मौजूद किसी भी फ़ाइल में किए गए बदलाव शामिल नहीं होते. इसके लिए, path.readdir()
का इस्तेमाल करें.
ध्यान दें कि फ़ेच किए जा रहे मौजूदा रिपॉज़िटरी या मौजूदा मॉड्यूल एक्सटेंशन की वर्किंग डायरेक्ट्री में मौजूद पाथ देखने की कोशिश करने पर, गड़बड़ी का मैसेज दिखेगा. अगर कोई मॉड्यूल एक्सटेंशन, मौजूदा Bazel फ़ाइल फ़ोल्डर के बाहर का कोई पाथ देखने की कोशिश करता है, तो भी गड़बड़ी का मैसेज दिखेगा.
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
path
|
स्ट्रिंग; या लेबल; या पाथ;
ज़रूरी देखने के लिए फ़ाइल का पाथ. |
कौनसा
path module_ctx.which(program)
पैरामीटर
पैरामीटर | ब्यौरा |
---|---|
program
|
ज़रूरी पाथ में ढूंढने के लिए प्रोग्राम. |
None
को वापस किया जा सकता है.