मॉड्यूल_टैब

मॉड्यूल एक्सटेंशन का कॉन्टेक्स्ट, जिसमें हेल्पर फ़ंक्शन और डिपेंडेंसी ग्राफ़ में मौजूद काम के टैग के बारे में जानकारी होती है. मॉड्यूल एक्सटेंशन बनाते समय, आपको implementation फ़ंक्शन के आर्ग्युमेंट के तौर पर module_ctx ऑब्जेक्ट मिलता है.

सदस्य

डाउनलोड करें

unknown module_ctx.download(url, output='', sha256='', executable=False, allow_fail=False, canonical_id='', auth={}, headers={}, *, integrity='', block=True)

यह फ़ंक्शन, दिए गए यूआरएल के लिए फ़ाइल को आउटपुट पाथ पर डाउनलोड करता है. साथ ही, एक स्ट्रक्चर दिखाता है. इसमें success शामिल होता है. यह एक फ़्लैग है. अगर डाउनलोड पूरा हो जाता है, तो इसकी वैल्यू true होती है. अगर डाउनलोड पूरा हो जाता है, तो इसमें फ़ाइल का हैश भी शामिल होता है. इसमें sha256 और integrity फ़ील्ड होते हैं.

पैरामीटर

पैरामीटर ब्यौरा
url स्ट्रिंग; या स्ट्रिंग का इटरेबल; ज़रूरी है
एक ही फ़ाइल का रेफ़रंस देने वाले मिरर यूआरएल की सूची.
output string; या Label; या path; डिफ़ॉल्ट वैल्यू ''
है रिपॉज़िटरी डायरेक्ट्री के हिसाब से आउटपुट फ़ाइल का पाथ.
sha256 डिफ़ॉल्ट वैल्यू ''
है डाउनलोड की गई फ़ाइल का SHA-256 हैश. यह डाउनलोड की गई फ़ाइल के SHA-256 हैश से मेल खाना चाहिए. SHA-256 को शामिल न करने से सुरक्षा से जुड़ी समस्या हो सकती है, क्योंकि रिमोट फ़ाइलें बदल सकती हैं. इस फ़ील्ड को शामिल न करने से, आपका बिल्ड नॉन-हर्मेटिक हो जाएगा. इससे डेवलपमेंट को आसान बनाने में मदद मिलती है. हालांकि, शिपिंग से पहले इसे सेट करना ज़रूरी है.
executable डिफ़ॉल्ट वैल्यू False
है इससे बनाई गई फ़ाइल पर एक्ज़ीक्यूटेबल फ़्लैग सेट होता है. डिफ़ॉल्ट रूप से, इसकी वैल्यू false होती है.
allow_fail डिफ़ॉल्ट रूप से False
पर सेट होता है अगर इसे सेट किया जाता है, तो डाउनलोड नहीं हो पाने की वजह से गड़बड़ी दिखाने के बजाय, रिटर्न वैल्यू में गड़बड़ी दिखाएं
canonical_id डिफ़ॉल्ट वैल्यू '' है
अगर यह विकल्प सेट किया जाता है, तो कैश मेमोरी से फ़ाइलें सिर्फ़ उन मामलों में मिलेंगी जहां फ़ाइल को एक ही कैननिकल आईडी के साथ कैश मेमोरी में जोड़ा गया था
auth डिफ़ॉल्ट वैल्यू {}
है यह एक वैकल्पिक डिक्शनरी है. इसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी जाती है.
headers डिफ़ॉल्ट तौर पर {}
होता है यह एक वैकल्पिक डिक्शनरी है. इसमें सभी यूआरएल के लिए एचटीटीपी हेडर की जानकारी दी जाती है.
integrity डिफ़ॉल्ट वैल्यू ''
है डाउनलोड की गई फ़ाइल का, सबरिसॉर्स इंटिग्रिटी फ़ॉर्मैट में अनुमानित चेकसम. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को शामिल न करने से सुरक्षा से जुड़ी समस्या हो सकती है, क्योंकि रिमोट फ़ाइलें बदल सकती हैं. इस फ़ील्ड को शामिल न करने से, आपका बिल्ड नॉन-हर्मेटिक हो जाएगा. इससे डेवलपमेंट को आसान बनाने में मदद मिलती है. हालांकि, शिपिंग से पहले इसे सेट करना ज़रूरी है.
block डिफ़ॉल्ट वैल्यू True
है अगर इसे false पर सेट किया जाता है, तो कॉल तुरंत वापस आ जाता है. साथ ही, सामान्य रिटर्न वैल्यू के बजाय, यह एक टोकन दिखाता है. इसमें एक ही तरीका होता है, wait(). यह तब तक ब्लॉक रहता है, जब तक डाउनलोड पूरा नहीं हो जाता. इसके बाद, यह सामान्य रिटर्न वैल्यू दिखाता है या सामान्य तरीके से थ्रो करता है.

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 स्ट्रिंग; या स्ट्रिंग का इटरेबल; ज़रूरी है
एक ही फ़ाइल का रेफ़रंस देने वाले मिरर यूआरएल की सूची.
output string; या Label; या path; डिफ़ॉल्ट वैल्यू ''
है यह उस डायरेक्ट्री का पाथ है जहां संग्रह को अनपैक किया जाएगा. यह पाथ, डेटाबेस डायरेक्ट्री के हिसाब से होता है.
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 डिफ़ॉल्ट वैल्यू '' है
अगर यह विकल्प सेट किया जाता है, तो कैश मेमोरी से फ़ाइलें सिर्फ़ उन मामलों में मिलेंगी जहां फ़ाइल को एक ही कैननिकल आईडी के साथ कैश मेमोरी में जोड़ा गया था
auth डिफ़ॉल्ट वैल्यू {}
है यह एक वैकल्पिक डिक्शनरी है. इसमें कुछ यूआरएल के लिए पुष्टि करने की जानकारी दी जाती है.
headers डिफ़ॉल्ट तौर पर {}
होता है यह एक वैकल्पिक डिक्शनरी है. इसमें सभी यूआरएल के लिए एचटीटीपी हेडर की जानकारी दी जाती है.
integrity डिफ़ॉल्ट वैल्यू ''
है डाउनलोड की गई फ़ाइल का, सबरिसॉर्स इंटिग्रिटी फ़ॉर्मैट में अनुमानित चेकसम. यह डाउनलोड की गई फ़ाइल के चेकसम से मेल खाना चाहिए. चेकसम को शामिल न करने से सुरक्षा से जुड़ी समस्या हो सकती है, क्योंकि रिमोट फ़ाइलें बदल सकती हैं. इस फ़ील्ड को शामिल न करने से, आपका बिल्ड नॉन-हर्मेटिक हो जाएगा. इससे डेवलपमेंट को आसान बनाने में मदद मिलती है. हालांकि, शिपिंग से पहले इसे सेट करना ज़रूरी है.
rename_files डिफ़ॉल्ट तौर पर {}
होता है यह एक वैकल्पिक डिक्शनरी है. इसमें उन फ़ाइलों के बारे में बताया जाता है जिनका नाम एक्सट्रैक्शन के दौरान बदलना है. जिन एंट्री के नाम किसी कुंजी से पूरी तरह मेल खाते हैं उन्हें वैल्यू के तौर पर फिर से नाम दिया जाएगा. ऐसा डायरेक्ट्री के प्रीफ़िक्स में किसी भी तरह के बदलाव से पहले किया जाएगा. इसका इस्तेमाल उन संग्रहों को निकालने के लिए किया जा सकता है जिनमें नॉन-यूनिकोड फ़ाइलनाम होते हैं या जिनमें ऐसी फ़ाइलें होती हैं जिन्हें केस-इनसेंसिटिव फ़ाइल सिस्टम पर एक ही पाथ पर निकाला जाता है.

लागू करना

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)

यह एक ओपेक ऑब्जेक्ट बनाता है. इसे मॉड्यूल एक्सटेंशन के लागू करने वाले फ़ंक्शन से वापस लाया जा सकता है. इससे Bazel को एक्सटेंशन से जनरेट की गई रिपॉज़िटरी के बारे में मेटाडेटा मिलता है.

पैरामीटर

पैरामीटर ब्यौरा
root_module_direct_deps स्ट्रिंग का sequence; या string; या None; डिफ़ॉल्ट वैल्यू None
है उन रिपॉज़िटरी के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल की डायरेक्ट डिपेंडेंसी मानता है. अगर रूट मॉड्यूल, अतिरिक्त रिपॉज़िटरी इंपोर्ट करता है या use_repo के ज़रिए इन सभी रिपॉज़िटरी को इंपोर्ट नहीं करता है, तो एक्सटेंशन का आकलन करते समय Bazel एक चेतावनी दिखाएगा. इसमें उपयोगकर्ता को bazel mod tidy चलाने के लिए कहा जाएगा, ताकि use_repo कॉल अपने-आप ठीक हो जाएं.

अगर root_module_direct_deps में से कोई एक भी मौजूद है, तो एक्सटेंशन का आकलन करते समय, चेतावनी और फ़िक्सअप कमांड प्रिंट की जाएगी.

अगर root_module_direct_deps और root_module_direct_dev_deps में से किसी एक की वैल्यू दी गई है, तो दूसरे की वैल्यू भी देनी होगी. इन दोनों पैरामीटर से तय की गई सूचियां अलग-अलग होनी चाहिए.

root_module_direct_deps और root_module_direct_dev_deps में से सिर्फ़ एक को खास वैल्यू "all" पर सेट किया जा सकता है. इसे इस तरह से माना जाता है कि एक्सटेंशन से जनरेट की गई सभी रिपॉज़िटरी के नामों वाली सूची को वैल्यू के तौर पर तय किया गया है.

root_module_direct_dev_deps sequence of strings; or string; or None; डिफ़ॉल्ट वैल्यू None
है उन रिपॉज़िटरी के नाम जिन्हें एक्सटेंशन, रूट मॉड्यूल की डायरेक्ट डेवलपमेंट डिपेंडेंसी मानता है. अगर रूट मॉड्यूल, अतिरिक्त रिपॉज़िटरी इंपोर्ट करता है या use_extension(..., dev_dependency = True) की मदद से बनाई गई एक्सटेंशन प्रॉक्सी पर use_repo के ज़रिए इन सभी रिपॉज़िटरी को इंपोर्ट नहीं करता है, तो एक्सटेंशन का आकलन करते समय Bazel एक चेतावनी दिखाएगा. इसमें उपयोगकर्ता को bazel mod tidy चलाने के लिए कहा जाएगा, ताकि use_repo कॉल अपने-आप ठीक हो जाएं.

अगर root_module_direct_deps और root_module_direct_dev_deps में से किसी एक की वैल्यू दी गई है, तो दूसरे की वैल्यू भी देनी होगी. इन दोनों पैरामीटर से तय की गई सूचियां अलग-अलग होनी चाहिए.

root_module_direct_deps और root_module_direct_dev_deps में से सिर्फ़ एक को खास वैल्यू "all" पर सेट किया जा सकता है. इसे इस तरह से माना जाता है कि एक्सटेंशन से जनरेट की गई सभी रिपॉज़िटरी के नामों वाली सूची को वैल्यू के तौर पर तय किया गया है.

reproducible bool; डिफ़ॉल्ट रूप से False
होता है इससे पता चलता है कि यह मॉड्यूल एक्सटेंशन, पूरी तरह से रिप्रोड्यूस किया जा सकता है. इसलिए, इसे लॉकफ़ाइल में सेव नहीं किया जाना चाहिए.

फ़ाइल

None module_ctx.file(path, content='', executable=True, legacy_utf8=True)

यह कमांड, रिपॉज़िटरी डायरेक्ट्री में दिए गए कॉन्टेंट के साथ एक फ़ाइल जनरेट करती है.

पैरामीटर

पैरामीटर ब्यौरा
path string; या Label; या path; required
repository directory के हिसाब से, बनाई जाने वाली फ़ाइल का पाथ.
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 bazel_module_tag; required
A tag obtained from bazel_module.tags.

मॉड्यूल

list module_ctx.modules

बाहरी डिपेंडेंसी ग्राफ़ में मौजूद उन सभी Bazel मॉड्यूल की सूची जो इस मॉड्यूल एक्सटेंशन का इस्तेमाल करते हैं. इनमें से हर मॉड्यूल, bazel_module ऑब्जेक्ट होता है. यह ऑब्जेक्ट, इस एक्सटेंशन के लिए तय किए गए सभी टैग दिखाता है. इस डिक्शनरी के इटरेशन का क्रम, रूट मॉड्यूल से शुरू होने वाले ब्रेड्थ-फ़र्स्ट सर्च के क्रम के जैसा ही होता है.

os

repository_os module_ctx.os

सिस्टम से जानकारी ऐक्सेस करने के लिए एक स्ट्रक्चर.

पाथ

path module_ctx.path(path)

यह फ़ंक्शन, स्ट्रिंग, लेबल या पाथ से पाथ दिखाता है. अगर पाथ रिलेटिव है, तो इसे रिपॉज़िटरी डायरेक्ट्री के हिसाब से हल किया जाएगा. अगर पाथ कोई लेबल है, तो यह उससे जुड़ी फ़ाइल के पाथ पर रीडायरेक्ट हो जाएगा. ध्यान दें कि रिमोट रिपॉज़िटरी, विश्लेषण के दौरान लागू की जाती हैं. इसलिए, ये टारगेट नतीजे पर निर्भर नहीं हो सकतीं. लेबल को जनरेट नहीं की गई फ़ाइल की ओर ले जाना चाहिए. अगर पाथ कोई पाथ है, तो यह उस पाथ को वैसे ही दिखाएगा.

पैरामीटर

पैरामीटर ब्यौरा
path string; या Label; या path; ज़रूरी है
स्ट्रिंग, लेबल या पाथ जिससे पाथ बनाना है

पढ़ा गया

string module_ctx.read(path, *, watch='auto')

यह अनुमति मिलने पर, फ़ाइल सिस्टम में मौजूद किसी फ़ाइल के कॉन्टेंट को पढ़ा जा सकता है.

पैरामीटर

पैरामीटर ब्यौरा
path string; या Label; या path; ज़रूरी है
वह पाथ जहां से फ़ाइल को पढ़ा जाना है.
watch डिफ़ॉल्ट वैल्यू 'auto'
है यह तय करती है कि फ़ाइल को वॉच करना है या नहीं. यह स्ट्रिंग 'yes', 'no' या 'auto' हो सकती है. 'yes' पास करने का मतलब है कि watch() तरीके को तुरंत लागू करना; 'no' पास करने का मतलब है कि फ़ाइल को देखने की कोशिश नहीं की जाएगी; 'auto' पास करने का मतलब है कि फ़ाइल को सिर्फ़ तब देखने की कोशिश की जाएगी, जब ऐसा करना कानूनी हो (ज़्यादा जानकारी के लिए, watch() दस्तावेज़ देखें.

report_progress

None module_ctx.report_progress(status='')

यह रिपॉज़िटरी या मॉड्यूल एक्सटेंशन फ़ेच करने की प्रोसेस का स्टेटस अपडेट करता है

पैरामीटर

पैरामीटर ब्यौरा
status string; डिफ़ॉल्ट वैल्यू ''
है स्ट्रिंग, जो फ़ेच करने की प्रोसेस के मौजूदा स्टेटस के बारे में बताती है

root_module_has_non_dev_dependency

bool module_ctx.root_module_has_non_dev_dependency

रूट मॉड्यूल, इस एक्सटेंशन का इस्तेमाल नॉन-डेव डिपेंडेंसी के तौर पर करता है या नहीं.

देखें

None module_ctx.watch(path)

Bazel को दिए गए पाथ में हुए बदलावों को ट्रैक करने के लिए कहता है. भले ही, वह पाथ मौजूद हो या न हो या वह फ़ाइल हो या डायरेक्ट्री. फ़ाइल या डायरेक्ट्री में कोई भी बदलाव करने पर, यह रिपॉज़िटरी या मॉड्यूल एक्सटेंशन अमान्य हो जाएगा. साथ ही, अगली बार इसे फिर से फ़ेच किया जाएगा या इसका फिर से आकलन किया जाएगा.

"बदलाव" में ये बदलाव शामिल हैं: फ़ाइल के कॉन्टेंट में बदलाव (अगर पाथ कोई फ़ाइल है); अगर पाथ पहले कोई फ़ाइल था, लेकिन अब कोई डायरेक्ट्री है या इसके उलट; और अगर पाथ मौजूद है या मौजूद नहीं है. खास तौर पर, अगर पाथ कोई डायरेक्ट्री है, तो इसमें डायरेक्ट्री में मौजूद किसी भी फ़ाइल में किए गए बदलाव शामिल नहीं होते. इसके लिए, path.readdir() का इस्तेमाल करें.

ध्यान दें कि फ़िलहाल फ़ेच की जा रही रिपो या मौजूदा मॉड्यूल एक्सटेंशन की वर्किंग डायरेक्ट्री में पाथ देखने की कोशिश करने पर, गड़बड़ी होगी. अगर कोई मॉड्यूल एक्सटेंशन, Bazel के मौजूदा फ़ाइल फ़ोल्डर से बाहर के किसी पाथ को मॉनिटर करने की कोशिश करता है, तो भी गड़बड़ी होगी.

पैरामीटर

पैरामीटर ब्यौरा
path string; या Label; या path; ज़रूरी है
उस फ़ाइल का पाथ जिसे मॉनिटर करना है.

कौनसा

path module_ctx.which(program)

यह फ़ंक्शन, प्रोग्राम का पाथ दिखाता है. अगर पाथ में ऐसा कोई प्रोग्राम नहीं है, तो यह None दिखाता है.

पैरामीटर

पैरामीटर ब्यौरा
program ज़रूरी है
पाथ में ढूंढने के लिए प्रोग्राम.
इसमें None मिल सकता है.